Upgrade to Pro — share decks privately, control downloads, hide ads and more …

NFT つくってみた

Smith
March 13, 2022

NFT つくってみた

2022/03/12 に実施された Drecom SRE Sunday Vol.2 での LT 登壇資料です。

Smith

March 13, 2022
Tweet

More Decks by Smith

Other Decks in Technology

Transcript

  1. NFT とは (ざっくり)
 • Non Fungible Token の略、「代替不可なトークン」という意味
 • 世の中では

    NFT アートとかが流行っている
 • 高額取引されたりしてて、胡散臭いような夢があるような
 • NFT アートは所有権を証明できる!って言ってる
 • (けど、アートの複製はできるんだなぁ)

  2. 必要なもの
 • geth (ローカルネットワーク)
 • truffle (スマートコントラクト開発環境一式)
 やること
 1. スマートコントラクトを書く


    2. テストを書く
 3. フロントから操作する UI を作る (本質的じゃない割に地味にめんどい)
 4. 実際のブロックチェーンウォレットを使ってテスト
 5. デプロイ
 開発のしかた

  3. 開発のしかた: スマートコントラクトを書く
 スマートコントラクトとは
 • ブロックチェーン上で動作するプログラムのこと
 • スマートコントラクトを介して誰が何をやったかは全て記録される
 • 中身は簡単なクラス定義みたいなものなのでビビらなくて OK


    スマートコントラクトの作り方
 • スマートコントラクトには ERC と呼ばれる規格がある
 • NFT 用の規格もあり、 ERC 721 とか ERC 1155 が NFT を取り扱う
 • オープンソースで ERC 721 や ERC 1155 の基本実装が提供されている
 • 簡単なものなら基本実装をラップするだけで OK

  4. 必要なもの
 • (truffle に組み込まれています)
 テストの書き方
 • JavaScript のエコシステムが使える 
 •

    デフォルトで mocha
 • つまり、テスト用に新たな言語やライブラリを覚え なくもよい
 • スマートコントラクト独特の要素さえ押さえれば OK!
 • テスト実行も truffle test と叩くだけ、楽 ちん!
 開発のしかた: テストを書く

  5. 必要なもの
 • web3.js
 やること
 1. 動作確認したい機能の UI を作る
 2. 動作確認テスト


    mocha での記法とはまた若干違ってたりする ので、もっとも煩わしいパート。
 開発のしかた: フロントから操作する UI を作る

  6. 必要なもの
 • Metamask
 • ウォレットアカウント
 やること
 1. 作った Web UI

    をポチポチする
 2. ガス代もちょっと確認する
 開発のしかた: 実際のウォレットを使ってテスト

  7. 必要なもの
 • Infura アカウント
 • ウォレットアカウント
 • ガス代
 やること
 1.

    Infura という DApps デプロイ用サービ スを利用 (無料)
 2. Infura を介してテストネットやメインネッ トにデプロイ
 3. これも truffle 設定でできる
 開発のしかた: デプロイ

  8. 気をつけたこと
 特定のアカウントしか NFT の発行・削除ができないように
 • NFT 発行 API もスマートコントラクトから操作する
 •

    これをスマートコントラクトをデプロイしたアカウントのみに制限
 NFT の持ち主にしか所有権の移動ができないように
 • 発行した NFT ID 毎に所有者をマップし、所有権を確認するようにした
 税制リスク
 • リスクが図りきれないので、Smith 個人で勝手に作って勝手に配る体裁

  9. ビューアがない!
 • 記念アイコンの URL を知るすべを用意しきれていない・・・!
 • 画像すら見れない NFT ・・・!
 •

    abi は公開するので自分で URL 引いて!
 ガス代高ぇ・・・!
 • ガス代高ぇ・・・!
 困ってること

  10. • 24.5 Gwei / gas (実測値)
 ◦ = 0.0000000245 ETH

    / gas
 • スマートコントラクトのデプロイに必要なガス
 ◦ 3160899 ガス
 ◦ = 0.0774420255 ETH
 • 30万円 / ETH くらい (2022/03/12時点)
 • つまり、デプロイだけで 2.3万円・・・!
 
 この勉強会、予算ないんです・・・!
 ガス代高ぇ・・・!

  11. • NFT つくるの簡単だよ!ってこと
 • ガス代高ぇ!
 • ガス代高ぇ!
 • ガス代高ぇ!
 •

    ガス代高ぇ!
 • ガス代高ぇ!
 • ガス代高ぇ!
 この LT で伝えたいこと