SolanaNFTをキャンディマシン(candy machine v2)でデプロイ
SolanaNFTをキャンディマシン(candy machine v2)でデプロイ
SolanaのNFTの展開の仕方を探すと現状はCandy Machineでのデプロイばかりでv1,v2があって既にv1は終わっているというのに気づきます。であまり出てきていないv2での仕方を書きます。いろいろバグはまだまだ多いようですが。
準備、必須ツール
git
githubからソースをクローンしてくれるコマンドです。
node
Javaスクリプトランタイム。
ダウンロードはこちら
yarn
パッケージマネージャー。
インストールの仕方はこちら
ts-node
環境補助
実施
Youtube
バージョン確認
Git、node,インストールの確認,v10.4.0等表示されればインストールされている。
git version
node --version
yarn --version
npx ts-node --version
インストールと実施
gitによるリポジトリのコピー
下記コマンドで。
git clone https://github.com/metaplex-foundation/metaplex.git ./metaplex
yarnでインストール
yarn install --cwd ./metaplex/js/
コマンドでCandyMachineバージョン確認
npx ts-node ./metaplex/js/packages/cli/src/candy-machine-v2-cli.ts --version
outputは0.0.2
solana walletの準備
solanaの確認
solana --version
でバージョンが出てくれば問題なし、出てこなければ外部サイトInstall the Solana Toolはこちらインストールしてください。
solanaのウォレット
solana address
のコマンドでアドレスが出てくればいまから使用するSolanaのアドレスが設定されています、
されていなければセットしなければいけません。
新規Solanaアドレスを発行して、情報はxxx.jsonに設定します。ここではdevnet.jsonです。
solana-keygen new --outfile ~/.config/solana/devnet.json
Outputはこのようになります、これは例なので外に出さないようにキープしてください。
BIP39 Passphrase (empty for none):
Enter same passphrase again:
Wrote new keypair to ~/.config/solana/devnet2.json
=============================================================================
pubkey: GTXh7tHUJBuUbQXfmHaVVSidD9KfemBXUi34NyLhvLXz
=============================================================================
Save this seed phrase and your BIP39 passphrase to recover your new keypair:
auto giraffe beef devote decrease lady flash gauge broom person tomorrow dove
=============================================================================
アドレスを環境に設定します。
solana config set --keypair ~/.config/solana/devnet.json
output
Config File: C:\Users\Dell\.config\solana\cli\config.yml
RPC URL: https://metaplex.devnet.rpcpool.com/
WebSocket URL: wss://metaplex.devnet.rpcpool.com/ (computed)
Keypair Path: ~/.config/solana/devnet.json
Commitment: confirmed
dev環境に設定。
solana config set --url https://metaplex.devnet.rpcpool.com/
テスト環境なので下記コマンドでsolanaのエアドロップができました。現在はできないですがどうでしょうか。
solana airdrop 2
solana balance
リクエストの表示が出ますが完成していたら下記コマンドで増えていることが確認できます。
config.json
{
"price": 1.0,
"number": 10,
"gatekeeper": null,
"solTreasuryAccount": "<YOUR WALLET ADDRESS>",
"splTokenAccount": null,
"splToken": null,
"goLiveDate": "25 Dec 2021 00:00:00 GMT",
"endSettings": null,
"whitelistMintSettings": null,
"hiddenSettings": null,
"storage": "arweave-sol",
"ipfsInfuraProjectId": null,
"ipfsInfuraSecret": null,
"nftStorageKey": null,
"awsS3Bucket": null,
"noRetainAuthority": false,
"noMutable": false
}
“storage”は”arweave-sol”,”arweave”などその時のメッセージによるのかもしれない、”arweave”はもうすぐなくなると言っておきながら他のはうまく行かない。
pinataを使う場合(だがまだエラーは多いよう)storageは”nft-storage”、pinataJwtはPinataから取得する。
{
"price": 0.25,
"number": 10,
"gatekeeper": null,
"solTreasuryAccount": "3y8K8Vf2HA9GpCRfU4UgvQuSV9NRhA5HUiEKFSpby2CM",
"splTokenAccount": null,
"splToken": null,
"goLiveDate": "25 Dec 2021 00:00:00 GMT",
"endSettings": null,
"whitelistMintSettings": null,
"hiddenSettings": null,
"storage": "nft-storage",
"ipfsInfuraProjectId": null,
"ipfsInfuraSecret": null,
"pinataJwt": "xxxxxxxxxxxxxxxxxxxxxxxx",
"pinataGateway": null,
"awsS3Bucket": null,
"noRetainAuthority": false,
"noMutable": false
}
Assetsの準備
assetsフォルダをつくって1.png,1.json~から格納していく。数はconfig.jsonで設定したnumber
デプロイ
npx ts-node js/packages/cli/src/candy-machine-v2-cli.ts upload -e mainnet-beta -k ../~/.config/solana/devnet-tacos-main.json -cp config.json -c tp-shogun-kabuki-finall ./assets
-e は本番環境かテストか
-k はsolanaWalletの設定した場所。
-c はキャッシュ
でアップロードするassetsのパス。完了するとSucceseful=trueとなる。一部失敗等すると動画のようにSucceseful=falseとなるのでtrueとなるまで続けるようにとオフィシャルページの説明には書いてある。
そのあとVerifyだが現在の説明にはまた別途CandyMachineV2のSet Collection、signなどは行っているよう。また実施して追加したい。
でReady to Deployとなっている。
実際のMintingサイト
0.3Solなのでチャレンジしてみてください。
サイトへアクセスするとWEB3.0で承認
サイトへアクセスすると、もしくはConnect Walletをクリックするとウォレットに承認を得ようとするのでウォレットに承認ログインする。
Solanaのウォレット選択
承認段階でウォレットの選択が出る場合もある。
WEB3.0で承認後
ウォレットを使ってConnect承認後Mintできるようになる。
実際のMint後
実際のMint後にはPhantomウォレットであれば最下列の左から二番目をクリックするとNFT軍が見れる。Twitter以外(Collection名が)はダイレクトメッセージで送られてきたのでクリックしていない。