在Solana生态中,SPL代币(基于Solana区块链的标准化代币)已成为项目方、创作者和社区的重要工具,无论是社区治理代币、NFT配套代币,还是实用型代币,SPL代币的铸造流程已逐渐成熟,本文将为你提供一份从零开始的Sol链发币详细教程,涵盖工具准备、代码编写、测试网验证到主网上线的全流程,助你轻松掌握SPL代币铸造。
发币前的准备工作:工具与环境搭建
在开始铸造SPL代币前,需先准备好以下核心工具与环境,确保后续流程顺畅:
钱包与账户创建
- Solana钱包:推荐使用Phantom钱包(浏览器插件/移动端)或Solflare钱包,两者均支持Solana生态的SPL代币创建与管理。
- 创建钱包:若未安装钱包,先下载并创建新钱包,妥善保存助记词(12/24单词),这是资产安全的唯一凭证,切勿泄露!
- 获取钱包地址:创建后,复制钱包的公钥(以“Base58”编码开头,如
11111111111111111111111111111112),后续用于接收代币和查看余额。
获取测试网SOL(用于测试)
为了避免在主网浪费真实SOL,建议先在Solana测试网(Testnet) 进行测试,测试网SOL可通过以下方式免费获取:
- 水龙头(Faucet):访问 Solana Faucet,输入钱包地址,完成验证后可领取一定量测试网SOL(注意:每日有领取限制)。
- 开发网(Devnet):若需更复杂的测试,也可使用Devnet,获取方式类似(部分开发工具会提供Devnet水龙头)。
开发环境安装
- Node.js:建议安装LTS版本(v16+),确保支持Solana Web3.js,下载地址:Node.js官网
- 代码编辑器:推荐VS Code,安装“Solana”插件(语法高亮、格式化支持)。
- Solana CLI(命令行工具):用于与Solana节点交互,安装命令:
sh -c "$(curl -sSf https://release.solana.com/stable/install)"
安装后重启终端,验证是否安装成功:
solana --version(显示版本号即成功)。
配置Solana CLI网络
根据测试环境,配置Solana CLI连接到对应网络(测试网/主网):
# 测试网配置 solana config set --url https://api.testnet.solana.com # 主网配置(正式发币时使用) solana config set --url https://api.mainnet-beta.solana.com
配置后,可通过 solana config get 查看当前网络设置。
选择发币方式:代码生成 vs 工具化平台
SPL代币的创建主要有两种方式:通过代码自定义生成(适合需要深度定制代币参数的项目方)和借助工具化平台(适合新手,无需编写代码),以下是两种方式的详细步骤:
通过代码自定义生成(推荐开发者)
创建项目目录并初始化
mkdir solana-token && cd solana-token npm init -y # 初始化package.json npm install @solana/web3.js @solana/spl-token # 安装Solana Web3.js和SPL代币库
编写代币创建脚本
在项目目录下创建 createToken.js 文件,编写以下代码:
const {
Connection,
PublicKey,
Keypair,
Transaction,
SystemProgram,
LAMPORTS_PER_SOL,
} = require("@solana/web3.js");
const {
getOrCreateAssociatedTokenAccount,
transfer,
TOKEN_PROGRAM_ID,
createMint,
mintTo,
getMint,
} = require("@solana/spl-token");
const bs58 = require("bs58"); // 用于Base58编码/解码
// 1. 连接Solana网络(测试网)
const connection = new Connection("https://api.testnet.solana.com", "confirmed");
// 2. 创建代币mint账户(由Keypair控制,即代币的“铸造权限”)
const mintKeypair = Keypair.generate();
console.log("代币Mint地址:", mintKeypair.publicKey.toBase58());
// 3. 创建者钱包(需持有测试网SOL,用于支付租金)
const creator = Keypair.generate(); // 实际使用时替换为你的钱包私钥
console.log("创建者钱包地址:", creator.publicKey.toBase58());
// 4. 空投测试网SOL到创建者钱包(若已有SOL可跳过)
(async () => {
try {
const airdropSignature = await connection.requestAirdrop(
creator.publicKey,
2 * LAMPORTS_PER_SOL // 空投2 SOL测试网币
);
await connection.confirmTransaction(airdropSignature);
console.log("空投测试网SOL成功!");
} catch (err) {
console.error("空投失败:", err);
}
})();
// 5. 创建代币(支付租金,当前测试网租金约0.00000909 SOL)
(async () => {
try {
const mint = await createMint(
connection,
creator, // 支付租金的账户
creator.publicKey, // 代币权限(可设置为null实现“无权限”,后续无法增发)
creator.publicKey, // 冻结权限(可设置为null实现“无冻结”)
9 // 代币精度(小数位数,9即支持0.000000001单位)
);
console.log("代币创建成功!Mint地址:", mint.toBase58());
console.log("代币名称(需手动设置): MyToken");
console.log("代币符号(需手动设置): MTN");
} catch (err) {
console.error("代币创建失败:", err);
}
})();
运行脚本并记录关键信息
在终端执行脚本:
node createToken.js
运行后,终端会输出:
- 代币Mint地址:后续代币铸造、转账的核心标识,需保存。
- 创建者钱包地址:即你的测试网钱包地址。
- 代币精度:代码中设置的
9,表示代币支持9位小数(如1代币=1,000,000,000个最小单位)。
铸造代币到指定钱包
若需向自己或他人的钱包铸造代币,可在脚本中添加以下代码(续接在createMint之后):
// 6. 获取接收代币的钱包地址(替换为你的测试网钱包地址)
const receiver = new PublicKey("替换为接收者钱包地址");
// 7. 创建关联代币账户(若不存在)
const receiverTokenAccount = await getOrCreateAssociatedTokenAccount(
connection,
creator,
mint,
receiver
);
// 8. 铸造代币(数量:1亿代币,精度9,则实际铸造1亿*10^9=1e17最小单位)
const mintAmount = 1e17;
await mintTo(
connection,
creator,
mint,
receiverTokenAccount.address,
creator,
mintAmount
);
console.log(`成功铸造 ${mintAmount / 1e9} 代币到 ${receiver.toBase58()}`);
运行后,可在Phantom钱包的“测试网”网络中查看代币(需手动添加代币,输入Mint地址)。
借助工具化平台(适合新手)
若不想编写代码,可使用第三方工具快速创建SPL代币,推荐以下平台:
- Token Creator(https://tokencreator.app/):支持在线输入代币名称、符号、精度等参数,一键生成代币Mint地址,并支持铸造到指定钱包。
- Solflare Token Manager(https://solflare.com/token):Solflare钱包官方工具,集成在钱包中,操作更安全。
操作步骤(以Token Creator为例):
- 访问Token Creator网站,连接你的Phantom钱包(切换到测试网)。
- 填写代币信息:
- Token Name:代币全称(如“My Token”)。
- Token Symbol:代币符号(如“MTN”)。
- Decimals:小数位数(默认9)。
- Initial Supply:初始供应量(如100