[翻訳] NFTミンティングモジュールテンプレートでNFTコレクションを作成する


:::note info
本記事は下記の翻訳となります。
[『Building NFT Collections with NFT Minting Module Template』](https://blog.bunzz.dev/building-nft-collections-with-nft-minting-module/)
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1926720/cd6f21c8-0a22-9b7e-2087-4e5af0a4e895.png)

ブロックチェーン技術は、金融、サプライチェーン管理、アートなど、さまざまな産業で新たな機会を創出しました。非代替性トークン（NFT）の作成と取引は、ブロックチェーン技術の最も注目すべき応用の一つです。これらのトークンは、ブロックチェーン上に格納されるユニークなデジタルアセットであり、変更不可能で安全です。

[NFT Minting Module](https://app.bunzz.dev/module-templates/1309c62a-422e-4cb4-8dfa-333984b6e710?version=1.0.0)は、より複雑な機能を備えた NFT コレクションを作成したいブロックチェーン開発者の方をサポートすることができます。このモジュールには、NFT コレクションを作成するためにプロジェクトが必要とする機能が含まれています。

![](https://lh5.googleusercontent.com/xPGJi040HHRplzwIKCNMLGTnyp5UTv_2ahdmxGr-K7b3jN_YMBTuYgtjf3G7PkuNUiEB983C4vJDb2zndPnW9jHuvV5aQRpdVLLpGLKBlYyu-Nv18-aD9Vc3RCbpEIRX8zm9xk6ZFj6NRoO6CRDxYvw)

NFT Minting スマートコントラクト[モジュール](https://app.bunzz.dev/module-templates/1309c62a-422e-4cb4-8dfa-333984b6e710?version=1.0.0)の機能と使用方法を見てみましょう。

1. **トークンのメタデータを準備する**: コントラクトをデプロイする前に、トークンのメタデータを準備し、IPFS や s3 のような集中型サービスにアップロードする必要があります。Pinata Cloud のようなサービスを使用することができます。
2. **コントラクトをデプロイする**: コントラクトをデプロイする際には、8 つの引数を入力する必要があります。

   ![](https://lh4.googleusercontent.com/UHWLTUoCkJaaXMmMErQZjuH_Zm76LqUXQwr-6EpptO_GUcykhHOC8LfKXvSpPiYn-wdyPbrvxzq51jZoNbC6Vgg4fciejL4L1nBnx1z6DHJMsgUPzYzXCPSnttWlIXu97V6Cip1OfNruaD_ejgSSJak)

   最初の引数はトークンの名前を表す文字列であり、2 番目の引数はトークンのシンボルを表します。その他の引数は以下の通りです。

   - **baseTokenURI\_**: baseTokenURI には IPFS も使用できます。例えば、Pinata は使いやすいです。
   - **maxSupply\_**: ミントできる NFT の最大数。売り切れる可能性のある数量を設定します。
   - **preCost\_**: パブリックセール時のミントコスト
   - **publicCost\_**: WL スロットごとのミント可能数量
   - **maxMintableQuantityPerWL\_**: WL スロットごとのミント可能数量
   - **mintableLimitPerTX\_**: 1 つのトランザクションでミント可能な上限。ボットの防止

3. **NFT コレクションを生成する**: モジュールをデプロイすることで、NFT コレクションを生成することができます。
4. **ホワイトリストのアドレスを登録する**: 関数「updateWL」または「pushMultiWL」を呼び出すことで、ホワイトリストのアドレスを登録することができます。これらの関数は、アドレスの配列を引数として受け取ります。

   ![](https://lh5.googleusercontent.com/RqR48hl1Q5yeqUsyfPTddqeamQN_yqeOtrx8f48YjAa0Xm9ho3ddotOBk53z4j3gKAiiDCTyqmGBXN-LZ_2SCw8cClcY_sHfNz_XrMozYESXvKiU4iCZZ-oxz6J6Z_g_hqBIDjrGDC5uqS-ZCpTPO8g)

5. **NFT をミントする**: ホワイトリストに登録されたユーザーは、プレセール期間中に「preMint」関数を呼び出すことで NFT をミントすることができます。

   ![](https://lh5.googleusercontent.com/hxGLJKanNpyyCL4kAr1JOX5bwcQ0EmTDlSsi0BXnNvMYFl6SsRyn5CAbT5UvXCEwdgQv9N8HzKosYctwb4980PPQ0oULjD5BxPxuzgLvXUhl5-Sj-uH3filhbWqBzaFd3UAZ8n_L1ucUC-7-BAT688c)

6. **パブリックセールを開始する**: 「setPresale」関数を呼び出すことで、パブリックセールを開始することができます。この関数は、真偽値型の引数を 1 つ受け取り、プレセールの状態を表します。プレセールの状態が false に設定されると、プレセールフェーズが停止し、パブリックセールが開始されます。

   ![](https://super-translator.inaridiy.workers.dev/assets/image/318d5317-967f-4a95-8a1a-a07798a4d861)

7. **パブリックミンティングに参加する**: 登録されたホワイトリストに属していないが参加したい場合、「publicMint」関数を呼び出すことで参加することができます。

   ![](https://super-translator.inaridiy.workers.dev/assets/image/f426fda0-e51d-4a5f-8585-6386a7624007)

8. **利益を引き出す**: コントラクトのオーナーは、「withdraw」関数を呼び出すことで、NFT コレクションの販売から生じた利益を引き出すことができます。

   ![](https://super-translator.inaridiy.workers.dev/assets/image/be41168f-3b77-4f6f-965b-838a99db41db)

この具体的な例では、オーナーが設定する必要があるのは開発中に行う値のみです。ただし、他のコントラクトではデプロイ後にさらに手順が必要な場合もあります。

## NFT Minting Module のユースケース

[NFT Minting Module](https://app.bunzz.dev/module-templates/1309c62a-422e-4cb4-8dfa-333984b6e710?version=1.0.0)は、ユニークで安全な NFT コレクションを作成したい開発者にとって、いくつかのユースケースがあります。以下にいくつかの例を示します。

1. **アートとコレクティブル**: NFT は、ユニークなデジタルアートやコレクティブルを表すために使用されています。開発者は NFTMintingModule を使用して、ホワイトリストのユーザーや異なる販売モードなど、カスタマイズ可能な機能を備えた独自の NFT コレクションを作成することができます。
2. **ゲーム**: NFT は、ゲーム内のアセット、キャラクター、武器としても使用されています。開発者は NFTMintingModule を使用して、独自のゲーム NFT コレクションを作成し、プレイヤーがブロックチェーン上でアセットを購入および販売できるようにすることができます。
3. **音楽**: ミュージシャンやアーティストは、ユニークなデジタルアルバム、トラック、グッズを表すために NFT を使用することができます。NFTMintingModule を使用して、NFT コレクションを作成し、異なる販売モードを含めることで、ファンが限定版のデジタルアセットを購入および販売できるようにすることができます。
4. **不動産**: NFT は、仮想世界の仮想的な不動産など、ユニークな不動産資産を表すために使用されています。NFTMintingModule を使用して、ホワイトリストのユーザーや異なる販売モードなど、カスタマイズ可能な機能を備えた NFT コレクションを作成することができます。

5. **デジタルアイデンティティ**: NFT はデジタルアイデンティティと所有権を表すこともできます。NFTMintingModule は、カスタムメタデータやトークン URI の設定などの機能を備えた NFT コレクションを作成することができます。これにより、開発者はユニークなデジタルアイデンティティ NFT を作成することができます。

[NFTMintingModule](https://app.bunzz.dev/module-templates/1309c62a-422e-4cb4-8dfa-333984b6e710?version=1.0.0)は、さまざまな業界やユースケースで使用される汎用のスマートコントラクトモジュールであり、開発者はブロックチェーン上でユニークで安全な NFT コレクションを作成することができます。

——————–

これらの手順に従い、NFT Minting Module を使用することで、DApp のユースケースに合わせた NFT コレクションを構築しカスタマイズするために必要なすべてが手に入ります。

あなたが構築するものを楽しみにしています。もし手順に従って進める中で問題が発生したり質問がある場合は、[Discord](http://discord.gg/wCFUV6rNd7)でお気軽にご連絡ください。または[Twitter](https://twitter.com/iamtjah)で DM を送ってください。

---

---

:::note info
【Bunzz とは】
Bunzz はアジア最大級の DApps 開発インフラを運営する、web3×LLM におけるリーディングカンパニーです。「公共財としてのスマートコントラクト」の実現に向けて、各種 web3 インフラやサービスを開発・提供しております。

【Our Projects】

- **[Smart Contract Hub | スマートコントラクトの Github](https://www.bunzz.dev/)**
- **[DeCipher | "Read me" for All of Contracts](https://www.bunzz.dev/decipher)**
- **[Bunzz for Enterprise | Tier1 の技術リソースを日本企業に提供](https://enterprise.bunzz.dev/ja)**
- **[Bunzz Audit | 透明かつ持続的なコントラクト監査の仕組みを実現](hhttps://www.bunzz.dev/audit)**

【Social Links】

- [X(旧 Twitter))](https://twitter.com/BunzzDev)
- [Discord Community](https://t.co/6hHgssJdvW)
- [Youtube](https://www.youtube.com/@bunzzdev)
- [Instagram](https://www.instagram.com/bunzzdev/)

【お問合せ】
web3 開発・コンサルティングのご相談はこちらから 👉[Google Form](https://forms.gle/4tgQjWSw2MMMZW6E6)
:::

:::note info
Bunzz R&D エンジニア荒巻さんの著書[『スマートコントラクトの仕組みと法律』](https://amzn.to/3V03sNH)が好評発売中です 📕
<a href="https://amzn.to/3V03sNH" rel="nofollow" referrerpolicy="no-referrer-when-downgrade">
<img
    src="https://m.media-amazon.com/images/I/81wopoZ1K4L._SY522_.jpg"
    alt="『スマートコントラクトの仕組みと法律』（中央経済グループパブリッシング）"
    width="200px"
    height="auto"
    Style="border: 0px;"
  />
</a>
:::