何もわからんから始めるNFT
とりあえずまぁ、インターフェースを体験してから実装を理解していこう、ということで、
実際にNFTを買ってみて、何が行っているのかを把握してみよう。
もともと持ってる理解レベルは、「仮想通貨をかってopenseaってところでNFT買う」くらい...。
この辺を見ると、流れ的には、
- 仮想通貨購入のために、取引所の口座作って、入金する
- 取引所でETHを買う
- 買ったETHを、MetaMask(ウォレットと呼ばれるものぽい)に送る
- openseaで自分のwalletとConnectして、NFTを購入
ぽい。
実際やってみると、3までは特に悩むことなくやってみれたが、
openseaがなんなのかよくわからなすぎて、気軽に購入〜とかできなかった。
雰囲気検索
そして、すごく安そうなNFT買おうとしてみたけど、ガス代とやらが高すぎる。
金額は0.0001ETH(約$0.35)だけど、ガス代が0.01ETH(約$34.7)。。
ガス代は、Ethereum上でtransaction実行するためにかかるお金だとか....
困っていたら、手数料の安いpolygon networkで買ったらよいとアドバイスをくれ、
3MATICをポケットマネーから出してくれる神が降臨。
Polygonは、Ethereumのレイヤー2ネットワークというものらしい。
たぶん、Ethereumとは別のブロックチェーンなんだけど、なんか互換性がある的な。。わからん。
MATICは、Polygonにおけるトークンの名前っぽい、EthereumにおけるETHみたいな...たぶん。
Wrapped ETHってなんだ?
正直良くわからんけど、トークンの標準規格があって、それに沿っていれば、異なるブロックチェーン上のトークンを交換できるとか、同じウォレットで管理できるとかのメリットがあるけど、ETH自体は対応してなくて、同じ価値で交換される別トークン、WETHが作られてたとか...。
よくわからんのは、WETHってどこブロックチェーンにあるものなのってあたり...。
・Opensea上では、ETH(黒)、ETH on Polygon(紫)、WETH(赤)とかある。
・Chains Ehterenum選んだら、ETH(黒)・WETH(赤)がでて、Chains Polygon選んだらETH on Polygon(紫)だけ出る。
・MetaMask上、Polygon Mainnetにつないでる状態でMATICとWETHでる、Ehtreum MainnetでETHからWETHにスワップさせることもできる...ガス代高くてやるきにならんが...。
なんかそのあたりからして、チェーン毎にWETHあるような気がする..。
2のuniswapで、MATIC -> WETHにスワップしたとき、なんかずっとpendingって出る状態になった。
よくわからんけど、指定するガス代がひくくて処理されない状態になったぽい。
MetaMask上のアクティビティから、speedupボタンで指定するガス代変更? したらいいらしい。
実際やったら、なんか失敗扱いになった。
が、その後もう一回最初からやったら成功した謎。
ETHでかうのも、ETHからMATICなりWETHに変えるのも、4000円近くガス代かかる。
MATICを取り扱ってる取引所でなら、ETH経由せずにMATICかうことができるとか。。
そして、KumaのNFTを購入。
この辺をやってみたら、もうちょっとNFTそのものに付いて理解する材料得られるかもしれない。
Part1は、スマートコントラクトをRpostenってテスト用?の場所にデプロイするところまで。
いまいちよくわからんが、
・Alchemyッテサービスを使って、スマートコントラクトを簡単にデプロイできる
・デプロイにはETHが必要。そのため、自分のwalletとの接続が必要。
・Ethereum Testnet RpostenのコインはFaucetで付与可能。
・なんか、Metamaskで秘密鍵Exportして環境変数に読み込ませろと...。ちょっと怖いので、Metamask上でアカウント作って読み込ませる。。
付与されたときのtransaciton
デプロイが成功するとaddressが表示される。Fromが自分の指定したwalletになっていた。
Part2は、Part1で作ったコントラクトを使ってNFTを作るところ
・pinataに画像データを上げる
・あげるとCIDが払い出される
https://gateway.pinata.cloud/ipfs/QmXiVhkgxAix6txsYwVD9mRDfK3sA7uWWoe9Vn6z6X57nb
・メタデータを準備してそれも同じようにしてアップロードする
https://gateway.pinata.cloud/ipfs/QmeYSGaKmYgJmKojPz7pbjZAaeuPCteEVQs2pGtGtRBf2R
・Part1で作ったコントラクトに対して、transactionを実行する...?
これで、できた...のか。。
Part3は、Part2で作ったNFTをmetamaskで表示するところ
・metamask上でカスタムトークンをインポートを実行する。
・トークンコントラクトアドレスに、コントラクトのアドレスを入れる。0x0a200eb7b18a027cdfc4889304824cdd48a2d3c8
・トークンのIDとやらには、Etherscanに表示されていた、1をいれた。
・ブラウザ上だとNFTとしてアセット表示されるけど、画像までは表示されない。
・スマホにmetamaskいれて、そっちにも同じアカウント使うためにシードフレーズを入れる(いいんだよなこれは)
・同じアカウントでRopsten Test NetworkでみるとNFTにPart2で作ったやつがでている。
コントラクトアドレスとトークンIDは、
くまのNFTだとこれかな。
スマホで見てみて。
・アカウントの名前とかアクティビティは、ローカルに保存されているだけぽいな
・Polygon, MATICはでてるけど、WETHが表示されてないな...。
これも自分で登録しないとでないのか。
・くまのNFTもスマホで表示しようとしたが、could not verify ownershipとか言われてできない...。指定してるコントラクトかToken IDが違うんだよ思うが。。<- コピペミスってただけだった。