一、说明
solana链上代币部署完成后只是根据官方给定的 Token Program (TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA)clone一个执行相关功能模型的SPL20标准的Program。在Program部署完成后还需要提交代币的元数据信息包括代币名称,简称,描述,logo等信息到metadata Program并创建对应的Arweave(AR)链上的账号保留代币元数据信息,才能在solana浏览器和web3客户端钱包显示代币的详细,否则,在钱包中显示的是“未知代币”。
二、SPL代币部署及metadata交互流程
首先安装 Solana 命令行界面 (CLI)。如果您尚未安装 Solana,可以按照Solana 手册中的安装步骤进行操作。
设置 Solana CLI 后,请按照以下说明将元数据添加到您的令牌:
- 创建元数据文件
- 将元数据文件上传到 Web 服务器
- 使用元数据更新令牌
您可以生成一个 JSON 格式的元数据文件,其中包含有关您的令牌的信息。元数据文件应包含有关代币名称、符号、图像和其他特征的详细信息。元数据文件可以使用文本编辑器创建并使用 .json 扩展名保存。
这里元数据示例
{
"name": "My Token",
"symbol": "MT",
"uri": "https://example.com/token/1",
"seller_fee_basis_points": 500,
"fee_recipient": "YOUR_SOLANA_ADDRESS",
"seller_fee_collection_address": "YOUR_SOLANA_ADDRESS",
"image": "https://example.com/token/1/image",
"seller_fee_burn_address": null,
"properties": {
"files": [
{
"uri": "https://example.com/token/1/file",
"type": "text/plain"
}
],
"category": "digital",
"creators": [
{
"address": "YOUR_SOLANA_ADDRESS",
"share": 100
}
]
}
}
Solana 上的令牌元数据通常都是通过Metaplex 元数据标准处理的。适用于可替代代币(常规 SPL 代币)和不可替代代币(NFT)。
三、nodejs版本solana链上metadata Program交互程序完整版代码
import * as mpl from "@metaplex-foundation/mpl-token-metadata";
import * as web3 from "@solana/web3.js";
import * as anchor from '@project-serum/anchor';
export function loadWalletKey(keypairFile:string): web3.Keypair {
const fs = require("fs");
const loaded = web3.Keypair.fromSecretKey(
new Uint8Array(JSON.parse(fs.readFileSync(keypairFile).toString())),
);
return loaded;
}
async function main(){
console.log("AGXT TOKEN NAME AND LOGO")
const myKeypair = loadWalletKey("Your Keypiar");
console.log(myKeypair.publicKey.toBase58());
const mint = new web3.PublicKey("Your Token Address");
const seed1 = Buffer.from(anchor.utils.bytes.utf8.encode('metadata'));
const seed2 = Buffer.from(mpl.PROGRAM_ID.toBytes());
const seed3 = Buffer.from(mint.toBytes());
const [metadataPDA, _bump] = web3.PublicKey.findProgramAddressSync([seed1, seed2, seed3], mpl.PROGRAM_ID);
const accounts = {
metadata: metadataPDA,
mint,
mintAuthority: myKeypair.publicKey,
payer: myKeypair.publicKey,
updateAuthority: myKeypair.publicKey,
}
const dataV2 = {
name: " Your Token Name",
symbol: " Your Token Symbol",
uri: "Image Url upload",
// we don't need that
sellerFeeBasisPoints: 0,
creators: null,
collection: null,
uses: null
}
const args = {
createMetadataAccountArgsV2: {
data: dataV2,
isMutable: true
}
};
const ix = mpl.createCreateMetadataAccountV2Instruction(accounts, args);
const tx = new web3.Transaction();
tx.add(ix);
const connection = new web3.Connection("https://api.mainnet-beta.solana.com");
const txid = await web3.sendAndConfirmTransaction(connection, tx, [myKeypair]);
console.log(txid);
}
main()
四、nodejs版本metadata Program交互程序部署详细操作流程
创建 Solana Spl 元数据程序以更新令牌元数据凭证
所需的依赖项:
npm install --global typescript
npm install --save @solana/web3.js
npm i @project-serum/anchor
npm i @metaplex-foundation/mpl-token-metadata
要添加元数据,请更新 intial.js 文件中的数据。以下是三个重要部分:
- 您可以使用“solana config get”从 SOL cli 获取路径
const myKeypair = loadWalletKey("Your Keypair");
- 在此添加您的令牌地址,这等于 solana cli 中的 pubkey
const mint = new web3.PublicKey("Your Token Address");
- 为您的代币指定一个唯一的名称和符号。还要为您的令牌添加图像 url。
const dataV2 = {
name: " Your Token Name",
symbol: " Your Token Symbol",
uri: "Image Url upload",
}
如何运行:由于它是一个打字稿文件,因此要使用节点运行,您可以使用:
npm install -g ts-node
安装后,运行以下命令:
ts-node intial.ts
pdf+视频Solana链SOL发币教程及多模式组合合约源代码下载:
Solana链SOL发币(合约部署、开源、锁仓、LP、参数配置、开发、故障处理、工具使用)教程下载:
多模式(燃烧、回流指定营销地址、分红本币及任意币种,邀请推广八代收益,LP加池分红、交易分红、复利分红、NFT分红、自动筑池、动态手续费、定时开盘、回购)组合合约源代码下载:
pdf+视频Solana链SOL发币教程及多模式组合合约源代码下载地址:
添加VX或者telegram获取全程线上免费指导
评论前必须登录!
注册