11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

[ERC5192] NFTを送付できなくする『SBT』について理解しよう!

Last updated at Posted at 2023-07-10

はじめに

初めまして。
CryptoGamesというブロックチェーンゲーム企業でエンジニアをしている cardene(かるでね) です!
スマートコントラクトを書いたり、フロントエンド・バックエンド・インフラと幅広く触れています。

代表的なゲームはクリプトスペルズというブロックチェーンゲームです。

今回の記事では、ERC721規格のNFTをSBT(Soul Binding Token)化するための企画である、ERC5192についてまとめていきます!

以下を参考にまとめていきます!

ERC721については以下の記事を参考にしてください!

要約

この規格はEEC721規格のNFTの拡張で、EIP165のチェック機能を用いてNFTをソウルバウンドにする提案しています。
SBT(ソウルバウンドトークン)は、1つのアドレスに紐づけられたNFTで、他のアドレスに送ることができなくなります。

この記事では、SBT ≒ 送付できないNFTとして用語を使用します。

動機

Ethereumコミュニティでは、非譲渡性(送れない)、非代替性(交換できない)、社会的価格設定のトークンに対するニーズがあると考えられています。
しかし、特定の規格がないため、多くの開発者がNFTの送付機能の呼び出しに対してエラーを発生させるだけになっています。
この問題は長期的に見ると、機能の断片化と組み合わせ可能性の低下をもたらします。

この提案では、EIP165を使用したウォレットの実装者が、コントラクトに対してSBT対応しているかを確認できるように、ERC721に最小限の追加提案します。

インターフェースの実装

uint256のtokenIdを持つトークンは、関数locked(...)がtrueを返す場合、受け取りアカウントに結びつけられることがあります。この場合、契約のすべてのEIP-721関数は、トークンを一つのアカウントから別のアカウントへ転送する機能がスローされなければなりません。

interface IERC5192 {
  event Locked(uint256 tokenId);

  event Unlocked(uint256 tokenId);

  function locked(uint256 tokenId) external view returns (bool);
}

Locked

Lockステータスが『Locted』に変更されたときにログに記録します。
NFTがMintされたあと、ステータスが『Locted』に変更されるときに発行されます。

Unlocked

Lockステータスが『UnLocted』(ロック解除)に変更されたときにログに記録します。
NFTがMintされたあと、ステータスが『UnLocted』(ロック解除)に変更されるときに発行されます。

locked

SBTのロックステータスを返す関数。
0アドレスが所有者となっているNFTは無効とみなされ、エラーなどを起こさせるようにする。

引数

  • tokenId
    • 確認したSBTのトークンID。

その他

ERC721内の関数supportsInterface(bytes4 interfaceID)interfaceID=0xb45a3c0eの時、ERC721トークンがSBT対応していることを認識するために、trueを返さなければならない。

最後に

今回はNFTをSBTにするERC5192についてまとめてきました。
実装については今後追記していきます!
いかがだったでしょうか?
質問などがある方は以下のTwitterのDMなどからお気軽に質問してください!

Twitter @cardene777

採用強化中!

CryptoGamesでは一緒に働く仲間を大募集中です。

この記事で書いた自分の経験からもわかるように、裁量権を持って働くことができて一気に成長できる環境です。
「ブロックチェーンやWeb3、NFTに興味がある」、「スマートコントラクトの開発に携わりたい」など、少しでも興味を持っている方はまずはお話ししましょう!

11
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?