Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NFT つくってみた
Search
Smith
March 13, 2022
Technology
0
250
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
590
プロのエンジニアが1人日を捻出してレトロJRPGっぽいゲームを本気で作った
dolow
0
840
技術中間組織はじめました
dolow
0
96
About triangle
dolow
0
60
Cipher.Mobile
dolow
0
90
Develop::Client::Game
dolow
1
32
Other Decks in Technology
See All in Technology
最強のAIエージェントを諦めたら品質が上がった話 / how quality improved after giving up on the strongest AI agent
kt2mikan
0
160
20260311 ビジネスSWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
270
IBM Bobを使って、PostgreSQLのToDoアプリをDb2へ変換してみよう/202603_Dojo_Bob
mayumihirano
1
320
Scrumは歪む — 組織設計の原理原則
dashi
0
130
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
4.2k
Google系サービスで文字起こしから勝手にカレンダーを埋めるエージェントを作った話
risatube
0
150
製造業ドメインにおける LLMプロダクト構築: 複雑な文脈へのアプローチ
caddi_eng
1
560
JAWS DAYS 2026 ExaWizards_20260307
exawizards
0
420
Go標準パッケージのI/O処理をながめる
matumoto
0
160
クラウド × シリコンの Mashup - AWS チップ開発で広がる AI 基盤の選択肢
htokoyo
2
220
実践 Datadog MCP Server
nulabinc
PRO
1
100
複数クラスタ運用と検索の高度化:ビズリーチにおけるElastic活用事例 / ElasticON Tokyo2026
visional_engineering_and_design
0
130
Featured
See All Featured
Speed Design
sergeychernyshev
33
1.6k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
350
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
53k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
How STYLIGHT went responsive
nonsquared
100
6k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
How to build a perfect <img>
jonoalderson
1
5.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.5k
What's in a price? How to price your products and services
michaelherold
247
13k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Music & Morning Musume
bryan
47
7.1k
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 記載のアンケートに アドレスを記入する項目があるので 回答おねがいします!
まとめ • スマートコントラクトの開発やデプロイの開発環境は潤沢に整ってる • とはいえ、独特の気をつけなきゃいけないポイントがある ◦ 基本、非同期処理 ◦ セキュリティ周り •
ガス代高ぇ・・・! • ガス代高ぇ・・・! • ガス代高ぇ・・・!