Generativeな星座NFTが欲しいと公言して2ヶ月。自分で作ってしまいました!
結局自分で作りました!2ヶ月かかった☻ https://t.co/Pwx4EOD6QL
— ずがーん (@zugaaanzubababa) October 11, 2021
このNFTの特徴は以下のようになっています!
- プログラムでのランダム生成のため意図しない星座の配置を楽しめるNFT
- IPFSにデータを保存しているため、画損データが欠損しづらい
- 独自のスマートコントラクトを実装しており、1MATICでmint可能
- 星座名を付けるための関数を用意しており、持ち主がつけた名前をブロックチェーンに書き込める
ロゴにある3つのような星座NFTをみんなでmintして、どんな星座に見えるか楽しもう!といったプロジェクトです。
それぞれに名前を付けてもらって、命名した名前と一緒に飾れるページを作っていて、色んな人の想像力に触れられる場所が出来たらいいなと思っています。
また、シンプルに皆さんのコレクションに星座を送り込めるだけでも僕にとっては価値があります!笑
ド素人から二ヶ月でちょっとお勉強したので技術的なことも少し書いておくと、このNFTは
- ランダムに星の座標を決定する
- 星の間を星座線でつなぐ
- 星と星座をドット絵の画像に置き換える
- 画像をIPFSという分散型の保存システムに保存(ピン止め)する
- 画像のメタデータ(名前や画像の在処のデータ)を作成し、再度IPFSに保存する
- ERC721というNFTの規格に合うように⑤で作ったデータを持たせてNFTを発行するプログラム(スマートコントラクト)をSolidityという言語で書く。
- スマートコントラクトをPOLYGONネットワークにデプロイ(アップロード&配置)する
- スマートコントラクトに発行する指令を出すボタンを設置する
といった流れで出来ています。
同じように辿ってもらえば同じようなものが作れるはずです!
また、参考にしたページをメモがてら貼っておきます。適宜ググりながらやっているのでメモに残していないものもたくさんあります。
主に自分用です。(順不同)
コレクタブルNFTを作ってみる①事前にオフチェーンで画像を用意するパターン (これだけでNFT発行できそう)
openzeppelin_ERC721 (ERC721の関数、solidity書くときに読んだ)
Metadata Standards (NFTのメタデータ形式)
Pinata Pinning Services API (IPFSへのPIN止め自動化)
3DアートデータをNFT化してOpenSeaで閲覧する (概要を掴む)
NFT発行、OpenSeaまでの表示をWeb上だけで完結できるか? (概要を掴む②)
ブロックチェーンエンジニア Lv. 2 —ガチャを実装する— (概要を掴む③ 中身は古い)
Solidityの基本事項まとめ (ちょっと古いけど問題ない)
How to convert uint to string in solidity? (型変換)
wgetでこういう時はこうする!! (CUI弄ってるときに便利だった)
EIP-170: Name the MAX_CODE_SIZE constant (スマートコントラクトの最大サイズ)
写真と画像を結合する (フォトショでロゴ作ったときに読んだ)
【逆引き】Remixで簡単に公開済みコントラクトを呼び出す方法 (ABIってどれ?ってときに読んだ)
2進数、8進数、10進数、16進数相互変換ツール (なんだかんだ使う、chainIdの変換とか)
npm install コマンドを実行すると、no such file or directory というエラーになる (ゲストOSでnpm installしてハマった。)
[axios] axios の導入と簡単な使い方 (API叩く用)
npmのpackage.jsonと依存関係を理解しよう! (npmのインストールが上手くいかなかったときに読んだ)
Promiseの直列処理をループする(完了後に実行したい処理もある)(JavaScriptの実行順で困ったときに)
「Ctrl」+「S」でキー入力が受け付けられなくなる (こういうの地味にハマる)
Pythonのお勉強ゾーン
多次元リストの作成と要素の取得
Pythonでランダムな小数・整数を生成するrandom, randrange, randintなど
Pythonで小数点以下を切り捨て・切り上げ: math.floor(), math.ceil()
コメントを残す