Plugins

Verified Creator Plugin

Last updated January 31, 2026

The Verified Creators Plugin stores a list of verified creator signatures on Assets or Collections. Prove creatorship publicly without affecting royalty distribution.

What You'll Learn

  • Add verified creators to Assets and Collections
  • Verify creator signatures
  • Remove creators from the list
  • Understand the verification workflow

Summary

The Verified Creators plugin is an Authority Managed plugin that stores creator addresses with verification status. Unlike Token Metadata, these creators are NOT used for royalty distribution (use the Royalties plugin for that).

  • Update authority adds unverified creators
  • Creators verify themselves by signing
  • Verified creators must unverify before removal
  • Assets inherit creators from their Collection

Out of Scope

Royalty distribution (use Royalties plugin), Token Metadata creator arrays, and automatic verification.

Quick Start

Jump to: Add to Asset · Add Creator · Remove Creator

  1. Add the Verified Creators plugin with initial creators
  2. Creators verify themselves using updatePlugin
  3. To remove: creator unverifies, then update authority removes

Verified Creators vs Autograph

FeatureVerified CreatorsAutograph
Who can addUpdate authority onlyAnyone (after enabled)
PurposeProve creatorshipCollectible signatures
VerificationCreators verify themselvesNo verification needed
RemovalMust unverify firstOwner can remove anytime
Used for royalties❌ No❌ No
Use Verified Creators for proving authentic creatorship.
Use Autograph for collectible signatures from fans/celebrities.

Common Use Cases

  • Team attribution: Designer, developer, and founder each verify their involvement
  • Co-creator proof: Multiple artists verify collaboration on a piece
  • Brand verification: Official brand accounts verify partnership
  • Authenticity proof: Original creator verifies they created the Asset
  • Historical record: Document who was involved in creating a Collection The update authority can:
  • Add the plugin.
  • Add unverified creators to the creators array.
  • Can remove unverified creators. To remove verified creators they must unverify themselves first.
  • Can verify themselves. To verify a creator the updatePlugin instruction has to be signed by the public key that was added by the update authority to the creators array.

Works With

MPL Core Asset
MPL Core Collection

Arguments

The verifiedCreator Plugin requires the following arguments in a VerifiedCreatorsSignature Array:

ArgValue
addresspublicKey
messagestring
Assets inherit the Creators array from the Collection.

Adding the autograph Plugin to an Asset code example

Adding a verified Creators Plugin to an MPL Core Asset

This snippet assumes that the umi identity is the update authority of the asset.

