- 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
メソッドを次のように実装します: