機能

アセットの更新

アセットの更新権限は、Is Mutable属性がtrueに設定されている限り、Update命令を使用してそのMetadataアカウントを更新できます。Update命令はUpdate Authorityがトランザクションに署名することを要求し、Metadataアカウントの以下の属性を更新できます:

更新可能フィールド

委任された権限」ページで説明されているように、特定の委任された権限もアセットのMetadataアカウントを更新できることに注意してください。

以下は、UpdateV1命令で更新可能なすべての個別フィールドの説明です。

Dataオブジェクト

アセットの名前、シンボル、URI、販売手数料ベーシスポイント、および作成者配列を定義するオブジェクト。更新権限は、Creators配列から検証されていない作成者のみを追加および/または削除できることに注意してください。唯一の例外は、作成者が更新権限である場合で、この場合、追加または削除された作成者を検証できます。

Data Object

const data = {
name: 'New Name',
symbol: 'New Symbol',
uri: 'https://newuri.com',
sellerFeeBasisPoints: 500,
creators: [],
}

Primary Sale Happened

アセットが以前に販売されたかどうかを示すブール値。

Primary Sale Happened

primarySaleHappened: true

Is Mutable

アセットを再度更新できるかどうかを示すブール値。これをfalseに変更すると、将来のすべての更新は失敗します。

Is Mutable

isMutable: true

Collection

この属性により、アセットのコレクションを設定またはクリアできます。新しいコレクションを設定する場合、verifiedブール値はfalseに設定し、別の命令を使用して検証する必要があることに注意してください。

コレクションの設定

Setting A Collection

collection: collectionToggle('Set', [
{
key: publicKey('11111111111111111111111111111111'),
verified: false,
},
])

コレクションのクリア

Clearing a Collection

collection: collectionToggle("Clear"),

New Update Authority

newUpdateAuthorityフィールドを渡すことで、新しい更新権限をアセットに割り当てることができます。

New Update Authority

newUpdateAuthority: publicKey('1111111111111111111111111111111')

Programable RuleSets

この属性により、アセットのルールセットを設定またはクリアできます。これはProgrammable Non-Fungiblesにのみ関連します。

Programable RuleSets

ruleSet: publicKey('1111111111111111111111111111111')

以下は、SDKを使用してToken Metadataでアセットを更新する方法です。

更新権限としての更新

NFTアセット

この例では、アセットの更新権限としてNFTアセットを更新する方法を示します。

1import { publicKey, none, some } from '@metaplex-foundation/umi';
2import { updateV1 } from '@metaplex-foundation/mpl-token-metadata';
3
4// Assuming umi is set up with mplTokenMetadata plugin
5// See getting-started for full setup
6
7const mintAddress = publicKey('mintAddress...');
8
9// Update the NFT metadata
10await updateV1(umi, {
11 mint: mintAddress,
12 authority: umi.identity,
13 // Only specify fields you want to update
14 data: some({
15 name: 'Updated NFT Name',
16 symbol: '', // Keep existing
17 uri: '', // Keep existing
18 sellerFeeBasisPoints: 0, // Keep existing
19 creators: none(),
20 }),
21}).sendAndConfirm(umi);
22
23console.log('NFT metadata updated');

pNFTアセット

この例では、アセットの更新権限としてProgrammable NFT(pNFT)アセットを更新する方法を示します。

pNFTsは、命令が機能するために追加のアカウントを渡す必要がある場合があります。これらには、tokenAccount、tokenRecord、authorizationRules、authorizationRulesProgramが含まれます。

1import { publicKey, none, some } from '@metaplex-foundation/umi';
2import { updateV1 } from '@metaplex-foundation/mpl-token-metadata';
3
4// Assuming umi is set up with mplTokenMetadata plugin
5
6const mintAddress = publicKey('mintAddress...');
7
8// Update the Programmable NFT metadata
9// Note: pNFTs may have rule sets that restrict updates
10await updateV1(umi, {
11 mint: mintAddress,
12 authority: umi.identity,
13 data: some({
14 name: 'Updated pNFT Name',
15 symbol: '',
16 uri: '',
17 sellerFeeBasisPoints: 0,
18 creators: none(),
19 }),
20}).sendAndConfirm(umi);
21
22console.log('pNFT metadata updated');