OpenSeaはどのように手数料を指定しているのか

OpenSea, Web3.0

お疲れさまです。
次世代ビジネス推進部の荻原です。

今回は、OpenSeaでのNFTの購入の仕組みに関連して気になることを調べてみました。

OpenSeaでNFTを購入する際には、NFTの販売価格の2.5%がOpenSea側に手数料として支払われます。
その手数料が2023年3月16日12時(JST)現在、期間限定で条件付きで0%になっています。
(コレクションのクリエイター収益が0.5%未満に設定されている場合、またはコレクションのアイテム数やアクティビティが基準より低い場合は最大0.5%となります。)

openseafees.png

(引用:What are OpenSea’s fees?

NFTの購入は当然スマートコントラクトで制御されているので、NFTの購入に伴う手数料の支払いもスマートコントラクトが利用されているはずです。
ということは、スマートコントラクトのどこかで通常は2.5%が指定されている部分が0%(〜0.5%)に変更されているということになります。

それを探してみることにしました。

調査内容

今回は調査のためにOpenSeaのテストネット(Mumbai)でNFTの出品と購入を行いました。
恐らくテスト的に作成したNFTでアクティビティが少ないために、手数料は0.5%になっていました。

OpenSeaでNFTを購入する際には
0x00000000006c3852cbEf3e08E8dF289169EdE581のコントラクトが使われています。
Polygonscan
Etherscan

実行されている関数は以下です。

引数は BasicOrderParametersという構造体です。

Polygonscanで引数に指定された値を見てみたところ、 additionalRecipients

という値が渡されていました。
今回NFTの販売価格は0.00001MATIC(10000000000000wei)にしたので、 50000000000は手数料と一致しました。

f00fe9cee8f6d4eca19a762dc944b868.png

0x0000a26b00c1F0DF003000390027140000fAa719は手数料の支払先でした。

つまり、この部分で手数料として指定する値が今はNFTの販売価格の0%(〜0.5%)となっているみたいです。

参考

OpenSea, Web3.0