import {
addPlugin,
} from '@metaplex-foundation/mpl-core'
await addPlugin(umi, {
asset: asset.publicKey,
plugin: {
type: 'VerifiedCreators',
signatures: [
{
address: umi.identity.publicKey,
verified: true,
},
},
}).sendAndConfirm(umi)

Adding a different Creator to an Asset code example

Adding a different Creator to an MPL Core Asset

This snippet assumes that the umi identity is the update authority of the asset to add a unverified Creator.

import { publicKey } from '@metaplex-foundation/umi'
import { updatePlugin, fetchAsset } from '@metaplex-foundation/mpl-core'
const asset = await fetchAsset(umi, assetAddress.publicKey, {
skipDerivePlugins: false,
})
const publicKeyToAdd = publicKey("abc...")
// The new autograph that you want to add
const newCreator = {
address: publicKeyToAdd,
verified: false,
}
// Add the new autograph to the existing signatures array
const updatedCreators = [...asset.verifiedCreators.signatures, newCreator]
await updatePlugin(umi, {
asset: asset.publicKey,
plugin: {
type: 'VerifiedCreators',
signatures: updatedCreators,
},
authority: umi.identity,
}).sendAndConfirm(umi)

After adding the unverified Creator they can verify themselves using the updatePlugin function again. This snippet assumes that the umi identity is the Creator.

import { publicKey } from '@metaplex-foundation/umi'
import { updatePlugin, fetchAsset } from '@metaplex-foundation/mpl-core'
const asset = await fetchAsset(umi, assetAddress.publicKey, {
skipDerivePlugins: false,
})
const publicKeyToVerify = publicKey("abc...")
// The creator that you want to verify
const updatedCreators = asset.verifiedCreators.signatures.map(creator => {
if (creator.address === publicKeyToVerify) {
return { ...creator, verified: true };
}
return creator;
});
await updatePlugin(umi, {
asset: asset.publicKey,
plugin: {
type: 'VerifiedCreators',
signatures: updatedCreators,
},
authority: umi.identity,
}).sendAndConfirm(umi)

Removing a Creator from an Asset code example

Removing a Creator from an MPL Core Asset

Only the update authority can remove creators. To remove the creator it has to be verified:false or the update authority itself. Therefore the update will be done in two steps. If you are able to sign with the update authority and the creator at the same time this could be done in one transaction combining both instructions.

  1. Set verified:false This snippet assumes that umi.identity is the creator that you want to remove
import { publicKey } from '@metaplex-foundation/umi'
import { updatePlugin, fetchAsset } from '@metaplex-foundation/mpl-core'
const asset = await fetchAsset(umi, assetAddress.publicKey, {
skipDerivePlugins: false,
})
// The Publickey of the creator that you want to remove
const publicKeyToRemove = publicKey("abc...")
const modifiedCreators = signatures.map(signature =>
signature.address === creator.publicKey
? { ...signature, verified: false }
: signature
);
await updatePlugin(umi, {
asset: asset.publicKey,
plugin: {
type: 'VerifiedCreators',
signatures: modifiedCreators,
},
authority: umi.identity, // Should be the creator
}).sendAndConfirm(umi)
  1. remove the creator This snippet assumes that umi.identity is the update authority
import { publicKey } from '@metaplex-foundation/umi'
import { updatePlugin, fetchAsset } from '@metaplex-foundation/mpl-core'
const asset = await fetchAsset(umi, assetAddress.publicKey, {
skipDerivePlugins: false,
})
// The Publickey of the creator that you want to remove
const publicKeyToRemove = publicKey("abc...")
const creatorsToKeep = asset.verifiedCreators.signatures.filter(
(creator) => creator.address !== publicKeyToRemove
);
await updatePlugin(umi, {
asset: asset.publicKey,
plugin: {
type: 'VerifiedCreators',
signatures: creatorsToKeep,
},
authority: umi.identity, // Should be the update authority
}).sendAndConfirm(umi)

Adding the verified Creators Plugin to a Collection code example

Add verified Creators Plugin to Collection

This snippet assumes that the umi.identity is the update authority

import { addCollectionPlugin } from '@metaplex-foundation/mpl-core'
await addCollectionPlugin(umi, {
collection: collection.publicKey,
plugin: {
type: 'VerifiedCreators',
signatures: [
{
address: umi.identity.publicKey,
verified: true,
},
},
}).sendAndConfirm(umi)

Common Errors

Authority mismatch

Only the update authority can add the plugin or add new creators. Only the creator themselves can verify their own signature.

Creator already verified

The creator has already verified themselves. No action needed.

Cannot remove verified creator

A verified creator must unverify themselves before the update authority can remove them.

Notes

  • Verified Creators are NOT used for royalty distribution (use Royalties plugin)
  • Creators must verify themselves—update authority cannot verify on their behalf
  • A creator must unverify before they can be removed
  • Assets inherit the creators array from their Collection

Quick Reference

Verification Workflow

StepActionWho
1Add unverified creatorUpdate Authority
2Verify creatorCreator signs
3Unverify (optional)Creator signs
4Remove (optional)Update Authority

Permission Matrix

ActionUpdate AuthorityCreator
Add plugin
Add unverified creator
Verify creator✅ (self only)
Unverify creator✅ (self only)
Remove unverified creator

FAQ

How is this different from the Token Metadata creator array?

In Token Metadata, the creator array was used for royalty distribution. In Core, Verified Creators is purely for proof of creatorship - use the Royalties plugin for royalty distribution.

Can the update authority verify a creator?

No. Each creator must verify themselves by signing the transaction. This ensures authentic proof of creatorship.

Why can't I remove a verified creator?

To remove a verified creator, they must first unverify themselves. This prevents unauthorized removal of verified creators.

Do Assets automatically get the Collection's verified creators?

Yes. Assets inherit the creators array from their Collection. Individual Assets can also have their own Verified Creators plugin with different creators.

Can I use this for co-creator attribution?

Yes. This is a common use case—multiple creators (designer, developer, artist) can all verify their involvement in creating an Asset or Collection.

Glossary

TermDefinition
Verified CreatorCreator who has signed to confirm their involvement
Unverified CreatorCreator added by update authority but not yet confirmed
VerificationCreator signing to prove authentic creatorship
Royalties PluginSeparate plugin for royalty distribution (not this one)
Creator ArrayList of addresses associated with an Asset/Collection
  • Autograph - Collectible signatures from anyone (fans, celebrities)
  • Royalties - Set royalty distribution (separate from verified creators)
  • ImmutableMetadata - Lock metadata permanently