기능

자산 업데이트

자산의 업데이트 권한은 Is Mutable 속성이 true로 설정되어 있는 한 Update 명령어를 사용하여 Metadata 계정을 업데이트할 수 있습니다. Update 명령어는 업데이트 권한이 트랜잭션에 서명하는 것을 요구하며 Metadata 계정의 다음 속성을 업데이트할 수 있습니다:

업데이트 가능한 필드

특정 위임된 권한도 "위임된 권한" 페이지에서 논의된 바와 같이 자산의 Metadata 계정을 업데이트할 수 있다는 점에 주목하세요.

아래는 UpdateV1 명령어에서 업데이트할 수 있는 모든 개별 필드에 대한 설명입니다.

데이터 객체

자산의 이름, 심볼, URI, 판매자 수수료 기준점 및 크리에이터 배열을 정의하는 객체입니다. 업데이트 권한은 크리에이터 배열에서 확인되지 않은 크리에이터만 추가 및/또는 제거할 수 있다는 점에 주목하세요. 유일한 예외는 크리에이터가 업데이트 권한인 경우이며, 이 경우 추가되거나 제거된 크리에이터가 확인될 수 있습니다.

데이터 객체

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

1차 판매 발생

1차 판매 발생: 자산이 이전에 판매되었는지를 나타내는 불리언 값입니다.

1차 판매 발생

primarySaleHappened: true

변경 가능

자산을 다시 업데이트할 수 있는지를 나타내는 불리언 값입니다. 이를 false로 변경하면 향후 모든 업데이트가 실패합니다.

변경 가능

isMutable: true

컬렉션

이 속성을 통해 자산의 컬렉션을 설정하거나 지울 수 있습니다. 새 컬렉션을 설정할 때 verified 불리언은 false로 설정되어야 하며 다른 명령어를 사용하여 확인되어야 한다는 점에 주목하세요.

컬렉션 설정

컬렉션 설정

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

컬렉션 지우기

컬렉션 지우기

collection: collectionToggle("Clear"),

새 업데이트 권한

newUpdateAuthority 필드를 전달하여 자산에 새로운 업데이트 권한을 할당할 수 있습니다.

새 업데이트 권한

newUpdateAuthority: publicKey('1111111111111111111111111111111')

프로그래머블 RuleSet

이 속성을 통해 자산의 규칙 세트를 설정하거나 지울 수 있습니다. 이는 프로그래머블 대체 불가능에만 관련이 있습니다.

프로그래머블 RuleSet

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 자산

이 예제는 자산의 업데이트 권한으로서 프로그래머블 NFT (pNFT) 자산을 업데이트하는 방법을 보여줍니다.

pNFT는 명령어가 작동하기 위해 추가 계정을 전달해야 할 수 있습니다. 여기에는 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');