0%

solana make nft

SPL是solana的代币协议,可以利用solana提供的 spl-token 在cli中创建代币。

创建不可替代币NFT

创建一个代币标识符

1
2
3
$ spl-token create-token --decimals 0
Creating token HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn
Signature: 5cupXrNeMwwQukm2bMmAvX974wDxArt59fyLzMJiBKoRjECUbp5c7pUkVjTD2wDHcxGbANpZWSzCE5EpG4MXmfUL

使用唯一的代币标识符,来创建一个帐户,用来存储我们的余额数据

1
2
3
$ spl-token create-account HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn
Creating account Dp9E1qHyJqbyB7e6DkFXg2EGBZ7aXigiPLJyeFVqeRFM
Signature: 4X4zpiRm86PferJbJwZMHTigxxoJqrkJzbowBoA2uBYrqeVzf89n9R2tqRPzehzwKq9DMaXw4P9fnY99EWogGaU1

现在已经有了代币标识符 HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn
以及存储该代币余额数据的账号 Dp9E1qHyJqbyB7e6DkFXg2EGBZ7aXigiPLJyeFVqeRFM

接下来,铸造一些 SPL 代币到存储该余额数据的账号

1
2
3
4
5
$ spl-token mint HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn 1 Dp9E1qHyJqbyB7e6DkFXg2EGBZ7aXigiPLJyeFVqeRFM
Minting 1 tokens
Token: HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn
Recipient: Dp9E1qHyJqbyB7e6DkFXg2EGBZ7aXigiPLJyeFVqeRFM
Signature: G2bSFEfh6Zaf3WYJEMRmpxNcDKiGp8fcDZ2z1X9bS2rVceAV7XBUJSGH94UskX45YCUKDSRpGhzBekYfiDLGDza

禁用未来的铸币

1
2
3
4
5
6
$ spl-token authorize HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn mint --disable
Updating HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn
Current mint authority: GWDPdY44nxampYUBMmbcPNi1Gt4G2FGNpMwvyt24V5dU
New mint authority: disabled

Signature: 3jFuWQ2ohh7r64rHBz6uBXtcTDsAbyrLcjnADpAukRQuqPmEhzgYni3RVwZD4hUxLTnn39FLfrZCsvSCgzLuifFw

这样已铸造的SPL代币就变成了唯一的,就是NFT代币。

查看SPL代币供应数量
spl-token supply HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn

查看SPL代币可用数量
spl-token balance HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn

查看我所有的TOKEN

1
2
3
4
5
6
7
$ spl-token accounts

Token Balance
---------------------------------------------------------------
3T2MdaZHbVNXTFei92p6qJPMJeDQ2JbTco88tvJqK78h 1
AVUdgQr2TwkhPDbV2pJnJco7jVi2kCGR4W3gxvrAbQ74 2
HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn 3

把NFT发送到我的钱包

我的钱包地址是 ESVZPUaonZZ6RUt8Yfo5zn3S1cz57V2aTTa455Rc5Kwq

比如把 HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn 这个NFT发送到我的钱包

1
2
3
4
5
6
7
8
9
10
11
$ spl-token transfer HgGNpW84e2UTyBE7JtT2GHWAiCSigzD6bTDWCZj9KmDn 1 ESVZPUaonZZ6RUt8Yfo5zn3S1cz57V2aTTa455Rc5Kwq --fund-recipient

spl-token transfer <token-identifier> <token-amount> <wallet-address> --fund-recipient

Transfer 1 tokens
Sender: Dp9E1qHyJqbyB7e6DkFXg2EGBZ7aXigiPLJyeFVqeRFM
Recipient: ESVZPUaonZZ6RUt8Yfo5zn3S1cz57V2aTTa455Rc5Kwq
Recipient associated token account: Dx4bLJ92imQUBaWoKbExUqrNkhEiUA1djo23d29duz5A
Funding recipient: Dx4bLJ92imQUBaWoKbExUqrNkhEiUA1djo23d29duz5A (0.00203928 SOL)

Signature: 4AX38yvjapcQkAiRbsof9zkhEaGMfusHktnRn8o32Z3ZpptxNiqJ8rStpom5Yh4vYZAaDjX43uQ8oqruzXqhtFMD

然后打开浏览器的钱包,在收藏品里面就可以看到该NFT了。

但是没有图片、名称、描述等摘要。

solana常用命令

solana cli是与 Solana 网络交互的工具,安装见https://docs.solana.com/cli/install-solana-cli-tools

1
2
3
4
5
6
7
8
9
10
11
12
13
14
检查 Solana 集群配置
solana config get

检查 SOL 余额
solana balance

获得一些测试网 SOL
solana airdrop 1

获取钱包地址
solana address

设置环境
solana config set --url https://api.devnet.solana.com

anchor常用命令

1
2
3
4
5
6
7
8
创建项目
anchor init solana-test

编译
anchor build

部署
anchor deploy

参考

https://moralis.io/how-to-create-a-solana-token-in-5-steps/
https://github.com/YosephKS/solana-spl-tutorial
https://www.youtube.com/watch?v=IsTFNOedPkk