发行代币

我们可以使用命令行来发行一个代币,并给自己账号铸造一定数量的代币。

同时通过插件钱包或者命令行的方式,给其他人空投一定数量的代币。

我们可以使用下面命令,来查看 spl-token 命令的帮助文档:

solana config set --url https://api.devnet.solana.com

首先设置环境为开发环境。

1. 创建账号

solana-keygen new --force
Generating a new keypair

For added security, enter a BIP39 passphrase

NOTE! This passphrase improves security of the recovery seed phrase NOT the
keypair file itself, which is stored as insecure plain text

BIP39 Passphrase (empty for none):

Wrote new keypair to /Users/you/.config/solana/id.json
===========================================================================
pubkey: Czorr4y9oFvE3VdfCLVFuKDYxaNUG1iyQomR7kMZUuzi
===========================================================================
Save this seed phrase and your BIP39 passphrase to recover your new keypair:
tail ... despair
===========================================================================

2. 申请水龙头

solana airdrop 1
Requesting airdrop of 1 SOL

Signature: 3pDfybgjsP8oS4pX32f24SmTE4sTjPAsuJd43jqz6qAXu7vXBwaxmoAZQL3QquxXYxXChtiWuQWv79odj9XndG4A

1 SOL

在区块浏览器中查看交易: 3pDfybgjsP8oS4pX32f24SmTE4sTjPAsuJd43jqz6qAXu7vXBwaxmoAZQL3QquxXYxXChtiWuQWv79odj9XndG4A

3. 创建 Token

spl-token create-token
Creating token 7vtXvye2ECB1T5Se8E1KebNfmV7t4VkaULDjf2v1xpA9 under program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA

Address:  7vtXvye2ECB1T5Se8E1KebNfmV7t4VkaULDjf2v1xpA9
Decimals:  9

Signature: 5QRdzn59ig3j3qjEazteDR2zoCLUWoCWdbFc7iQTd68esfdV9je3fE2We3Ms7NUGfBt6kapCj7oBAr1kbiTskSmz

其中,Token 地址:7vtXvye2ECB1T5Se8E1KebNfmV7t4VkaULDjf2v1xpA9,它的精度: 9。

在区块浏览器中查看交易:5QRdzn59ig3j3qjEazteDR2zoCLUWoCWdbFc7iQTd68esfdV9je3fE2We3Ms7NUGfBt6kapCj7oBAr1kbiTskSmz

4. 创建 Token Account

spl-token create-account 7vtXvye2ECB1T5Se8E1KebNfmV7t4VkaULDjf2v1xpA9
Creating account EZhhUANUMKsRhRMArczio1kLc9axefTUAh5xofGX35AK

Signature: 59yBhJzC2HDkF61AhgaXcvVGiw5CjdnNpFyxvCzbqQrCjGCVKotNvCMaRQooJkxmu6ypJ9P7AZDiKxYex7pvBZKq

这里实际上调用了ATA合约,并创建了ATA账号:EZhhUANUMKsRhRMArczio1kLc9axefTUAh5xofGX35AK

在区块浏览器中查看交易:59yBhJzC2HDkF61AhgaXcvVGiw5CjdnNpFyxvCzbqQrCjGCVKotNvCMaRQooJkxmu6ypJ9P7AZDiKxYex7pvBZKq

5. 给自己账号铸造代币

spl-token mint 7vtXvye2ECB1T5Se8E1KebNfmV7t4VkaULDjf2v1xpA9 100 EZhhUANUMKsRhRMArczio1kLc9axefTUAh5xofGX35AK
Minting 100 tokens
  Token: 7vtXvye2ECB1T5Se8E1KebNfmV7t4VkaULDjf2v1xpA9
  Recipient: EZhhUANUMKsRhRMArczio1kLc9axefTUAh5xofGX35AK

Signature: 5eE21U9ukZLP7Uvck5mzBbKRcXjxEYZYxCTnJX6qoS9kdXzfhPuN8k2Ko6BBekBdP2mhLmPMHAWNJW6bqyo6mqQe

在区块浏览器中查看交易:5eE21U9ukZLP7Uvck5mzBbKRcXjxEYZYxCTnJX6qoS9kdXzfhPuN8k2Ko6BBekBdP2mhLmPMHAWNJW6bqyo6mqQe

查询自己账号的余额:

spl-token balance 7vtXvye2ECB1T5Se8E1KebNfmV7t4VkaULDjf2v1xpA9
100

6. 给别人账号转入代币

去浏览器找一个其它地址,比如: BBy1K96Y3bohNeiZTHuQyB53LcfZv6NWCSWqQp89TiVu,给它转入代币:

spl-token transfer --fund-recipient  7vtXvye2ECB1T5Se8E1KebNfmV7t4VkaULDjf2v1xpA9 1 BBy1K96Y3bohNeiZTHuQyB53LcfZv6NWCSWqQp89TiVu
Transfer 1 tokens
  Sender: EZhhUANUMKsRhRMArczio1kLc9axefTUAh5xofGX35AK
  Recipient: BBy1K96Y3bohNeiZTHuQyB53LcfZv6NWCSWqQp89TiVu
  Recipient associated token account: H1jfKknnnyfFGYPVRd4ZHwUbXLF4PbFSWSH6wMJq6EK9
  Funding recipient: H1jfKknnnyfFGYPVRd4ZHwUbXLF4PbFSWSH6wMJq6EK9

Signature: 5VqeT7ctVtGdcJDvTmLzL4Pbti8PzM3mSrRpdE8GNG4ghF3svSJMkTn4AfNRQDSeYqCotEQuzDY9KLgdSJbKEjXt

帮这个用户创建了 ATA 账号: H1jfKknnnyfFGYPVRd4ZHwUbXLF4PbFSWSH6wMJq6EK9

我们在区块浏览器中查看交易:5VqeT7ctVtGdcJDvTmLzL4Pbti8PzM3mSrRpdE8GNG4ghF3svSJMkTn4AfNRQDSeYqCotEQuzDY9KLgdSJbKEjXt

我们查询它的账户余额,结果为 1:

spl-token balance H1jfKknnnyfFGYPVRd4ZHwUbXLF4PbFSWSH6wMJq6EK9
1