Slide 1

Slide 1 text

C r y p t o G a m e s Cardene ERC721 拡張機能の 仕組みを理解しよう!

Slide 2

Slide 2 text

自己紹介

Slide 3

Slide 3 text

自己紹介 Cardene(かるでね) 2021年後半からNFTに興味を持ち、 2022年夏頃からSolidityの勉強を始め る。 新卒で入社した会社を辞めて今年の1月 にCryptoGamesに参画。 ■ 名前 ■ 経歴

Slide 4

Slide 4 text

ERC721 の拡張機能

Slide 5

Slide 5 text

OpenZeppelin OpenZeppelinとは、安全にスマートコントラ クトを開発するためのライブラリです。 開発者は1から実装する必要がなくなる。 多くのNFTのコントラクトで使用されてます。 https://docs.openzeppelin.com/contracts/4.x/

Slide 6

Slide 6 text

OpenZeppelin ERC721の拡張機能が7つ実装されています。 ・ERC721Pausable ・ERC721Burnable ・ERC721Consective ・ERC721URIStorage ・ERC721Votes ・ERC721Royalty ・ERC721Wrapper

Slide 7

Slide 7 text

ERC20 とERC721

Slide 8

Slide 8 text

ERC20 とERC721 の違い ERC20 ERC721 代替性トークン 非代替性トークン 交換できる 交換できない

Slide 9

Slide 9 text

ERC20 とERC721 の違い ERC20 ERC721

Slide 10

Slide 10 text

ERC20 とERC721 の違い ERC20 ERC721 1 2 3 4

Slide 11

Slide 11 text

ERC20 とERC721 の違い ERC20 ERC721 『誰が』 『いくつ持っているか』 『誰が』 『何を持っているか』 ・・ ・・・

Slide 12

Slide 12 text

ERC20 とERC721 の違い Mint : トークンを新規に生成すること。 Transfer : トークンを誰かに送ること。 ガス代:手数料のこと。 トランザクション:取引のこと。 ■ 用語の整理

Slide 13

Slide 13 text

ERC20 とERC721 の違い ちなみに... 『ERC』とは何でしょうか?

Slide 14

Slide 14 text

ERC20 とERC721 の違い 『ERC = 改善提案』 番号は提案された順番。 *ERC20 → 20番目の提案

Slide 15

Slide 15 text

ERC20 とERC721 の違い ERC20 トークンを作成するための標準規格(設計書) ERC721 NFTを実装するための標準規格(設計書)

Slide 16

Slide 16 text

ERC721Pausable

Slide 17

Slide 17 text

NFTの送付機能をオン・オフする。 ERC721Pausable

Slide 18

Slide 18 text

ERC721Pausable ある値をオンにしたり、オフにしたりす ることでNFTの送付機能を制御する。 不正を検知した時に緊急で送付機能を止 めたりする時に使用される。 送付機能だけなく、他の処理にも適用で きる。

Slide 19

Slide 19 text

ERC721Burnable

Slide 20

Slide 20 text

NFTをバーンする。 ERC721Burnable

Slide 21

Slide 21 text

ERC721Pausable NFTを0アドレスに送っている。 あるNFTをバーンして、新たなNFTをゲ ットするなどが実例として挙げられる。

Slide 22

Slide 22 text

ERC721Consective

Slide 23

Slide 23 text

複数のNFTを一気に作成する。 ERC721Consective

Slide 24

Slide 24 text

ERC721Consective 連続したトークンID(NFTの番号)を持 つNFTを複数発行できる。 コントラクトの作成時にのみ実行するこ とができる。 発行できる最大値を設定可能。

Slide 25

Slide 25 text

ERC721Consective ■ なぜコントラクト作成時のみ実行なのか? ・他のNFT発行処理が走らないため、『連続し たトークンID』を確保できる。 ・予期しないNFTの発行を防ぐことができ、セ キュリティを強化できる。

