💧

Drops on OpenSeaを使ってみる

2023/02/17に公開

Early accessを申請していたDrops on OpenSeaがようやく利用可能になったので、さっそく使ってみました。

Drops on OpenSeaとは

2022年12月にクローズド版としてリリースされたNFTクリエイター向けのツールで、アローリスト管理やランディングページの作成ができます。従来のOpenSea Shared Storefrontとは違い、独自コントラクトを利用できるのが特徴です。詳細は下記スレッドを御覧ください。

https://twitter.com/opensea/status/1621233689052024835

実際に使ってみる

手順を以下にまとめます。

スマートコントラクトをdeployする

まず、コレクションのスマートコントラクトをデプロイする必要があります。OpenSeaの右上からメニューを開き、“My Collections” > “Create a collection” をクリックします。"Deploy your own contract" が出現しているので、クリックしてContinueしましょう。

次にコレクションの情報を入力していきます。トークンシンボルとチェーン情報はあとから変更できないので注意しましょう。

"Deploy contract" をクリックするとコントラクトのデプロイが始まります。この際、ガス代がかかるので予め準備しておきましょう。

ちなみに、この記事を書いている2/17時点では合計26,000円ほどの見積もりが出ました。(なかなか良いお値段なので、以降はtestnetで実施しました)

デプロイが完了するとDropsの画面が作成されます。

ここまで1行もコントラクトを書いていないことに気付いたでしょうか。Etherscanでデプロイされたコントラクトを見てみると、ERC721SeaDropのコントラクトが使われていることがわかります。

https://goerli.etherscan.io/address/0x055cd5235e5ab5552f6aaa25cef85204440a8b5d#code

コントラクトにカスタマイズが必要なければ、デプロイまですべてGUIのみで作成できてしまう ことがわかりました。

(任意)カスタマイズされたコントラクトを使用する

NFTに独自機能を実装するために、カスタマイズされたコントラクトをデプロイすることもできます。コントラクトはERC721SeaDropに準拠している必要があります。こちらのリポジトリをcloneし、 ERC721SeaDrop.sol をカスタマイズして下記コマンドでdeployできます。

forge create --rpc-url $RPC_URL --private-key $PRIV_KEY --constructor-args "ExampleToken" "ExTkn" \\[0x00005EA00Ac477B1030CE78506496e8C2dE24bf5]

3つ目の引数で指定している allowedSeaDrop は、あとから updateAllowedSeaDrop functionで変更できます。

ドロップ情報を編集

スマートコントラクトがデプロイできたら、ドロップ情報を編集していきます。「Settings」ではmintする個数や開始日、プレセールの設定ができます。mint数を限りなく大きな数値にすることで、実質OpenEditionみたいなこともできるようです。

プレセールではアローリスト(限られたwalletアドレスだけにmintを許可すること)の設定ができます。アローリストはcsv形式でアップロードができます。セールは5段階まで開催が可能で、各セールごとに30,000件までwalletアドレスを設定できます。

「Earnings」ではドロップの収益を設定できます。

デフォルトでOpenSeaの手数料が10%に設定されます。この値を変更すると、ドロップがOpenSeaに表示されなくなるので注意してください。

「Drop Page」ではドロップページの外観を編集できます。

バナー画像の他、ロードマップ、チーム紹介、FAQなどを設定できます。

ドロップを公開する

すべての情報を設定したらドロップを公開してみましょう。

この際もガス代がかかるので、十分なEthereumを用意しておくことをおすすめします。

メタデータを設定する

ここまではOpenSeaのサイト上から設定できましたが、メタデータを返すサーバーは自身で用意する必要があります。最初のmintまでに setBaseURI を実行して、JSON形式のメタデータを返すURIを設定しておきましょう。

ちなみに setBaseURI を実行する際に BatchMetadataUpdate イベントが発火し、OpenSeaがそれをリッスンするため、手動でリフレッシュボタンを押してもらう必要はないようです。

リンク集

Discussion