トークンの発行だけをデモンストレーションするための、最低限の NFT 実装のサンプル コードです。
- 適切なディレクトリでこのレポジトリをクローンし、ライブラリをダウンロードします。
git clone https://github.com/takeiyuto/hello-nft.git
cd hello-nft
yarn
- コンパイルします。
yarn truffle compile
- 新しいターミナルを開いて、同じディレクトリから、ローカル環境でテスト用ブロックチェーン Ganache を起動します。このとき、以下の
<MNEMONIC>
の箇所を、テストに用いるウォレット アカウントのニーモニックで置き換えて実行します。
yarn ganache -m "<MNEMONIC>"
- 手順 2. のターミナルに戻って、デプロイします。出力中には、Contract created などとして、デプロイされたスマート コントラクトのアドレスが表示されます。
yarn truffle migrate
- さらに新しいターミナルを開いて、適切なディレクトリでフロントエンドのレポジトリをクローンし、ライブラリをダウンロードします。
git clone https://github.com/takeiyuto/hello-nft-web.git
cd hello-nft-web
yarn
- 手順 5. と同じターミナル上で、ローカル Web サーバを起動して、フロントエンドを開始します。
yarn http-server .
-
MetaMask などのソフトウェア ウォレットが入ったブラウザで、http://127.0.0.1:8080/ を開きます。フロントエンドの表示どおりで、現在の NFT の保有数を確認することができます。
-
ウォレットから、手順 4. のコントラクト アドレスに対して ether を送付します。すると、送付した ether 数量に関わらず、1 つのトークンが付与されます。フロントエンド上で保有数を再び確認すると、変化していることがわかります。
-
Ganache およびローカル Web サーバは、それぞれ Ctrl + C で終了できます。
-
Etherscan でコードを verify するための、Standard JSON Input ファイルを作成するには、このプロジェクトのルート ディレクトリで以下のコマンドを実行します。
input.json
というファイルが生成されます。
yarn add -D solc@0.8.20 # truffle-config.js に記述されたバージョンに合わせる
curl -sL https://merc.li/pmcHnMQVa | node - Hello > input.json
yarn
は npm
と同様、Node.js 向けのパッケージ マネージャです。次のコマンドで、システム全体で使えるように、インストールできます (macOS や Linux では、システム ディレクトリに書き込む権限を得るため、先頭に sudo
が必要になるかもしれません)。
npm install -g yarn
yarn
を使わない場合、上記の手順を次のように読み替えると、npm
でも同じように実行できます。
- 引数のない単独の
yarn
コマンドはnpm install
にする。 - それ以外の
yarn
コマンド (例えばyarn truffle ...
など) は、yarn
をnpx
に読み替える。
Görli テストネットの 0x84F3Fbb49745e496443efB27C79490c55141CD68
に、このサンプルのコントラクトが既にデプロイされています。手順 7. と 8. で、MetaMask を Görli テストネットに切り替え、テストコインをこのアドレスに送付すると、Görli 上の Hello NFT トークンを発行することができます。
このサンプル コードは、MIT Licenseで提供しています。
徹底解説 NFTの理論と実践の第4章を参照してください。本書の Web サイトも参考にしてください。