- Builderプロジェクトの作成とアクセスキーの取得
- React Viteアプリケーションの初期化
- Sequence Walletを使ったユーザーサインイン
- EIP712型付きデータでEIP6492署名を生成
- EIP712検証とEIP1271バリデーション用コントラクトのデプロイ
- 検証・バリデーションコントラクトからのレスポンスを表示

デモの全コードはこちらで確認できます。また、デモはこちらからご利用いただけます。
1. Builderプロジェクトの作成とアクセスキーの取得
まず、こちらのガイドに従ってSequence Builderでプロジェクトを作成し、プロジェクトのアクセスキーを取得してください。2. React Viteアプリケーションの初期化
次に、署名生成やブロックチェーンからの検証レスポンス取得に必要なコードを格納する新しいプロジェクトを初期化します:3. Sequence Walletを使ったユーザーサインイン
プロジェクトの動作に必要なパッケージをインストールします:4. EIP712型付きデータでEIP6492署名を生成
次に、typescriptでカスタム型付きデータを定義します。Sequenceのユーティリティライブラリを使ってTypedData
型を構築し、name
、wallet
、message
パラメータを持つメッセージ構造を検証します:
この例のVERIFYING_CONTRACT_ADDRESS
はsepolia
にデプロイしたスマートコントラクトですが、次のステップでこのコントラクトの内容を紹介し、どのネットワークでもデプロイできるように説明します:
5. EIP712検証とEIP1271バリデーション用コントラクトのデプロイ
ここでは、Remix や Foundry などのツール、または Sequence Builder を使ってコントラクトをデプロイするためのソースコードを提供します。1
Universal Signature Validator(ユニバーサル署名バリデータ)
Universal Signature Validator は、特定のネットワークに一度デプロイすれば、多くのアプリケーションで共有できるため、再利用性と拡張性に優れています。これは、EIP6492 対応ウォレット向けのオフチェーン・オンチェーン両方のスマートコントラクトウォレットで利用できます。こちらにソースコードがあります。このコードを利用してデプロイしてください。
2
カスタムコントラクトバリファイア
次に紹介するコントラクトは、用途に合わせてカスタマイズできるよう、さまざまな関数について詳しく説明します。まずは、Universal Signature Validator をコンストラクタに渡すという最初のステップで、以下の基本事項から始めましょう。
3
署名の検証
次に、署名検証用の関数を用意します。この関数はメッセージハッシュのダイジェストを生成し、署名者を検証します。
カスタム Person ダイジェスト
以下の関数では、渡されたパラメータを使って struct ハッシュを再生成します。必要に応じて、パラメータの種類や数を増減できます。ダイジェストの構築方法については、EIP712仕様 をご参照ください。署名者の検証
次に、signer
アドレス、digest
、signature
を検証します。EIP6492 署名が渡された場合は universal signature validator を利用し、それ以外は EIP1271 の署名検証を直接行います。6. 検証コントラクトからのレスポンスを表示
署名を渡し、ethers
を使ってデプロイ済みコントラクトを呼び出します。この際、PROJECT_ACCESS_KEY
を利用します。
1
プロバイダの作成
プロジェクトアクセスキーを使ってプロバイダを作成します。
2
Ethers コントラクトの初期化
ステップ5 で生成された ABI(または Git のソースコード からコピー)をインポートし、プロバイダと検証コントラクトアドレスを指定します。
3
署名検証関数をスタティックコール
関数をスタティックコールすることで、トランザクションをチェーンに送信せずにシミュレーションできます。これにより、検証が成功したかどうかの結果が返されます。