更新 Anchor.toml
的 file 使其符合 devnet 設置
[provider]
cluster = "devnet"
wallet = "~/.config/solana/{your_key}.json"
下載 @solana/spl-token
pnpm add @solana/spl-token
更新 Cargo.toml
dependencies and features
[features]
idl-build = ["anchor-lang/idl-build", "anchor-spl/idl-build"]
[dependencies]
anchor-lang = { version = "0.30.1", features = ["init-if-needed"] }
anchor-spl = {version = "0.30.1", features = ["metadata"]}
mpl-token-metadata = "4.1.2"
在 lib.rs
上,新增創建 NFT 的操作
加上合約測試(tests/action-example.ts)即可完成合約的撰寫部分
最後,我們來測試看看合約
假如錢包沒有錢,可以使用 solane config get 查看當前設定,然後運用 solana config set --url { Keypairs 位置 } 設定想要拿到 faucet 的帳號,最後使用 solana airdrop {數量} ,即可獲得 sol。
anchor test
若出現下方結果,那麼恭喜你,成功 Mint 一個 NFT 了!!你也可以進一步點擊連結在explorer 上查看。
Pinata 是一個免費的集成服務,使得在 IPFS 上存儲和檢索媒體變得簡單。如果你還們有帳戶可以點擊上方連結註冊。
CID
json file
依照底下格式填入值{
"name": {your name},
"symbol": {your symbol},
"description": {your description},
"external_url": {your url},
"seller_fee_basis_points": 0,
"image": "https://gateway.pinata.cloud/ipfs/{your CID}",
"attributes": [
{
"trait_type": {any type you want},
"value": {any value you want}
}
],
"properties": {
"files": [
{
"uri": "https://gateway.pinata.cloud/ipfs/{your CID}",
"type": "image/png"
}
],
"category": "image"
}
}
https://gateway.pinata.cloud/ipfs/{CID} ex.https://gateway.pinata.cloud/ipfs/QmWqzpzBGQyEi3CN4EcDDxKY7cU2Y2SXcuKESkfomG1KBy