功能
已验证的创作者
与集合类似,资产的创作者必须经过验证以确保资产的真实性。
一个 verified 标志为 false 的创作者可能是由任何人添加的,因此不能被信任。另一方面,一个 verified 标志为 true 的创作者保证已经签署了一笔交易,验证他们是该资产的创作者。
在下面的部分中,我们将学习如何验证和取消验证资产的创作者。请注意,在验证创作者之前,它必须已经是资产的元数据账户的 Creators 数组的一部分。这可以在铸造资产时完成,也可以在更新资产时完成。
验证创作者
验证指令可用于验证资产的创作者。请注意,如果我们向指令传递不同的参数,同一指令也可用于验证集合。我们的一些 SDK 将这些指令拆分为多个辅助函数,如 verifyCreatorV1 和 verifyCollectionV1,以提供更好的开发者体验。
在验证创作者的上下文中,验证指令所需的主要属性如下:
- Metadata:资产的元数据账户地址。
- Authority:我们试图验证的创作者作为签名者。
以下是我们如何使用 SDK 在 Token Metadata 上验证创作者。
1import { verifyCreatorV1 } from '@metaplex-foundation/mpl-token-metadata';
2
3// Assuming umi, metadata, and creator are set up
4
5await verifyCreatorV1(umi, {
6 metadata,
7 authority: creator,
8}).sendAndConfirm(umi);
9
10console.log('Creator verified');
1import {
2 getVerifyCreatorV1Instruction,
3 findMetadataPda,
4} from '@metaplex-foundation/mpl-token-metadata-kit';
5
6// Assuming rpc, rpcSubscriptions, sendAndConfirm, and creator (signer) are set up
7
8const mintAddress = 'mintAddress...'; // The NFT mint address
9
10// Find the metadata PDA
11const [metadata] = await findMetadataPda({ mint: mintAddress });
12
13// Verify the creator on the NFT
14const verifyIx = getVerifyCreatorV1Instruction({
15 metadata,
16 authority: creator,
17});
18
19await sendAndConfirm({
20 instructions: [verifyIx],
21 payer: creator,
22});
23
24console.log('Creator verified on NFT');
取消验证创作者
相反,取消验证指令可用于将创作者的 verified 标志转为 false。它接受与验证指令相同的属性,并且可以以相同的方式使用。
1import { unverifyCreatorV1 } from '@metaplex-foundation/mpl-token-metadata';
2
3// Assuming umi, metadata, and creator are set up
4
5await unverifyCreatorV1(umi, {
6 metadata,
7 authority: creator,
8}).sendAndConfirm(umi);
9
10console.log('Creator unverified');
1import {
2 getUnverifyCreatorV1Instruction,
3 findMetadataPda,
4} from '@metaplex-foundation/mpl-token-metadata-kit';
5
6// Assuming rpc, rpcSubscriptions, sendAndConfirm, and creator (signer) are set up
7
8const mintAddress = 'mintAddress...'; // The NFT mint address
9
10// Find the metadata PDA
11const [metadata] = await findMetadataPda({ mint: mintAddress });
12
13// Unverify the creator on the NFT
14const unverifyIx = getUnverifyCreatorV1Instruction({
15 metadata,
16 authority: creator,
17});
18
19await sendAndConfirm({
20 instructions: [unverifyIx],
21 payer: creator,
22});
23
24console.log('Creator unverified on NFT');
