Features

Updating a Core Collection

Last updated April 8, 2026

updateCollection and updateCollectionPlugin modify an existing Core Collection's metadata and plugin configuration.

What You'll Learn

  • Update a Collection's name or URI
  • Update a plugin attached to a Collection

Summary

Two instructions handle post-creation updates to a Core Collection.

  • updateCollection — change the collection's name or uri
  • updateCollectionPlugin — modify the configuration of an existing plugin on the collection
  • Both require the updateAuthority to sign
  • Changes to collection-level plugins propagate to member Assets that inherit them

Jump to: Update Metadata · Update Plugin · Common Errors

Prerequisites

  • Umi configured with the collection's updateAuthority as signer — see Fetch Collection to retrieve this value
  • The collection address you want to update

Updating Collection Metadata

updateCollection changes the name and/or uri of an existing Collection. Pass only the fields you want to change.

Update a Core Collection

update-collection.ts
import { publicKey } from '@metaplex-foundation/umi'
import { updateCollection } from '@metaplex-foundation/mpl-core'
const collectionAddress = publicKey('1111111111111111111111111111111')
await updateCollection(umi, {
collection: collectionAddress,
name: 'My Updated Collection',
uri: 'https://example.com/new-uri.json',
}).sendAndConfirm(umi)

Updating a Collection Plugin

updateCollectionPlugin changes the configuration of a plugin already attached to the Collection. This example updates the Royalties plugin's basis points and creator split.

Update a Core Collection plugin

update-collection-plugin.ts
import { publicKey } from '@metaplex-foundation/umi'
import { updateCollectionPlugin, ruleSet } from '@metaplex-foundation/mpl-core'
const collectionAddress = publicKey('1111111111111111111111111111111')
const newCreator = publicKey('5555555555555555555555555555555')
await updateCollectionPlugin(umi, {
collection: collectionAddress,
plugin: {
type: 'Royalties',
basisPoints: 400,
creators: [{ address: newCreator, percentage: 100 }],
ruleSet: ruleSet('None'),
},
}).sendAndConfirm(umi)

Common Errors

Authority mismatch

Your signer is not the collection's updateAuthority. Fetch the collection to check:

const collection = await fetchCollection(umi, collectionAddress)
console.log(collection.updateAuthority) // Must match umi.identity

Notes

  • To add a plugin that does not yet exist on the collection, use addCollectionPlugin instead of updateCollectionPlugin
  • Updating a collection-level plugin affects all Assets that inherit it — Assets with their own plugin of the same type are not affected
  • Transfer updateAuthority to a new account via the newUpdateAuthority parameter on updateCollection

Quick Reference

InstructionJS FunctionWhen to Use
UpdateCollectionV1updateCollectionChange name or uri
UpdateCollectionPluginV1updateCollectionPluginModify an existing plugin's config
AccountRequiredDescription
collectionYesThe collection to update
authorityYesMust be the updateAuthority
payerYesPays transaction fees
newUpdateAuthorityNoTransfer update authority to a new account
SourceLink
UpdateCollectionV1GitHub
UpdateCollectionPluginV1GitHub