快速入门
更新代币元数据
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')
1# Update Token Metadata using the Metaplex CLI
2
3# Interactive editor mode (opens metadata JSON in your default editor)
4mplx toolbox token update <MINT_ADDRESS> --editor
5
6# Update specific fields via flags
7mplx toolbox token update <MINT_ADDRESS> --name "New Token Name"
8mplx toolbox token update <MINT_ADDRESS> --symbol "NEW"
9mplx toolbox token update <MINT_ADDRESS> --description "Updated description"
10
11# Update with new image
12mplx toolbox token update <MINT_ADDRESS> --image ./new-image.png
13
14# Update multiple fields at once
15mplx toolbox token update <MINT_ADDRESS> \
16 --name "Updated Token" \
17 --symbol "UPD" \
18 --description "An updated token description" \
19 --image ./updated-image.png
20
21# Note: You must be the update authority to update token metadata
22# Note: --editor flag cannot be combined with other update flags
参数
根据您的更新需求自定义以下参数:
| 参数 | 描述 |
|---|---|
mintAddress | 代币铸币地址 |
name | 新代币名称(最多32个字符) |
symbol | 新代币符号(最多10个字符) |
uri | 新链下元数据JSON的链接 |
sellerFeeBasisPoints | 版税百分比(同质化代币通常为0) |
工作原理
更新过程很简单:
- 以更新权限者身份连接 - 您的钱包必须是代币的更新权限者
- 调用updateV1 - 提供铸币地址和新的元数据值
- 确认交易 - 元数据在链上更新
可以更新什么
您可以更新以下链上元数据:
- Name - 代币的显示名称
- Symbol - 简短的股票代码符号
- URI - 链接到链下JSON元数据(图像、描述等)
- Seller fee basis points - 版税百分比
要求
要更新代币元数据,您必须:
- 是更新权限者 - 只有指定的更新权限者可以更改元数据
- 代币是可变的 - 代币必须使用
isMutable: true创建
更新链下元数据
要更新代币的图像或描述:
- 创建包含更新信息的新JSON元数据文件
- 将新JSON上传到存储提供商(如Arweave)
- 更新
uri字段以指向新的JSON文件
{
"name": "Updated Token Name",
"symbol": "UTN",
"description": "An updated description for my token",
"image": "https://arweave.net/new-image-hash"
}
重要说明
- 更新仅影响元数据,不影响代币本身或现有余额
- 如果代币创建时设置为不可变,则无法更新元数据
- 您可以通过更改
uri来更新链下数据,如图像和描述
