Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NFT つくってみた
Search
Smith
March 13, 2022
Technology
0
240
NFT つくってみた
2022/03/12 に実施された Drecom SRE Sunday Vol.2 での LT 登壇資料です。
Smith
March 13, 2022
Tweet
Share
More Decks by Smith
See All by Smith
Zig なんもわからん 〜あるいは学びのモチベーション〜
dolow
0
360
Go に Generics がやってきた
dolow
0
580
プロのエンジニアが1人日を捻出してレトロJRPGっぽいゲームを本気で作った
dolow
0
840
技術中間組織はじめました
dolow
0
95
About triangle
dolow
0
57
Cipher.Mobile
dolow
0
90
Develop::Client::Game
dolow
1
30
Other Decks in Technology
See All in Technology
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
100
Lambdaの常識はどう変わる?!re:Invent 2025 before after
iwatatomoya
1
450
MapKitとオープンデータで実現する地図情報の拡張と可視化
zozotech
PRO
1
130
生成AI時代の自動E2Eテスト運用とPlaywright実践知_引持力哉
legalontechnologies
PRO
0
220
チーリンについて
hirotomotaguchi
6
1.8k
AIと二人三脚で育てた、個人開発アプリグロース術
zozotech
PRO
1
710
20251209_WAKECareer_生成AIを活用した設計・開発プロセス
syobochim
6
1.5k
Gemini でコードレビュー知見を見える化
zozotech
PRO
1
250
エンジニアリングをやめたくないので問い続ける
estie
2
1.1k
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
270
ブロックテーマとこれからの WordPress サイト制作 / Toyama WordPress Meetup Vol.81
torounit
0
550
因果AIへの招待
sshimizu2006
0
950
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
A Tale of Four Properties
chriscoyier
162
23k
Raft: Consensus for Rubyists
vanstee
141
7.2k
How STYLIGHT went responsive
nonsquared
100
6k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
The Invisible Side of Design
smashingmag
302
51k
GraphQLとの向き合い方2022年版
quramy
50
14k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Done Done
chrislema
186
16k
BBQ
matthewcrist
89
9.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Transcript
NFT つくってみた Smith
自己紹介 図々しくも本日二回目の登壇なので割愛します。
この LT で伝えたいこと • NFT つくるの簡単だよ!ってこと
NFT とは (ざっくり) • Non Fungible Token の略、「代替不可なトークン」という意味 • 世の中では
NFT アートとかが流行っている • 高額取引されたりしてて、胡散臭いような夢があるような • NFT アートは所有権を証明できる!って言ってる • (けど、アートの複製はできるんだなぁ)
NFT 開発するのに必要な技術 この本を半分読めば出来ます →
開発のしかた
必要なもの • geth (ローカルネットワーク) • truffle (スマートコントラクト開発環境一式) やること 1. スマートコントラクトを書く
2. テストを書く 3. フロントから操作する UI を作る (本質的じゃない割に地味にめんどい) 4. 実際のブロックチェーンウォレットを使ってテスト 5. デプロイ 開発のしかた
開発のしかた: スマートコントラクトを書く スマートコントラクトとは • ブロックチェーン上で動作するプログラムのこと • スマートコントラクトを介して誰が何をやったかは全て記録される • 中身は簡単なクラス定義みたいなものなのでビビらなくて OK
スマートコントラクトの作り方 • スマートコントラクトには ERC と呼ばれる規格がある • NFT 用の規格もあり、 ERC 721 とか ERC 1155 が NFT を取り扱う • オープンソースで ERC 721 や ERC 1155 の基本実装が提供されている • 簡単なものなら基本実装をラップするだけで OK
必要なもの • (truffle に組み込まれています) テストの書き方 • JavaScript のエコシステムが使える •
デフォルトで mocha • つまり、テスト用に新たな言語やライブラリを覚え なくもよい • スマートコントラクト独特の要素さえ押さえれば OK! • テスト実行も truffle test と叩くだけ、楽 ちん! 開発のしかた: テストを書く
必要なもの • web3.js やること 1. 動作確認したい機能の UI を作る 2. 動作確認テスト
mocha での記法とはまた若干違ってたりする ので、もっとも煩わしいパート。 開発のしかた: フロントから操作する UI を作る
必要なもの • Metamask • ウォレットアカウント やること 1. 作った Web UI
をポチポチする 2. ガス代もちょっと確認する 開発のしかた: 実際のウォレットを使ってテスト
必要なもの • Infura アカウント • ウォレットアカウント • ガス代 やること 1.
Infura という DApps デプロイ用サービ スを利用 (無料) 2. Infura を介してテストネットやメインネッ トにデプロイ 3. これも truffle 設定でできる 開発のしかた: デプロイ
気をつけたこと
気をつけたこと 特定のアカウントしか NFT の発行・削除ができないように • NFT 発行 API もスマートコントラクトから操作する •
これをスマートコントラクトをデプロイしたアカウントのみに制限 NFT の持ち主にしか所有権の移動ができないように • 発行した NFT ID 毎に所有者をマップし、所有権を確認するようにした 税制リスク • リスクが図りきれないので、Smith 個人で勝手に作って勝手に配る体裁
気をつけたこと OSS 化 • ソースコードはスマートコントラクトのデプロイ後に開示する • (開示されたものは複製してデプロイしても良いです) • 第三者が勝手に一番最初にデプロイしたら、なんかやだから デプロイ一発勝負
• コード回収してデプロイしなおすと、スマートコントラクトのアドレスが変わります • つまりウォレットで参照するアドレスが変わっちゃう!
困ってること
ビューアがない! • 記念アイコンの URL を知るすべを用意しきれていない・・・! • 画像すら見れない NFT ・・・! •
abi は公開するので自分で URL 引いて! ガス代高ぇ・・・! • ガス代高ぇ・・・! 困ってること
ガス代高ぇ・・・!
• 24.5 Gwei / gas (実測値) ◦ = 0.0000000245 ETH
/ gas • スマートコントラクトのデプロイに必要なガス ◦ 3160899 ガス ◦ = 0.0774420255 ETH • 30万円 / ETH くらい (2022/03/12時点) • つまり、デプロイだけで 2.3万円・・・! この勉強会、予算ないんです・・・! ガス代高ぇ・・・!
「NFTは出す・・・! 出すが・・・・」
「今回はまだネットワークの 指定まではしていない そのことを どうか諸君らも思い出していただきたい」
「つまり・・・ 我々がその気になれば NFT の受け渡しは」
「テストネットでということも 可能だろう・・・ ということ・・・!」
この LT で伝えたいこと • NFT つくるの簡単だよ!ってこと
• NFT つくるの簡単だよ!ってこと • ガス代高ぇ! • ガス代高ぇ! • ガス代高ぇ! •
ガス代高ぇ! • ガス代高ぇ! • ガス代高ぇ! この LT で伝えたいこと
(ガス代を抑えるソリューションもありますが イベントに間に合いませんでした、すいません!!!) この LT で伝えたいこと
ということで、 Görli テストネットで NFT 配ります!(涙)
テストネットでもいいよって方は connpass 記載のアンケートに アドレスを記入する項目があるので 回答おねがいします!
まとめ • スマートコントラクトの開発やデプロイの開発環境は潤沢に整ってる • とはいえ、独特の気をつけなきゃいけないポイントがある ◦ 基本、非同期処理 ◦ セキュリティ周り •
ガス代高ぇ・・・! • ガス代高ぇ・・・! • ガス代高ぇ・・・!