🙆‍♀️

レンタル可能なNFT規格、ERC-4907をthirdwebで作成しよう!

2022/11/17に公開

こんにちは、CryptoGamesの高橋です。

今回は、レンタル可能なNFT規格である、ERC-4907をthirdwebを使って作成し、内容も確認していきたいと思います。

なお、この記事にコードは出てきませんので、非エンジニアの方でも最後まで読み進めることができると思います。

1. thirdwebでコントラクトを作成する

では、thirdwebさんのERC4907の作成ページに行ってみます。

https://thirdweb.com/doubledev.eth/ERC4907

こんなページに来ましたので、「Deploy Now」

NameやSymbolなどを入れていきます。
なお、今回はロイヤリティなどは直接関係しないので、0アドレスなどを入れています。

完了しましたら、「Deploy Now」

2. NFTのミントを行う

次に、NFTのミントを行いましょう。

「NFTs」タブの「Mint」を選択

ミントするNFTの情報を入れて、「Mint NFT」

このように、ミントが実行されました。

反映まで若干時間はかかりますが、OpenSeaのテストネットからでも確認ができます。
https://testnets.opensea.io/ja

3. verifyを行う

次は、Polygonscanで実行できるために、verifyを行います。

「Sources」タブの「Verify on〜」を選択

少し待つと、このような表示になり、verifyが完了しました。

verifyまで完了したので、Polygonscanで見に行ってみましょう。

コントラクトアドレスをコピーします。

4. Polygonscan(mumbai)で確認を行う

Polygonscanで「Contract」を選択します。

https://mumbai.polygonscan.com/

なお、ここから先のことはthirdwebの「Explorer」でも同じことができます。
お好きな方でやってみてください。

5. 貸し出しの設定を行う

では、このNFTの肝の部分である、貸し出しを行っていきましょう。

まずは、いつまで貸し出すのかを決めます。

①設定期限をタイムスタンプに変換する

期間はタイムスタンプで設定しますので、今回は下のサイトを使いました。


https://www.bad-company.jp/timestamp

上のように、今回は2022/11/17 15時20分まで貸し出そうと思うので、タイムスタンプは「1668666000」となります。

②貸し出し期間を設定する

では、貸し出し期間を設定しましょう。

「Write Contract」からウォレット接続を行います。

「setUser」から貸し出すトークンIDと相手のウォレット、有効期限を設定し、「Write」

これで貸し出し設定は完了です。

6. 貸し出し期間を確認する

では、次は設定できたかを確認してみましょう。

まずは、「Read Contract」にします。

「userExpires」を確認すると、貸し出し期間が「1668666000」までとなっていることが確認できました。

7. 借りている人(user)を確認する

では「userOf」を見てみましょう。

ここが大事なところだと思います。
借りている人が誰かを判断する際、システムからこの関数を呼び出して、借りている人を確認できます。

①貸し出し期間内に確認する

現在は、期限内なので、貸し出した先のウォレットアドレスを示しています。

②貸し出し期間を過ぎた状態で確認する

一方、期限が過ぎてから、もう一度、「userOf」を見てみます。

この間、特に何も行っていません。

すると、下のように、0アドレスを表示しました。

このように、貸し出し期間が過ぎると、「user」が自動で0アドレスになるということが確認できました。

以上で終了です。

皆さんも、ぜひ手を動かしてやってみてください。

Discussion