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
- Add the Verified Creators plugin with initial creators
- Creators verify themselves using
updatePlugin - To remove: creator unverifies, then update authority removes
Verified Creators vs Autograph
| Feature | Verified Creators | Autograph |
|---|---|---|
| Who can add | Update authority only | Anyone (after enabled) |
| Purpose | Prove creatorship | Collectible signatures |
| Verification | Creators verify themselves | No verification needed |
| Removal | Must unverify first | Owner 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 authoritycan: - 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
updatePlugininstruction 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:
| Arg | Value |
|---|---|
| address | publicKey |
| message | string |
| 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.
- Set
verified:falseThis snippet assumes thatumi.identityis 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)
- remove the creator This snippet assumes that
umi.identityis 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
| Step | Action | Who |
|---|---|---|
| 1 | Add unverified creator | Update Authority |
| 2 | Verify creator | Creator signs |
| 3 | Unverify (optional) | Creator signs |
| 4 | Remove (optional) | Update Authority |
Permission Matrix
| Action | Update Authority | Creator |
|---|---|---|
| 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
| Term | Definition |
|---|---|
| Verified Creator | Creator who has signed to confirm their involvement |
| Unverified Creator | Creator added by update authority but not yet confirmed |
| Verification | Creator signing to prove authentic creatorship |
| Royalties Plugin | Separate plugin for royalty distribution (not this one) |
| Creator Array | List of addresses associated with an Asset/Collection |
Related Plugins
- Autograph - Collectible signatures from anyone (fans, celebrities)
- Royalties - Set royalty distribution (separate from verified creators)
- ImmutableMetadata - Lock metadata permanently
