https://cryptogames.connpass.com/event/289171/
上記の勉強会でしようする資料です。
C r y p t o G a m e sCardeneERC721拡張機能の仕組みを理解しよう!
View Slide
自己紹介
自己紹介Cardene(かるでね)2021年後半からNFTに興味を持ち、2022年夏頃からSolidityの勉強を始める。新卒で入社した会社を辞めて今年の1月にCryptoGamesに参画。■ 名前■ 経歴
ERC721の拡張機能
OpenZeppelinOpenZeppelinとは、安全にスマートコントラクトを開発するためのライブラリです。開発者は1から実装する必要がなくなる。多くのNFTのコントラクトで使用されてます。https://docs.openzeppelin.com/contracts/4.x/
OpenZeppelinERC721の拡張機能が7つ実装されています。・ERC721Pausable・ERC721Burnable・ERC721Consective・ERC721URIStorage・ERC721Votes・ERC721Royalty・ERC721Wrapper
ERC20とERC721
ERC20とERC721の違いERC20 ERC721代替性トークン 非代替性トークン交換できる 交換できない
ERC20とERC721の違いERC20 ERC721
ERC20とERC721の違いERC20 ERC7211234
ERC20とERC721の違いERC20 ERC721『誰が』『いくつ持っているか』『誰が』『何を持っているか』・・・・・
ERC20とERC721の違いMint : トークンを新規に生成すること。Transfer : トークンを誰かに送ること。ガス代:手数料のこと。トランザクション:取引のこと。■ 用語の整理
ERC20とERC721の違いちなみに...『ERC』とは何でしょうか?
ERC20とERC721の違い『ERC = 改善提案』番号は提案された順番。*ERC20 → 20番目の提案
ERC20とERC721の違いERC20トークンを作成するための標準規格(設計書)ERC721NFTを実装するための標準規格(設計書)
ERC721Pausable
NFTの送付機能をオン・オフする。ERC721Pausable
ERC721Pausableある値をオンにしたり、オフにしたりすることでNFTの送付機能を制御する。不正を検知した時に緊急で送付機能を止めたりする時に使用される。送付機能だけなく、他の処理にも適用できる。
ERC721Burnable
NFTをバーンする。ERC721Burnable
ERC721PausableNFTを0アドレスに送っている。あるNFTをバーンして、新たなNFTをゲットするなどが実例として挙げられる。
ERC721Consective
複数のNFTを一気に作成する。ERC721Consective
ERC721Consective連続したトークンID(NFTの番号)を持つNFTを複数発行できる。コントラクトの作成時にのみ実行することができる。発行できる最大値を設定可能。
ERC721Consective■ なぜコントラクト作成時のみ実行なのか?・他のNFT発行処理が走らないため、『連続したトークンID』を確保できる。・予期しないNFTの発行を防ぐことができ、セキュリティを強化できる。
ERC721URIStorage
コントラクト内でURI情報を管理する。URI(データや情報、それがどこにあるか)ERC721URIStorage
ERC721URIStorageコントラクト内でNFTのURIやメタデータ(データの説明や構造など)を管理している。独自のURIを設定してNFTに紐づけることができる。
ERC721URIStorage■ ERC721との違いは?・ERC721ではデータが保存されている場所のURLなどを格納していた。・独自のカスタマイズもできない。→ ERC721URIStorageで簡単にカスタマイズ可能に!
ERC721Votes
NFTを利用した投票権の委任と追跡を行う。ERC721Votes
ERC721Votes所有しているNFTの数だけ投票権を持てます。自分自身、もしくは別のアドレスに投票権を渡し(委任)アクティブにします。投票権の委任機能と委任履歴を管理する拡張機能です。
ERC721Votes投票イベント自体は別でコントラクトを作成し、アクティブな投票権を使用して投票を行うことができる。誰にも委任されていない投票権は無効となる。
ERC721Royalty
ロイヤリティ(二次流通した時の売り上げの一部がクリエイターに入る)の強制化。ERC721Royalty
ERC721RoyaltyNFTの売却価格と事前に設定されたパーセンテージを使用して、ロイヤリティを計算する。NFTを購入するときは、ロイヤリティを支払わないと購入処理が実行されない。
ERC721Royalty■ ほんとにロイヤリティを強制できるの?・答えとしては「できない」。・結局はマーケットプレイスの実装次第。・いろんな人が頭を使いながらできないか考えている。
ERC721Wrapper
NFTをもとに別のトークン発行。ERC721Wrapper
ERC721WrapperNFTをコントラクトに預けて、同じトークンIDの別のトークンを発行する。トークンを「ラップ」するという。ラップされたトークンをバーンして、元のNFTを取り戻せる。
ERC721Wrapperラップに関しては、「ところてん」をイメージすると理解しやすいです。一方からNFTを入れることで、もう片方から別のトークンが発行されます。
ERC721WrapperAというゲーム(カードゲーム)のNFTをもとに、Bというゲーム(RPG)のNFTを取得する。所有しているNFTをレンタルする。複数の装備アイテムを取得する。■ 使用場面
まとめ
まとめ色々なERC721の拡張機能を見てきました。よく使われるものもあれば、あまり使われないものもあるので、自分で触ってみたりして活用場面を考えてみるのも面白そうです。ERCの一覧を見てみるのも面白いのでおすすめです✨
最後に
最後にもっと詳しく知りたい方は以下の記事を参考に!OpenzeppelinのERC721の拡張機能を理解して使えるようになろう!普段記事を書いているので興味ある方はぜひ!Qiitaブログ
最後にCrypto Gamesでは積極的にメンバーを募集しています!少しでも興味持った方は是非お話からでもしましょう!以下から是非ご連絡ください!https://www.wantedly.com/companies/cryptogameshttps://twitter.com/cardene777