---
title: "MetaplexとGumdropを使ってSolana NFTをエアドロップする方法"
description: "Gumdropを使ってコレクターにSolana NFTをエアドロップする"
---

# MetaplexとGumdropを使ってSolana NFTをエアドロップする方法

このチュートリアルでは、Metaplexが開発した[NFTツール](https://www.alchemy.com/overviews/metaplex)の1つであるGumdropを使用して、Solana上でNFTをエアドロップする方法を説明します。Solana上でのNFTプロジェクト開発が初めての方でも取り組める、初心者向けのチュートリアルです。

このガイドの所要時間：15分

このチュートリアルでは、以下を行います。

1. NFTを作成する
1. NFTをミントする
1. Gumdropコマンドラインインターフェース\(CLI\)を使ってNFTをエアドロップする
1. Vervel と Gumdrop を使って友人と共有するリンクを作成する

これらの用語が今わからなくても心配いりません。一緒に順を追って進めていきます。

## **NFTエアドロップとは？**

NFTエアドロップとは、無料のNFTがウォレットアドレスに転送されることを指します。NFTエアドロップは、NFTプロジェクトがコレクターに報酬を与えたり、コミュニティのエンゲージメントを促進したり、今後のNFTミントに向けたallowlistトークンを配布したりする際によく使われる方法です。NFTエアドロップは、[NFTマーケティング施策](https://www.alchemy.com/blog/5-tips-for-nft-success)として最も頻繁に用いられています。

NFTエアドロップの例としては以下が挙げられます。

1. Swim Protocol - クロスチェーンブリッジを利用したユーザーにSwimmer NFTをエアドロップ
1. Aurory - Aurorian NFTを保有するコレクターに新しいアートやコレクティブルをエアドロップ
1. Degenerate Ape Academy - トークン保有者にDegenerate Trash Pandaのミントに参加するためのミントトークンをエアドロップ

保有者に事実上無料のアイテムを配布することで、NFTプロジェクトはトークンとコミュニティの価値を継続的に生み出すことができます。

### **gumdropとは？**

Gumdropは[Metaplex](https://www.alchemy.com/dapps/metaplex)が提供するNFT機能で、オフチェーンのハンドルでツリーを構築し、ユーザーが任意のウォレットへ引き換えられるようにすることで、クリエイターがallowlistに登録されたユーザーへ直接、受け取り用のリンクを送ることができます。Gumdropは[Candy Machine](https://www.alchemy.com/overviews/candy-machine-v2)と組み合わせて、NFTエアドロップの完了やトークンの配布にも使用できます。

Gumdropは、allowlistを使ってNon-fungibleトークンをドロップするプロセスを簡素化することで、Solana上でのNFTエアドロップを容易にします。

## **gumdropでSolana NFTをエアドロップする方法**

このチュートリアルを進める準備として、以下のツールをマシンにインストールしておく必要があります。

1. [NodeJS](https://nodejs.org/en/) \(バージョン16\)
1. [TS-Node](https://www.npmjs.com/package/ts-node)
1. [SolanaCLI](https://docs.solana.com/cli/install-solana-cli-tools)
1. [Yarn](https://classic.yarnpkg.com/lang/en/docs/install/#mac-stable)
1. [Git](https://git-scm.com/)
1. [Metaplex CLI](https://github.com/metaplex-foundation/metaplex.git)
1. [Phantom Wallet](https://phantom.app/)

Solana開発が初めての方は、先へ進む前に[Solana開発者ツールのインストール方法](https://www.alchemy.com/overviews/solana-developer-tools)を確認してください。

マシンに異なるバージョンのNodeがインストールされている場合は、**NVM**を利用できます。

今は圧倒されるように感じても心配いりません。各ツールの機能は、進めていく中で実際に示していきます。

### **ステップ1. gumdrop CLIを使って初期化する**

Gumdrop CLIのインストールと設定は、Gumdrop GitHubの[リポジトリ](https://github.com/metaplex-foundation/gumdrop)で行われます。必要なものはすべて揃っています。まずはリポジトリをクローンして、自分のコンピューターに取得しましょう。進める前に、node、yarn、ts-nodeがインストールされていることも確認する必要があります。

ts-nodeは以下を実行してインストールできます。

以下を実行して確認できます。

では、ターミナルでmkdirコマンドを使って空のフォルダを作成しましょう。このフォルダにはsolana-airdropという名前を付けます。

[Solanaウォレット](https://www.alchemy.com/overviews/solana-wallets)を作成するには、フォルダ内で以下のコマンドを実行します。

ターミナルに表示されるメッセージは、後でpubkeyとシードフレーズが必要になるため、安全な場所に保存してください。

以下は、その表示例です。

<ImageBlock
  src="https://media.alchemy.com/1703606637-solana-wallet-generation-output.jpg"
  alt="solana-keygenのターミナル出力：新しいSolanaウォレットのpubkeyとシードフレーズが表示されている"
  width={1134}
  height={494}
  caption="Solanaウォレット生成の出力結果"
/>

次に、Gumdropプロジェクトをsolana-airdropフォルダ内にクローンします。

続いて、CLIが含まれるディレクトリに移動します。

次に、以下を実行します。

このコマンドで必要な依存関係がすべてインストールされます。インストールには数分かかる場合があります。

次に、学習目的でお金を使いたくないので、[Solana Devnetクラスターに接続](https://www.alchemy.com/overviews/solana-devnet)します。実際のアプリケーションではmainnetを使用する必要がある点に注意してください。以下のコマンドを実行してdevnetに切り替えます。

次に、NFTを保持するための新しいキーを作成する必要があります。「Se」というのは、pubkeyが「Se」から始まることを意味します。

<ImageBlock
  src="https://media.alchemy.com/1703606780-solana-keypair-generation-output.png"
  alt="pubkeyがSeから始まるSolanaキーペア生成のターミナル出力"
  width={1134}
  height={142}
  caption="Solanaキーペア生成の出力結果"
/>

新しいSolanaアドレスを設定するために、さらにいくつかコマンドを実行しましょう。

これにより、以下が表示されるはずです。

<ImageBlock
  src="https://media.alchemy.com/1703606953-solana-wallet-address-configuration-output.png"
  alt="新しいウォレットアドレスでSolana CLIを設定した後のターミナル出力"
  width={1134}
  height={290}
  caption="Solanaウォレットアドレス設定の出力結果"
/>

### **ステップ2. Devnetウォレットに資金を入れる**

次に、[テスト用のSolanaトークンを取得](https://www.alchemy.com/overviews/solana-faucet)する必要があります。devnetを使用しているので、ターミナルで以下のコマンドを実行すれば、すぐにsolを取得できます。

代わりに、[Solanaフォーセット](https://solfaucet.com/)からdevnetのSOLトークンを取得することもできます。

<ImageBlock
  src="https://media.alchemy.com/1703607074-solana-faucet-website-interface.png"
  alt="Solanaフォーセットのウェブサイトインターフェース"
  width={1400}
  height={576}
  caption="Solanaフォーセットのウェブサイトインターフェース"
/>

コマンドラインで以下のスクリプトを実行すれば、devnetウォレットにSolanaがあることを確認できます。

### **ステップ3：PhantomウォレットをDevnetクラスターに接続する**

次に、新しく作成したdevnetウォレットをPhantomにリンクします。これを行うには、**settings**をクリックし、**Change Network**を選択して、**Devnet**を選びます。

<ImageBlock
  src="https://media.alchemy.com/1703607239-phantom-wallet-connect.gif"
  alt="Phantomウォレットの設定：ネットワークをSolana Devnetクラスターに変更する"
  width={728}
  height={1082}
  caption="PhantomウォレットをSolanaのdevnetクラスターに接続する"
/>

### **ステップ4. DevnetウォレットをPhantomに追加する**

ここで、devnetウォレットの秘密鍵を取得する必要があります。ターミナルを開き、**cat**を使ってkeypair.jsonファイルの内容を確認して取得します。

devnetウォレットをPhantomに追加するには：

1. Phantomを開く
1. 受け取った出力をコピーする
1. わかりやすい名前を付ける
1. 左上のナビゲーションメニューから**Import Private Key**を選択する
1. **Add/Connect Wallet**をクリックする
1. **Private Key**の欄にキーを貼り付ける

これで、devnetの[Phantom Wallet](https://www.alchemy.com/dapps/phantom)に5 SOLが反映されているはずです。

### **ステップ5. NFTを作成する**

Solana NFTの作成とミントには、メタデータ標準に準拠したMetaplex、Holaplex、[Solsea](https://www.alchemy.com/dapps/solsea)といったプラットフォームを使用できます。

まず、以下を行います。

1. ウォレットを設定し、SOLトークンが入っていることを確認する
1. [Holaplex](https://www.holaplex.com/)のウェブサイトにアクセスする
1. PhantomウォレットをMetaplexプラットフォームに接続する

Metaplexが資金の確認と取引の承認を求めてきます。これは承認して問題ありません。

<ImageBlock
  src="https://media.alchemy.com/1703607352-creating-an-nft-using-holaplex.png"
  alt="Holaplexの作成ページ：Solana NFTをミントするためのアートワークと詳細のアップロード"
  width={1430}
  height={1324}
  caption="Holaplexを使ったNFTの作成"
/>

続いて、以下を行います。

1. **create**タブをクリックする
1. **browse file**を選択する
1. 好きな画像をアップロードする
1. 画像に**Name**と**description**を追加する
1. 属性を設定する
1. **Next**をクリックする

好きなだけコピーを作成してミントできるように、NFTを**unlimited**に設定します。

mintをクリックして処理が成功すると、ウォレット内でNFTを確認できるはずです。

次に、メタデータを取得して安全なファイルに保存し、先ほど生成したpubkeyアドレスにPhantomウォレットからNFTを転送します。

これは以下を実行することで確認できます。

代わりに、より上級のSolana開発者は**Candy Machine**を使ってミントすることもできます。

### **ステップ6. ドロップタイプを選択する**

先に進む前に、gumdropプログラムが3つのドロップタイプをサポートしていることを理解しておく必要があります。

1. The Token Airdrop
1. NFT candy machine pre-sale
1. The Edition prints

また、配布方法とホワイトリストも定義する必要があります。

CLIの使い方をガイドするオプション一覧は、ここに記載されています。

ドロップタイプについては、**Token Airdrop**を使用します。

この方法により、CLIはトークンを生成された使い捨てのキーペアに移動できるようになり、追加のgumdropをより論理的に作成できるようになります。

配布方法については、SMS、Discord、Email、またはウォレットを使ってエアドロップできます。このチュートリアルでは、以下のコマンドを使ってウォレット経由でエアドロップしました。

完全なコマンドの実行に進む前に、whitelist.jsonファイルを作成する必要があります。このallowlistは、エアドロップの受信者を指定するのに役立ちます。

これは、mintやprintなど、請求すべき識別値とエディション数を持つ受信者のリストです。

whitelistは以下の形式になっています。

以下の情報に置き換えて、NFTエアドロップを受け取る友人の数に応じて入力してください。

その後、以下のコマンドで配布リストを参照できます。

最後に、以下のコマンドをすべて実行します。

### ステップ7. Solana NFTをエアドロップする

それでは、選んだアドレスにNFTをエアドロップしましょう。ファイルディレクトリ内の「log」フォルダを見つけ、すべてのファイルを確認し、以下に示すようなURLを含む.jsonファイルを探してください。このファイルには、エアドロップの受信者向けのURLが記載されたwhitelist.jsonファイルの内容が含まれています。このリンクをブラウザで開くことができます。

以下のようなものが表示されるはずです。

<ImageBlock
  src="https://media.alchemy.com/1703607513-gumdrop-nft-claim-interface.jpg"
  alt="Gumdrop NFTの請求インターフェース"
  width={1230}
  height={1412}
  caption="Gumdrop NFTの請求インターフェース"
/>

Gumdropは、受信者がエアドロップを簡単に請求できるインタラクティブなUIを提供します。このカスタムgumdropサイトはVercelにデプロイできます。

これで完了です！友人にNFTをエアドロップできるgumdropサイトを構築できました。

### **ステップ8：gumdropを閉じる**[**​**](https://docs.metaplex.com/guides/airdrops#closing-a-gumdrop)

gumdropが終了したら、gumdropを閉じることでマスターエディションを回収できます。gumdropを閉じると、受信者はgumdropを請求できなくなる可能性があります。

gumdropを閉じるコードスニペットは以下の通りです。

権限を引き出したり、トークンを返却したりするには、クレーム統合に関する追加情報を渡すことができます。

### **ステップ9：カスタムgumdropサイトをデプロイする**[**​**](https://github.com/metaplex-foundation/gumdrop)

Gumdropウェブサイトをデプロイすることもできます。特にフロントエンドフレームワークや静的サイトを構築する際に堅牢な開発者体験を提供することで知られる**Vercel**をお勧めします。

まず、[Vercel](https://vercel.com/)にアクセスして無料アカウントに登録し、GitHubを使うことで、より素早く連携できます。

<ImageBlock
  src="https://media.alchemy.com/1703607611-create-a-new-project-in-vercel.png"
  alt="Vercelダッシュボード：Gumdropエアドロップサイトをデプロイするための新しいプロジェクトの作成"
  width={1600}
  height={269}
  caption="Vercelで新しいプロジェクトを作成する"
/>

次に、以下を行います。

1. **new project**を選択し、Githubリポジトリからファイルをインポートする
1. プロジェクト名を入力し、ディレクトリを指定する
1. **Build and Output Settings**を切り替え、以下のように変更する

<ImageBlock
  src="https://media.alchemy.com/1703607729-github-vercel-import.png"
  alt="GitHubからファイルをインポートしてSolana NFTエアドロップ用のVercelウェブサイトを作成する"
  width={1476}
  height={1362}
  caption="GitHubからファイルをインポートしてSolana NFTエアドロップ用のVercelウェブサイトを作成する"
/>

次に、Output Directoryが**override**に設定されていることを確認し、**Deploy**をクリックして、プロジェクト用の一意のリンクを取得しましょう！

おめでとうございます！これでカスタムGumdropウェブサイトのデプロイが完了しました🎉

友人と共有したい場合は、リンクを共有するだけで構いません。allowlistの配布方法がウォレットに設定されているため、彼らのウォレットアドレスも取得しておく必要があります。