Slide 26

Slide 26 text

ERC721URIStorage

Slide 27

Slide 27 text

コントラクト内でURI情報を管理する。 URI(データや情報、それがどこにあるか) ERC721URIStorage

Slide 28

Slide 28 text

ERC721URIStorage コントラクト内でNFTのURIやメタ データ(データの説明や構造な ど)を管理している。 独自のURIを設定してNFTに紐づけ ることができる。

Slide 29

Slide 29 text

ERC721URIStorage ■ ERC721との違いは? ・ERC721ではデータが保存されている場所の URLなどを格納していた。 ・独自のカスタマイズもできない。 → ERC721URIStorageで簡単にカスタマイ ズ可能に!

Slide 30

Slide 30 text

ERC721Votes

Slide 31

Slide 31 text

NFTを利用した投票権の委任と追跡を行う。 ERC721Votes

Slide 32

Slide 32 text

ERC721Votes 所有しているNFTの数だけ投票権を持て ます。 自分自身、もしくは別のアドレスに投票 権を渡し(委任)アクティブにします。 投票権の委任機能と委任履歴を管理する 拡張機能です。

Slide 33

Slide 33 text

ERC721Votes 投票イベント自体は別でコントラクトを 作成し、アクティブな投票権を使用して 投票を行うことができる。 誰にも委任されていない投票権は無効と なる。

Slide 34

Slide 34 text

ERC721Royalty

Slide 35

Slide 35 text

ロイヤリティ(二次流通した時の 売り上げの一部がクリエイターに 入る)の強制化。 ERC721Royalty

Slide 36

Slide 36 text

ERC721Royalty NFTの売却価格と事前に設定されたパー センテージを使用して、ロイヤリティを 計算する。 NFTを購入するときは、ロイヤリティを 支払わないと購入処理が実行されない。

Slide 37

Slide 37 text

ERC721Royalty ■ ほんとにロイヤリティを強制できるの? ・答えとしては「できない」。 ・結局はマーケットプレイスの実装次第。 ・いろんな人が頭を使いながらできないか考 えている。

Slide 38

Slide 38 text

ERC721Wrapper

Slide 39

Slide 39 text

NFTをもとに別のトークン発行。 ERC721Wrapper

Slide 40

Slide 40 text

ERC721Wrapper NFTをコントラクトに預けて、同じトー クンIDの別のトークンを発行する。 トークンを「ラップ」するという。 ラップされたトークンをバーンして、元 のNFTを取り戻せる。

Slide 41

Slide 41 text

ERC721Wrapper ラップに関しては、「ところてん」をイ メージすると理解しやすいです。 一方からNFTを入れることで、もう片方 から別のトークンが発行されます。

Slide 42

Slide 42 text

ERC721Wrapper Aというゲーム(カードゲーム)のNFT をもとに、Bというゲーム(RPG)の NFTを取得する。 所有しているNFTをレンタルする。 複数の装備アイテムを取得する。 ■ 使用場面

Slide 43

Slide 43 text

まとめ

Slide 44

Slide 44 text

まとめ 色々なERC721の拡張機能を見てきました。 よく使われるものもあれば、あまり使われないものも あるので、自分で触ってみたりして活用場面を考えて みるのも面白そうです。 ERCの一覧を見てみるのも面白いのでおすすめです✨

Slide 45

Slide 45 text

最後に

Slide 46

Slide 46 text

最後に もっと詳しく知りたい方は以下の記事を参考に! OpenzeppelinのERC721の拡張機能を理解して 使えるようになろう! 普段記事を書いているので興味ある方はぜひ! Qiita ブログ

Slide 47

Slide 47 text

最後に Crypto Gamesでは積極的にメンバーを募集しています! 少しでも興味持った方は是非お話からでもしましょう! 以下から是非ご連絡ください! https://www.wantedly.com/companies/cryptog ames https://twitter.com/cardene777