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

  1. Add the Update Delegate plugin with the delegate address
  2. Optionally add additional delegates
  3. Delegates can now update Asset metadata

When to Use Update Delegate

ScenarioSolution
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

additionalDelegatespublickey[]

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

ActionAllowed?
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.

Glossary

TermDefinition
Update DelegateAuthority Managed plugin for granting update permissions
Additional DelegatesExtra addresses with update permissions
Authority ManagedPlugin type controlled by update authority
Root Update AuthorityThe primary update authority of the Asset/Collection