快速入门

更新代币元数据

Last updated November 28, 2025

更新同质化代币的元数据以更改名称、符号、图像或其他属性。

更新代币元数据

在以下部分,您可以看到完整的代码示例以及需要更改的参数。这将使用Token Metadata程序更新链上元数据。

1// npm install @metaplex-foundation/mpl-token-metadata @metaplex-foundation/umi @metaplex-foundation/umi-bundle-defaults
2import {
3 fetchDigitalAsset,
4 mplTokenMetadata,
5 updateV1,
6} from '@metaplex-foundation/mpl-token-metadata'
7import {
8 keypairIdentity,
9 publicKey,
10} from '@metaplex-foundation/umi'
11import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
12import { readFileSync } from 'fs'
13
14// Initialize Umi with your RPC endpoint
15const umi = createUmi('https://api.devnet.solana.com').use(mplTokenMetadata())
16
17// Load your wallet keypair (must be the update authority)
18const wallet = '<your wallet file path>'
19const secretKey = JSON.parse(readFileSync(wallet, 'utf-8'))
20const keypair = umi.eddsa.createKeypairFromSecretKey(new Uint8Array(secretKey))
21umi.use(keypairIdentity(keypair))
22
23// Your token mint address
24const mintAddress = publicKey('<your token mint address>')
25
26// Fetch existing token data
27const asset = await fetchDigitalAsset(umi, mintAddress)
28
29// Update the token metadata (name, symbol, and URI)
30await updateV1(umi, {
31 mint: mintAddress,
32 authority: umi.identity,
33 data: {
34 ...asset.metadata,
35 name: 'Updated Token Name',
36 symbol: 'UTN',
37 uri: 'https://example.com/updated-metadata.json',
38 },
39}).sendAndConfirm(umi)
40
41console.log('Token metadata updated successfully')
42console.log('Mint:', mintAddress)
43console.log('New name:', 'Updated Token Name')
44console.log('New URI:', 'https://example.com/updated-metadata.json')

参数

根据您的更新需求自定义以下参数:

参数描述
mintAddress代币铸币地址
name新代币名称(最多32个字符)
symbol新代币符号(最多10个字符)
uri新链下元数据JSON的链接
sellerFeeBasisPoints版税百分比(同质化代币通常为0)

工作原理

更新过程很简单:

  1. 以更新权限者身份连接 - 您的钱包必须是代币的更新权限者
  2. 调用updateV1 - 提供铸币地址和新的元数据值
  3. 确认交易 - 元数据在链上更新

可以更新什么

您可以更新以下链上元数据:

  • Name - 代币的显示名称
  • Symbol - 简短的股票代码符号
  • URI - 链接到链下JSON元数据(图像、描述等)
  • Seller fee basis points - 版税百分比

要求

要更新代币元数据,您必须:

  • 是更新权限者 - 只有指定的更新权限者可以更改元数据
  • 代币是可变的 - 代币必须使用isMutable: true创建

更新链下元数据

要更新代币的图像或描述:

  1. 创建包含更新信息的新JSON元数据文件
  2. 将新JSON上传到存储提供商(如Arweave)
  3. 更新uri字段以指向新的JSON文件
{
"name": "Updated Token Name",
"symbol": "UTN",
"description": "An updated description for my token",
"image": "https://arweave.net/new-image-hash"
}

重要说明

  • 更新仅影响元数据,不影响代币本身或现有余额
  • 如果代币创建时设置为不可变,则无法更新元数据
  • 您可以通过更改uri来更新链下数据,如图像和描述