Plugins
Update Delegate Plugin
Last updated January 31, 2026
The Update Delegate Plugin allows you to grant update permissions to additional addresses. Useful when third parties need to modify Asset metadata without being the primary update authority.
What You'll Learn
- Add the Update Delegate plugin to Assets and Collections
- Grant update permissions to additional addresses
- Understand what additional delegates can and cannot do
- Update and manage the delegates list
Summary
The Update Delegate is an Authority Managed plugin that allows the update authority to grant update permissions to other addresses. Additional delegates can modify most Asset data but cannot change core authority settings.
- Grant update permissions to third parties
- Add multiple additional delegates
- Works with both Assets and Collections
- Delegates cannot modify the root update authority
Out of Scope
Permanent update delegation, owner-level permissions (this is authority managed), and Token Metadata update authority (different system).
Quick Start
Jump to: Add to Asset · Update Delegates · Collection
- Add the Update Delegate plugin with the delegate address
- Optionally add additional delegates
- Delegates can now update Asset metadata
When to Use Update Delegate
| Scenario | Solution |
|---|---|
| Third-party needs to update metadata | ✅ Update Delegate |
| Game program needs to modify stats | ✅ Update Delegate (delegate to program) |
| Multiple team members need update access | ✅ Additional Delegates |
| Permanent irrevocable update access | ❌ Not supported (use multisig authority) |
| Owner should control updates | ❌ Use default authority |
| Use Update Delegate when you need to grant update permissions to programs or third parties without transferring the root authority. |
Common Use Cases
- Third-party services: Allow platforms to update metadata on your behalf
- Game programs: Grant your game program authority to modify Asset attributes
- Team collaboration: Multiple team members can update without sharing keys
- Marketplaces: Allow marketplaces to update listing-related metadata
- Dynamic content: Services that automatically update Asset data
Works With
| MPL Core Asset | ✅ |
| MPL Core Collection | ✅ |
Arguments
| additionalDelegates | publickey[] |
additionalDelegates
Additional delegates allow you to add more than one delegate to the updateDelegate plugin. Additional delegates can do everything that the update authority can do except:
- add or change the additional delegates array (apart from remove themselves).
- change the plugin authority of the updateAuthority plugin.
- change the root update authority of the collection.
Adding the Update Delegate Plugin to an Asset
Adding a Update Delegate Plugin to an MPL Core Asset
import { publicKey } from '@metaplex-foundation/umi'
import { addPlugin } from '@metaplex-foundation/mpl-core'
const assetAddress = publicKey('11111111111111111111111111111111')
const delegate = publicKey('22222222222222222222222222222222')
await addPlugin(umi, {
asset: assetAddress,
plugin: {
type: 'UpdateDelegate',
authority: { type: 'Address', address: delegate },
additionalDelegates: [],
},
}).sendAndConfirm(umi)
Updating the Update Delegate Plugin
The Update Delegate Plugin can be updated to modify the list of additional delegates or change the plugin authority.
Updating Update Delegate Plugin on Asset
import { publicKey } from '@metaplex-foundation/umi'
import { updatePlugin } from '@metaplex-foundation/mpl-core'
const assetAddress = publicKey('11111111111111111111111111111111')
const newDelegate = publicKey('33333333333333333333333333333333')
const existingDelegate = publicKey('22222222222222222222222222222222')
await updatePlugin(umi, {
asset: assetAddress,
plugin: {
type: 'UpdateDelegate',
additionalDelegates: [existingDelegate, newDelegate], // Add or remove delegates
},
}).sendAndConfirm(umi)
Updating Update Delegate Plugin on Collection
Updating Update Delegate Plugin on Collection
import { publicKey } from '@metaplex-foundation/umi'
import { updateCollectionPlugin } from '@metaplex-foundation/mpl-core'
const collectionAddress = publicKey('11111111111111111111111111111111')
const delegate1 = publicKey('22222222222222222222222222222222')
const delegate2 = publicKey('33333333333333333333333333333333')
await updateCollectionPlugin(umi, {
collection: collectionAddress,
plugin: {
type: 'UpdateDelegate',
additionalDelegates: [delegate1, delegate2], // Updated delegates list
},
}).sendAndConfirm(umi)
Common Errors
Authority mismatch
Only the update authority (or existing plugin authority) can add/modify the Update Delegate plugin.
Cannot modify root authority
Additional delegates cannot change the root update authority or modify the additional delegates list (except removing themselves).
Notes
- Authority Managed: update authority can add without owner signature
- Additional delegates have almost full update permissions
- Delegates cannot change the root update authority
- Delegates cannot modify the additional delegates list (except remove themselves)
- Works on both Assets and Collections
Quick Reference
Additional Delegate Permissions
| Action | Allowed? |
|---|---|
| Update name/URI | ✅ |
| Add plugins | ✅ |
| Update plugins | ✅ |
| Remove plugins | ✅ |
| Change root update authority | ❌ |
| Modify additional delegates | ❌ (except self-removal) |
| Change plugin authority | ❌ |
FAQ
What can additional delegates do?
Almost everything the update authority can do: update metadata, add/remove plugins, etc. They cannot change the root update authority, modify the additional delegates list, or change the Update Delegate plugin authority.
Can additional delegates add more delegates?
No. Only the root update authority (or plugin authority) can add or remove additional delegates.
How do I remove myself as an additional delegate?
Additional delegates can remove themselves from the list by updating the plugin without their address in the additionalDelegates array.
Is there a limit to additional delegates?
There's no hard limit, but more delegates increase account size and rent. Keep the list reasonable.
Does Update Delegate work on Collections?
Yes. Adding Update Delegate to a Collection allows delegates to update collection metadata and collection-level plugins.
Related Plugins
- Attributes - Store on-chain data that delegates can update
- ImmutableMetadata - Make metadata unchangeable (overrides delegates)
- AddBlocker - Prevent delegates from adding new plugins
Glossary
| Term | Definition |
|---|---|
| Update Delegate | Authority Managed plugin for granting update permissions |
| Additional Delegates | Extra addresses with update permissions |
| Authority Managed | Plugin type controlled by update authority |
| Root Update Authority | The primary update authority of the Asset/Collection |
