玩转Web3Solana:从零到代币开发Web3浪潮席卷而来,Solana凭借超高性能和低成本,成为开发者探索去中心化世界的热门选择。想从零开始玩转Solana,打造属于自己的代币项目吗?这篇文章将带你一步步走进Solana开发的世界,从工具安装到代币创建,手把手带你体验Web3
Web3 浪潮席卷而来,Solana 凭借超高性能和低成本,成为开发者探索去中心化世界的热门选择。想从零开始玩转 Solana,打造属于自己的代币项目吗?这篇文章将带你一步步走进 Solana 开发的世界,从工具安装到代币创建,手把手带你体验 Web3 的魅力。不管你是小白还是老手,这里都有你需要的干货,快来一起解锁 Solana 的无限可能吧!
本文带你玩转 Web3 Solana 开发,从零基础起步,覆盖 Solana CLI 工具安装、Rust 和 Anchor 环境配置,到钱包管理、智能合约编译,再到 SPL 代币的创建与操作。通过详细的命令示例和链上结果展示,你将快速掌握代币开发的实战技能。无论是查询余额、生成密钥,还是在测试网空投 SOL,这篇指南都为你准备了清晰的操作路径,助你在 Solana 生态中轻松起飞!
agave-install update
✨ Update successful to stable commit f07a1e8
solana --version
solana-cli 2.1.17 (src:f07a1e80; feat:3271415109, client:Agave)
solana -V
solana-cli 2.1.17 (src:f07a1e80; feat:3271415109, client:Agave)
cargo build-sbf -V
solana-cargo-build-sbf 2.1.17
platform-tools v1.43
rustc 1.79.0
rustc -V
rustc 1.85.1 (4eb161250 2025-03-15)
anchor --version
anchor-cli 0.31.0
anchor -V
anchor-cli 0.31.0
solana address
6SWBzQWZndeaCKg3AzbY3zkvapCu9bHFZv12iiRoGvCD
buy-restrictor/client on master [?] is 📦 1.0.0 via ⬢ v22.1.0 via 🦀 1.85.1 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ solana address
6SWBzQWZndeaCKg3AzbY3zkvapCu9bHFZv12iiRoGvCD
ll ~/.config/solana/id.json
-rw------- 1 qiaopengjun staff 226B Feb 20 2024 /Users/qiaopengjun/.config/solana/id.json
solana balance
100.18518034 SOL
solana config get
是 Solana CLI 中的一个命令,用于查看当前 Solana 配置的详细信息,包括默认的 RPC 节点、钱包路径和网络设置。
solana config get
Config File: /Users/qiaopengjun/.config/solana/cli/config.yml
RPC URL: https://api.devnet.solana.com
WebSocket URL: wss://api.devnet.solana.com/ (computed)
Keypair Path: /Users/qiaopengjun/.config/solana/id.json
Commitment: confirmed
buy-restrictor on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ solana address -k target/deploy/buy_restrictor-keypair.json
6ySTWR3Yf278usLzZRPXswdBcHrfyY6seb24Etxwph4f
buy-restrictor on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ cat target/deploy/buy_restrictor-keypair.json
[155,71,21,122,135,204,91,244,135,51,144,142,136,90,129,188,150,237,4,203,65,17,8,6,207,110,23,76,79,62,57,184,88,191,190,137,101,105,152,191,142,81,72,155,71,134,244,193,182,104,228,166,172,180,153,50,49,7,194,50,74,141,54,204]%
buy-restrictor on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ anchor keys list
buy_restrictor: 6ySTWR3Yf278usLzZRPXswdBcHrfyY6seb24Etxwph4f
buy-restrictor/target/deploy on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ anchor keys list
buy_restrictor: H1tuY9Lwu2hkz8Bap6gbNAoj9GvQ23s9KgowiTWvYmtM
buy-restrictor/target/deploy on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ solana-keygen new -o new.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 new.json
===============================================================================
pubkey: H1tuY9Lwu2hkz8Bap6gbNAoj9GvQ23s9KgowiTWvYmtM
===============================================================================
Save this seed phrase and your BIP39 passphrase to recover your new keypair:
usual daughter question found arch absent term spawn runway sphere spin despair
===============================================================================
buy-restrictor/target/deploy on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base took 9.1s
➜ ls
buy_restrictor-keypair.json buy_restrictor.so new.json
buy-restrictor/target/deploy on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ mv new.json buy_restrictor-keypair.json
buy-restrictor/target/deploy on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ ls
buy_restrictor-keypair.json buy_restrictor.so
.json
)对应的 Solana 公钥地址buy-restrictor/target/deploy on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ solana address -k buy_restrictor-keypair.json
H1tuY9Lwu2hkz8Bap6gbNAoj9GvQ23s9KgowiTWvYmtM
buy-restrictor on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ anchor keys sync
Found incorrect program id declaration in "/Users/qiaopengjun/Code/solana-code/2025/buy-restrictor/programs/buy-restrictor/src/lib.rs"
Updated to H1tuY9Lwu2hkz8Bap6gbNAoj9GvQ23s9KgowiTWvYmtM
Found incorrect program id declaration in Anchor.toml for the program `buy_restrictor`
Updated to H1tuY9Lwu2hkz8Bap6gbNAoj9GvQ23s9KgowiTWvYmtM
All program id declarations are synced.
Please rebuild the program to update the generated artifacts.
buy-restrictor on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base took 14.9s
➜ anchor build
Finished `release` profile [optimized] target(s) in 0.39s
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.46s
Running unittests src/lib.rs (/Users/qiaopengjun/Code/solana-code/2025/buy-restrictor/target/debug/deps/buy_restrictor-6b544dadb31b7c3c)
ll target/deploy
# 等效于:
ls -l target/deploy
buy-restrictor on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ ll target/deploy
total 464
-rw------- 1 qiaopengjun staff 233B Mar 26 20:33 buy_restrictor-keypair.json
-rwxr-xr-x 1 qiaopengjun staff 225K Mar 26 22:25 buy_restrictor.so
buy_restrictor.so
文件的类型和格式。file target/deploy/buy_restrictor.so
是 Linux/Unix 系统命令,用于检测 buy_restrictor.so
文件的类型和格式。对于 Solana 智能合约编译后的 .so
文件,输出结果会揭示其底层二进制结构。
buy-restrictor on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 via 🅒 base
➜ file target/deploy/buy_restrictor.so
target/deploy/buy_restrictor.so: ELF 64-bit LSB shared object, eBPF, version 1 (SYSV), dynamically linked, stripped
spl-token create-token
是 Solana 的 SPL Token 命令行工具中的命令,用于在 Solana 区块链上创建新的 SPL 代币(同质化代币,如 USDC 这类可互换代币)。
buy-restrictor/client on master [?] is 📦 1.0.0 via ⬢ v22.1.0 via 🦀 1.85.1 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ spl-token create-token
Creating token Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe under program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Address: Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe
Decimals: 9
Signature: tgV38oEFfEyoupbxXTHsjbp7wjivuYCJaEexN8eE84Cf1ss2QStvYfitNwnYHFUgWVENpiyAyfDJuUbK4mNXEDy
https://solscan.io/token/Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe?cluster=devnet
术语 | 说明 |
---|---|
代币 Mint 地址 | 代币的唯一标识(由 spl-token create-token 创建) |
关联代币账户 (ATA) | 每个钱包对每个代币有唯一的存储账户,格式为派生地址 |
原生账户 | 必须存在才能接收/持有对应代币 |
solana-code/2025/client is 📦 1.0.0 via ⬢ v22.1.0 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ spl-token create-account Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe
Creating account 8yno4sSTn1Reh3uRdNiEWmRJ17zZ7Y4W1Ace1bJarYr1
Signature: 3Y1pMZUybRk59fXGKrxhDJmGhK2PFPGnXcxBuUyV5wYfZRcC9BfWcrTpPYwVjRBSDTFeNNxUhstzpuUAQThrV88A
ATA 地址 = 钱包地址 + 代币 Mint 地址 + 固定种子("associated-token-account")
钱包地址
→ 关联 → ATA 地址
→ 绑定 → Token Mint 地址
。
solana-code/2025/client is 📦 1.0.0 via ⬢ v22.1.0 on 🐳 v27.5.1 (orbstack) via 🅒 base took 3.2s
➜ spl-token mint Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe 100 8yno4sSTn1Reh3uRdNiEWmRJ17zZ7Y4W1Ace1bJarYr1
Minting 100 tokens
Token: Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe
Recipient: 8yno4sSTn1Reh3uRdNiEWmRJ17zZ7Y4W1Ace1bJarYr1
Signature: 34r7ne14yr8H6FJtUkRkS9dEbifJcMPcHUScRTqFBa8xeJCpx8VYgua1nXbxjv1dbUkjGzdEhVjZXjALgzvupS5V
secure_token_sale on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ spl-token mint Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe 100 7zzrX4Wn3ovnyMmZ8tXutHrJobvTTWkUutfAb7mPBFiq
Minting 100 tokens
Token: Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe
Recipient: 7zzrX4Wn3ovnyMmZ8tXutHrJobvTTWkUutfAb7mPBFiq
Signature: 4oBteNo6DNHRdPB1tWyjhiuLDDnZHUw3vyxGPZZocZ1Minbz6V3tmKJoXyRz379Tr1JH58voouBGG6FvLvpAqb5d
solana-code/2025/client is 📦 1.0.0 via ⬢ v22.1.0 on 🐳 v27.5.1 (orbstack) via 🅒 base took 3.4s
➜ spl-token accounts
Token Balance
-----------------------------------------------------
SNumWwVm1XCYZhupdHGYhG3MSfXTq1PJLm24nZVqTLk 1
3jT7QdVfPh3isZA9Qfu6hcPRd1ATTkSbzaTs1qf3bxPG 1
4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU 20
8BQHSWLd2vNJbiqd2DciWgrsyfG8AiL3T1Fc1hreXMsq 1
E7eHC3g4QsFXuaBe3X2wVr54yEvHK8K8fq6qrgB64djx 88
Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe 100
Fmt6FhmA9QQxkhgDBZJvSgZNH44VaQL9uecr9B7Zwufj 1
solana-code/2025/client is 📦 1.0.0 via ⬢ v22.1.0 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ spl-token supply Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe
100
spl-token balance <代币Mint地址>
# 示例:
spl-token balance Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe
solana-code/2025/client is 📦 1.0.0 via ⬢ v22.1.0 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ spl-token balance Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe
100
solana-code/2025/client is 📦 1.0.0 via ⬢ v22.1.0 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ spl-token account-info Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe
SPL Token Account
Address: 8yno4sSTn1Reh3uRdNiEWmRJ17zZ7Y4W1Ace1bJarYr1
Program: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
Balance: 100
Decimals: 9
Mint: Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe
Owner: 6SWBzQWZndeaCKg3AzbY3zkvapCu9bHFZv12iiRoGvCD
State: Initialized
Delegation: (not set)
Close authority: (not set)
➜ spl-token create-token --decimals 0
➜ spl-token create-token --enable-freeze
buy-restrictor on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ solana-keygen new --no-bip39-passphrase --outfile token_pool_keypair.json
Generating a new keypair
Wrote new keypair to token_pool_keypair.json
===============================================================================
pubkey: 8gi14E6ZJmth6mhauwmPHDTT8LeAZgMsYAwryjgUU9y9
===============================================================================
Save this seed phrase to recover your new keypair:
clarify slice lucky trouble coil believe caution debate wall pass north abandon
===============================================================================
参数 | 作用 | 使用场景 |
---|---|---|
--no-bip39-passphrase |
禁用助记词生成 | 自动化部署 |
--outfile |
指定密钥保存路径 | 自定义密钥目录 |
--force (可选) |
覆盖已存在文件 | 密钥轮换时使用 |
buy-restrictor on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ solana airdrop 0.01 8gi14E6ZJmth6mhauwmPHDTT8LeAZgMsYAwryjgUU9y9 --url devnet
Requesting airdrop of 0.01 SOL
Signature: 2DbiptsJVSy37y3DmTnqxfC84Am2LZ1ES6Mdc9uKLUW7TZeJvnFkuPST92Bpav8qmjavz9wq2s5S14ru2WsiycSa
0.01 SOL
buy-restrictor on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 on 🐳 v27.5.1 (orbstack) via 🅒 base took 11.3s
➜ solana airdrop 1 8gi14E6ZJmth6mhauwmPHDTT8LeAZgMsYAwryjgUU9y9 --url devnet
Requesting airdrop of 1 SOL
Signature: 514cVcKnxiQo6tA57kgLxFG4iJ93dRgt8V3HFKn16Ydi2yeaMA3Ax5FLNv5Gxc86vm83reMRdg4oZKU99Po36p6a
1.01 SOL
secure_token_sale on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ spl-token create-account Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe --owner H6Su7YsGK5mMASrZvJ51nt7oBzD88V8FKSBPNnRG1u3k --url devnet --fee-payer ~/.config/solana/id.json
Creating account 8QPaQ6AiLqyNuCL69PCQoUbfDNE7r9agiNnvdXzhmMRJ
Signature: 59nvJc67zJRXKz6w6WyzqrdsKbaJhgXz1oRTLhxvMNkMgCNPCr4QE5q814BKsey2PgqTxgEBY4GW1W49D5AaxonQ
secure_token_sale on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 on 🐳 v27.5.1 (orbstack) via 🅒 base
➜ spl-token create-account Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe --owner CwuRGwa3wQbzSVJdKVjLs3Ygf54BXuNqtm45Pw1ajjN2 --url devnet --fee-payer ~/.config/solana/id.json
Creating account 7zzrX4Wn3ovnyMmZ8tXutHrJobvTTWkUutfAb7mPBFiq
Signature: K4PR1fKtCshoNZBpx69X7YRqYc2KJnwSUbyBQYdTWsM2x4oGLTznZ4YNLwSi9B1hrFVs1bs6i7RT7SF5kHpz2nY
参数 | 作用 | 备注 |
---|---|---|
Fgxp6...4GEe |
代币的Mint地址 | 要创建关联账户的代币 |
--owner |
指定账户所有者 | 目标钱包地址 |
--url devnet |
在Devnet网络操作 | 也可用完整RPC URL |
--fee-payer |
支付交易费的密钥 | 默认使用config设置 |
secure_token_sale on master [?] via ⬢ v22.1.0 via 🦀 1.85.1 on 🐳 v27.5.1 (orbstack) via 🅒 base took 2.0s
➜ spl-token balance Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe --owner CwuRGwa3wQbzSVJdKVjLs3Ygf54BXuNqtm45Pw1ajjN2
101
spl-token --program-id TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb create-token --enable-close
Creating token Eoy68rekZ22g3kucXXPLoPJgaoqv5B2KJN7AJCWNYpCJ under program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
Address: Eoy68rekZ22g3kucXXPLoPJgaoqv5B2KJN7AJCWNYpCJ
Decimals: 9
Signature: 4RKTy9BAyXh4PGgxttziZveAZFH3zxBCUYQvLxgW3nmsmcxx1PQC9NnJ4qB6ktxfhHVdFTQpp4EsxFe84ujy6hnh
Note: The supply on the mint must be 0.
spl-token close-mint Eoy68rekZ22g3kucXXPLoPJgaoqv5B2KJN7AJCWNYpCJ
Signature: 3i36vhAAq2sjPfVYzo3xtYdt5naFYCuKe6TsDzwqJSj1AD4WqAyotYKrPVM851J2hKwraCMjBL2fCoyDeCiVzNCM
https://solscan.io/token/2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo#extensions
通过这篇实战指南,我们从零开始玩转了 Web3 Solana 开发的全流程:从工具链配置到密钥生成,再到智能合约部署和代币创建,每一步都清晰可见。Solana 的高性能和灵活的代币功能为 Web3 创新提供了广阔舞台,而掌握这些技能,你就能在去中心化世界中大展身手。文章不仅提供了操作细节,还附上链上链接和参考资源,随时助你进阶。接下来,不妨试试更复杂的 Solana 项目,开启你的 Web3 冒险吧!
https://solscan.io/token/Eoy68rekZ22g3kucXXPLoPJgaoqv5B2KJN7AJCWNYpCJ?cluster=devnet#extensions
https://github.com/solana-program/token-2022/blob/main/README.md
https://github.com/solana-developers/program-examples/tree/main/tokens/token-2022
https://github.com/solana-developers/program-examples/tree/main/tokens/token-2022
https://github.com/Ellipsis-Labs/solana-verifiable-build?tab=readme-ov-file
https://solscan.io/token/Fgxp6CWJnUfmt66vaHzjNf4SFPoG23PmFEb1MXcr4GEe?cluster=devnet
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!