索拉纳(Solana)命令行(CLI)钱包及基本操作
# solana# 索拉纳publishDate · 2021-09-03 / lastEditedTime · 2022-04-06 04:48:00
在Solana CLI中,钱包主要分为以下三类
-
Paper Wallet(纸钱包)
-
File System Wallet(文件系统钱包、FS钱包)
-
Hardware Wallets(硬件钱包)
生成的钱包公钥其实就是钱包地址,官方文档请参考Command Line Wallets。
File System Wallet
把未加密的密钥对
存放在一个JSON文件里面,Solana每次操作时需要指定文件路径,因为是一个文件,所以安全性相对会比较差
- 创建文件钱包
$ solana-keygen new --outfile ~/my-solana-fs-wallet-keypair.json 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 /root/my-solana-fs-wallet-keypair.json ========================================================================== pubkey: 8vxsHAq9rCdy4bpH1wKNrNVy6qHismAdFbFv9dAXncXn ========================================================================== Save this seed phrase and your BIP39 passphrase to recover your new keypair: nut angry advance laptop hybrid zero equip accident skin clock canoe evoke ==========================================================================
请不要此文件分享于互联网,如果有人拿到你的钱包文件,会把你的币都转走的,记得保存好助记词。
- 查看钱包公钥
$ solana-keygen pubkey ~/my-solana-fs-wallet-keypair.json 8vxsHAq9rCdy4bpH1wKNrNVy6qHismAdFbFv9dAXncXn
- 验证fs钱包文件对应的公钥是否正确
$ solana-keygen verify 8vxsHAq9rCdy4bpH1wKNrNVy6qHismAdFbFv9dAXncXn ~/my-solana-fs-wallet-keypair.json Verification for public key: 8vxsHAq9rCdy4bpH1wKNrNVy6qHismAdFbFv9dAXncXn: Success
如果验证成功则返回Success
,否则返回Failed
- 从助记词中恢复钱包
先备份钱包文件
mv my-solana-fs-wallet-keypair.json my-solana-fs-wallet-keypair.json.orig
加入钱包文件丢失,我们可以通过助记词进行恢复
$ solana-keygen recover --outfile ~/my-solana-fs-wallet-keypair.json [recover] seed phrase: # 输入助记词 [recover] If this seed phrase has an associated passphrase, enter it now. Otherwise, press ENTER to continue: Recovered pubkey `8vxsHAq9rCdy4bpH1wKNrNVy6qHismAdFbFv9dAXncXn`. Continue? (y/n): y Wrote recovered keypair to /root/my-solana-fs-wallet-keypair.json
恢复完成之后我们对比一下和之前备份的钱包文件是否一致
diff ~/my-solana-fs-wallet-keypair.json ~/my-solana-fs-wallet-keypair.json.orig
Paper Wallet
- 创建钱包
纸钱包不会生成文件,每次创建会把所有信息输出到屏幕中,我们需要保存输出的内容
$ solana-keygen new --no-outfile 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): =========================================================================== pubkey: 4wr536h23WLB8WhXyZ2vV4RazNRmoRnhhb8zgKJD9Nqq =========================================================================== Save this seed phrase and your BIP39 passphrase to recover your new keypair: column melt drift tone age fall coral sponsor derive chef marriage language ===========================================================================
- 通过助记词查看公钥
$ solana-keygen pubkey ASK [pubkey recovery] seed phrase: # 输入助记词 [pubkey recovery] If this seed phrase has an associated passphrase, enter it now. Otherwise, press ENTER to continue: 4wr536h23WLB8WhXyZ2vV4RazNRmoRnhhb8zgKJD9Nqq
- 验证密钥对
solana-keygen verify 4wr536h23WLB8WhXyZ2vV4RazNRmoRnhhb8zgKJD9Nqq ASK
基本操作
我这里用测试网,方便领取空投
- 获取空投
空投每次最多领取10个SOL
solana airdrop 10 <RECIPIENT_ACCOUNT_ADDRESS> --url <https://api.devnet.solana.com>
fs钱包
$ solana airdrop 10 -k ~/my-solana-fs-wallet-keypair.json --url <https://api.devnet.solana.com> Requesting airdrop of 10 SOL Signature: 26gSkMLHBDmBEdDiMBMrEjcbF7RdJpgKU56xDA4MTEV6Nh86wTE7gM5c6nfjt6rNrBmTwvYavzUefbQwJLb7GFg3 10 SOL
纸钱包
$ solana airdrop 10 4wr536h23WLB8WhXyZ2vV4RazNRmoRnhhb8zgKJD9Nqq --url <https://api.devnet.solana.com> Requesting airdrop of 10 SOL Signature: 3hf3Eeosfko8gyXi45iHBh2Sm8ywpmXDMNqPN5RYp6RoSxr69Fy1CVzDgENFbuE3P7G3gbt6MBB9xa24VxZRUK5T 10 SOL
- 查看账户余额
语法
solana balance <ACCOUNT_ADDRESS> --url <https://api.devnet.solana.com>
查看纸钱包余额
$ solana balance 4wr536h23WLB8WhXyZ2vV4RazNRmoRnhhb8zgKJD9Nqq --url <https://api.devnet.solana.com> 10 SOL
查看fs钱包余额
$ solana balance -k ~/my-solana-fs-wallet-keypair.json --url <https://api.devnet.solana.com> 10 SOL
- 转账
语法
solana transfer --from <KEYPAIR> <RECIPIENT_ACCOUNT_ADDRESS> 5 --url <https://api.devnet.solana.com> --fee-payer <KEYPAIR>
我们从FS钱包转账5个SOL到纸钱包
$ solana transfer --from ~/my-solana-fs-wallet-keypair.json 4wr536h23WLB8WhXyZ2vV4RazNRmoRnhhb8zgKJD9Nqq 5 --url <https://api.devnet.solana.com> --fee-payer ~/my-solana-fs-wallet-keypair.json Signature: 23wT9zrruUHBfun7wMvvonEi14GRd15ZdojcecEuKQfn4PVqAYHnwELgjRkFxtGXarorbhAWfay9zeXK1tEGx7Wt
再次查看两个钱包的余额
$ solana balance -k ~/my-solana-fs-wallet-keypair.json --url <https://api.devnet.solana.com> 4.999995 SOL $ solana balance 4wr536h23WLB8WhXyZ2vV4RazNRmoRnhhb8zgKJD9Nqq --url <https://api.devnet.solana.com> 15 SOL