如何在 SVMBNB 上创建 SPL 代币
本指南演示如何在 SOON 上创建 Solana 程序库 (SPL) 代币。我们将使用 Metaplex Foundation 的 UMI 框架和 MPL 代币元数据程序来创建我们的代币。
介绍

在本指南中,您将了解如何在 SOON 的测试网络上创建自己的 SPL 令牌。
先决条件
开始之前,请确保您已:
Node.js(v14 或更高版本)
pnpm 包管理器
对 Solana 和 SPL 代币的基本了解
一个由测试网 SOON 代币资助的钱包
让我们通过分解代码来了解如何创建 SPL 令牌:
javascript
import { percentAmount, generateSigner, some, createSignerFromKeypair, signerIdentity,} from "@metaplex-foundation/umi";import { createFungible } from "@metaplex-foundation/mpl-token-metadata";import { createUmi } from "@metaplex-foundation/umi-bundle-defaults";import { Keypair, LAMPORTS_PER_SOL } from "@solana/web3.js";import { base58 } from "@metaplex-foundation/umi/serializers";// Initialize UMI with SOON testnetconst umi = createUmi("https://rpc.testnet.soo.network/rpc");// Payer secret key for signing transactionsconst payerSecretKey = new Uint8Array([]);// Create keypair and signerlet keypair = umi.eddsa.createKeypairFromSecretKey(payerSecretKey);const payer = Keypair.fromSecretKey(payerSecretKey);console.log("Payer Public Key:", payer.publicKey.toBase58());const balance = await umi.rpc.getBalance(keypair.publicKey);console.log( "Payer Balance:", (Number(balance.basisPoints) / LAMPORTS_PER_SOL).toFixed(2), "SOL");const myKeypairSigner = createSignerFromKeypair(umi, keypair);umi.use(signerIdentity(myKeypairSigner));// Create a mint signerconst mint = generateSigner(umi);// Main function to create a fungible tokenasync function main() { // Create the fungible token const txResponse = await createFungible(umi, { mint, name: "BONK", uri: "https://idylufmhksp63vptfnctn2qcjphffwwryc5cbw4wd2xnyiqzf3ga.arweave.net/QPC6FYdUn-3V8ytFNuoCS85S2tHAuiDblh6u3CIZLsw", sellerFeeBasisPoints: percentAmount(5.5), decimals: some(7), }).sendAndConfirm(umi); const txHash = base58.deserialize(txResponse.signature); console.log("newly created mint:", mint.publicKey); console.log("Transaction hash:", txHash);}main().catch(console.error);
1.UMI初始化:
javascript
const umi = createUmi("https://rpc.testnet.soo.network/rpc");
这将创建一个连接到 SOON 测试网络的新 UMI 实例。UMI 框架提供了一种与 SOON 区块链交互的便捷方式。
2.密钥对设置:
javascript
const payerSecretKey = new Uint8Array([...]); // Replace with your secret keylet keypair = umi.eddsa.createKeypairFromSecretKey(payerSecretKey);
这里我们用你的钱包的密钥创建一个密钥对,用于签署交易。该脚本还会检查并显示你的钱包余额。
代币创建:
这将使用以下参数创建实际的令牌:mint:新生成的令牌签名者name:你的代币名称uri:链接到你的代币的元数据(通常托管在 Arweave/IPFS 上)sellerFeeBasisPoints:特许权使用费百分比(本例中为 5.5%)decimals:令牌的小数位数(本例中为 7)
javascript
const txResponse = await createFungible(umi, { mint, name: "BONK", uri: "your-metadata-uri", sellerFeeBasisPoints: percentAmount(5.5), decimals: some(7),});
要创建你自己的代币:
- payerSecretKey在数组中设置你的钱包的密钥
- 修改函数中的token参数main():name:你的代币名称uri:链接到你的代币元数据sellerFeeBasisPoints:卖家费用百分比decimals:小数位数
运行脚本时,您将看到如下输出:
javascript
Payer Balance: 1.50 SOLPayer Public Key: 5KoJj9WzpKwYkrsKyKqkq5YvK4qNxPk8hZ4ZKs4qKx5hnewly created mint: 7n8SJg3m4FtPNrYxnmki9kmgZuVDyYr6DqqY8zcaErjTransaction hash: 2ZFj9EkvCyQvnc3Z3GXjqyEQNNtHxW9BRRYPvYhYd7C6WxkJe4YVhJUn3L8jx8
SOON 提供了不同的网络用于开发和测试:
要切换网络,只需更新 UMI 初始化 URL。