- Wrangler Cli で Cloudflare 環境をセットアップしテストをデプロイする
- Sequence Builder で ERC1155 コントラクトをデプロイ、スポンサー登録、およびメタデータの更新
- EthAuthProof を使って EOA DDoS を防ぐ
- コレクティブルをウォレットにミントする
- HTTPS GET:blockNumber を返す
- HTTPS POST(proof, address):コレクティブルをミントし、トランザクションハッシュを返す
この実装を完了するには、wrangler cli、npm、Sequence Builder の基本知識が必要です。
1. Wrangler Cli で Cloudflare 環境をセットアップしテストをデプロイする
まず、mkdirでディレクトリを作成し、cdでそのディレクトリに移動し、pnpm initでpackage.jsonを作成します。
次に、プロジェクトに wrangler cli がインストールされていることを確認し、wrangler キーワードをローカル bash セッションのエイリアスとして設定します。
"Hello World" Worker アプリケーションを初期化するプロンプトに従ってください。
wrangler init後にエンターを4回押し、最後の2つの質問にはNoと答えてgitバージョン管理とデプロイをスキップしてください。
これにより、クラウドにコードをデプロイできるスターターリポジトリがクローンされます。
ローカル API テスト
ガイドの任意のタイミングで、プロジェクトフォルダ内で
ガイドの任意のタイミングで、プロジェクトフォルダ内で
wrangler dev コマンドを使ってローカルテストを実行できます。デプロイテスト
最後に、ランダムに生成されたプロジェクトフォルダにcdで移動し、wrangler deployコマンドを実行します。
これによりURLが表示されるので、ブラウザでhttps://<app>.<account>.workers.devにアクセスし、「Hello World!」の結果を確認できます。
2. Sequence Builder で ERC1155 コントラクトをデプロイ、スポンサー登録、およびメタデータの更新
Transactions API を利用するには、Sequence Builder でプロジェクトの課金プランを
Developer にアップグレードする必要があります。こちらの手順 をご参照ください。minter permission を Sequence Wallet Transactions API Address に付与してください。
利用する transactions API アドレスを知るには、まず以下のいずれかの方法で取得します。
- このアプリ を使い、ネットワークを選択して
generate local walletボタンでウォレットキーを生成することで取得できます(デモ目的でのみご利用ください)。 推奨: 以下のコードスニペットを使い、EOA ウォレットの秘密鍵から生成されたアカウントアドレスをローカルで出力することもできます。
Contracts ページに移動し、Linked contracts を選択、Write Contract タブで grantRole メソッドを展開します。
以下の情報で入力してください。
bytes32 role: 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6
address account: <Generated Sequence Transactions API Wallet Address>

role 文字列は、solidity では keccak256("MINTER_ROLE")、javascript では ethers.keccak256(ethers.toUtf8Bytes("MINTER_ROLE")) の結果です。
これにより、特定のアドレスのみがコントラクトからミントできるようになり、それ以外はエラーとなります。
write をクリックし、スポンサー付きトランザクションに署名してロールの更新を完了してください。
メタデータの更新
次に、コントラクトのメディアやアセットなどのメタデータを更新する必要があります。このガイドに従って設定できます。コントラクトのスポンサー登録
最後に、コントラクトをスポンサーするにはこのガイドを参考にしてください。3. EthAuthProof を使って EOA DDoS を防ぐ
コントラクトのデプロイが完了したら、Cloudflare Worker のディレクトリとプロジェクトに戻り、ethers と 0xsequence をインストールして Sequence API にアクセスし、リクエストが信頼できる Sequence ウォレットから来ているかどうかの証明を検証します。
proofString と address、および環境変数が有効かどうかを検証します。
src/index.ts に配置するコードの雛形はこのようになります。callContract と getBlockNumber はモック化されており、コントラクト呼び出し前に verify を呼ぶ検証ステップが含まれています。
Cloudflare 環境変数の追加
次に、wrangler.toml の [vars] セクションを更新してビルド用の環境変数を渡します。
Wrangler テンプレートで Window オブジェクトを実装する
なお、デプロイしようとすると、web3モジュールで必要なwindow オブジェクトが見つからないというエラーが発生します。
これを防ぐには、wrangler.toml ファイルに以下の行を追加し、環境を対応させてください。
デプロイのテスト
wrangler deploy を使用して再デプロイできます。
次に、以下のように curl リクエストでエンドポイントをテストします。
ETHAuthProof Viewer dapp の利用
ページにアクセスしたら、最初にネットワークを選択してください。 次に、「接続してProof(証明)を生成」または「ローカルウォレットを生成」のいずれかを選択できます。
connect ボタンを押し、その後 copy to clipboard をクリックしてください。

ETHAuthProof を他人と共有しないことをおすすめします。これを共有すると、他人があなたのウォレットの所有者であることを証明し、特定のAPIとやり取りできてしまいます。
最後に、urlをこの手順で取得したアプリのものに、<some_proof>をビューワーアプリからコピーした生成値に、<some_address>をご自身のウォレットアドレスに置き換えてください。これで、モックされた0x文字列が返されます。
4. コレクティブルをウォレットにミントする
スポンサー付きコントラクトアドレスからコレクティブルをデプロイ・ミントするには、以下のパッケージをインストールします。callContract と getBlockNumber メソッドを次のように実装します: