Agenda
現象
SolanaチェーンのMetaplex Candy Machine V2で、config.json, 0.json, 0.pngを用意して、upload -> verify_upload -> mint_one_token と順に実行してNFTをアップしようとしたところ、mint時にエラーが発生。
#5 Metaplex NFT Candy Machine v2 instruction
> Program log: Instruction: MintNft
> Program log: AnchorError thrown in src/processor/mint.rs:478. Error Code: NotEnoughSOL. Error Number: 6008. Error Message: Not enough SOL to pay for this minting.
> Program Metaplex NFT Candy Machine v2 consumed 27515 of 1378503 compute units
> Program returned error: custom program error: 0x1778
原因
Mint時の費用とウォレット残高が足りていないため、支払いができない状況になっている。
この場合、いろいろなケースがある。
ウォレットに残高がない
- DevnetからMainnetに切り替えてから、残高補充していなかった
- 参照しているKeypairが誤っていた(たとばDevnet用のKeypairを参照したままだった、など)
Candy Machine V2の設定が意図したとおりになっていない
- Mint費用を誤って高額にしている
- Candy Machine V2のCLI実行時に、Keypair指定が誤っている
対応
ウォレットの残高を確認する
Keypairの場所を調べる
% solana config get
Config File: /Users/user/.config/solana/cli/config.yml
RPC URL: https://api.devnet.solana.com
WebSocket URL: wss://api.devnet.solana.com/ (computed)
Keypair Path: /Users/user/.config/solana/id.json
Commitment: confirmed
Keypairのアドレスを取得する
% solana-keygen pubkey /Users/user/.config/solana/id.json
HXtBm8XZbxaTt41uqaKhwUAa6Z1aPyvJdsZVENiWsetg
残高を確認する
% solana balance HXtBm8XZbxaTt41uqaKhwUAa6Z1aPyvJdsZVENiWsetg
97.979370704 SOL
ここまでで、意図したウォレットに残高がちゃんとあれば問題なし。
Candy Machine V2の設定が正しいか確認する
config.json の priceを確認する
{
"price": 0.0001,
"number": 1,
"gatekeeper": null,
"solTreasuryAccount": "ExsqGX4FBKwPwCjC4A86YJMEzVFCUkydvK5knskxehgp",
"splTokenAccount": null,
"splToken": null,
"goLiveDate": "12 Jan 2022 00:00:00 GMT",
"endSettings": null,
"whitelistMintSettings": null,
"hiddenSettings": null,
"storage": "arweave",
"ipfsInfuraProjectId": null,
"ipfsInfuraSecret": null,
"awsS3Bucket": null,
"noRetainAuthority": false,
"noMutable": false
}
CLIでKeypairとClusterが意図したとおりになっているか確認する
ts-node ../../metaplex-master/js/packages/cli/src/candy-machine-v2-cli.ts mint_one_token \
-e mainnet-beta \
-k ~/.config/solana/id.json \
-c upload_data
なお、自分の場合は、config.jsonのpriceを誤って高額に設定していたことが原因だった。