Plugins

Burn Delegate

Last updated January 31, 2026

The Burn Delegate Plugin allows a designated authority to burn Core Assets on behalf of the owner. Useful for game mechanics, subscription services, and automated asset lifecycle management.

What You'll Learn

  • Add the Burn Delegate plugin to an Asset
  • Delegate burn authority to another address
  • Revoke burn authority
  • Use cases: games, subscriptions, automated burns

Summary

The Burn Delegate is an Owner Managed plugin that allows a delegate to burn an Asset. Once added, the delegate can burn the Asset at any time without owner approval.

  • Delegate burn authority to a program or wallet
  • Authority is revoked on Asset transfer
  • Use Permanent Burn Delegate for irrevocable burn authority
  • No additional arguments required

Out of Scope

Collection burning (different process), permanent burn authority (see Permanent Burn Delegate), and Token Metadata burn authority (different system).

Quick Start

Jump to: Add Plugin · Delegate Authority · Revoke

  1. Add the Burn Delegate plugin: addPlugin(umi, { asset, plugin: { type: 'BurnDelegate' } })
  2. Optionally delegate to another address
  3. The delegate can now burn the Asset at any time

When to Use Burn vs Permanent Burn Delegate

Use CaseBurn DelegatePermanent Burn Delegate
Game item destruction✅ Best choice✅ Also works
Subscription expiration✅ Best choice❌ Too permanent
Burn frozen Assets❌ Cannot burn✅ Can force burn
Authority persists on transfer❌ Revokes✅ Persists
Emergency burn capability❌ Limited✅ Best choice
Choose Burn Delegate when burn authority should reset on ownership change.
Choose Permanent Burn Delegate when authority must persist forever.

Common Use Cases

  • Game mechanics: Burn NFTs when items are consumed, destroyed, or lost in-game
  • Subscription services: Auto-burn expired subscription tokens
  • Crafting systems: Burn ingredient NFTs when crafting new items
  • Achievement redemption: Burn achievement tokens when redeemed for rewards
  • Event tickets: Burn tickets after event check-in
  • Limited-time assets: Burn assets after expiration period

Works With

MPL Core Asset
MPL Core Collection

Arguments

The Burn Plugin doesn't contain any arguments to pass in.

Adding the Burn Plugin to an Asset

Adding a Burn Plugin to an MPL Core Asset

import { publicKey } from '@metaplex-foundation/umi'
import { addPlugin } from '@metaplex-foundation/mpl-core'
(async () => {
const asset = publicKey('11111111111111111111111111111111')
await addPlugin(umi, {
asset: asset,
plugin: { type: 'BurnDelegate' },
}).sendAndConfirm(umi)
})();

Delegating Burn Authority

The Burn Delegate plugin authority can be delegated to a different address using the approvePluginAuthority function. This allows you to change who can burn the Asset.

Delegate Burn Authority

import { publicKey } from '@metaplex-foundation/umi'
import { approvePluginAuthority } from '@metaplex-foundation/mpl-core'
(async () => {
const assetAddress = publicKey('11111111111111111111111111111111')
const newDelegate = publicKey('22222222222222222222222222222222')
await approvePluginAuthority(umi, {
asset: assetAddress,
plugin: { type: 'BurnDelegate' },
newAuthority: { type: 'Address', address: newDelegate },
}).sendAndConfirm(umi)
})();

Revoking Burn Authority

The burn authority can be revoked using the revokePluginAuthority function, returning control to the asset owner.

Revoke Burn Authority

import { publicKey } from '@metaplex-foundation/umi'
import { revokePluginAuthority } from '@metaplex-foundation/mpl-core'
(async () => {
const assetAddress = publicKey('11111111111111111111111111111111')
await revokePluginAuthority(umi, {
asset: assetAddress,
plugin: { type: 'BurnDelegate' },
}).sendAndConfirm(umi)
})();

Common Errors

Authority mismatch

Only the burn delegate authority can burn the Asset. Verify you're signing with the correct keypair.

Asset is frozen

Frozen Assets cannot be burned. The freeze authority must thaw the Asset first.

Notes

  • Owner Managed: requires owner signature to add
  • Authority is automatically revoked when the Asset transfers
  • Frozen Assets cannot be burned
  • Use Permanent Burn Delegate if authority must persist after transfer
  • Burning is immediate and irreversible

Quick Reference

Who Can Burn?

AuthorityCan Burn?
Asset OwnerYes (always)
Burn DelegateYes
Permanent Burn DelegateYes (force approve)
Update AuthorityNo

FAQ

What's the difference between Burn Delegate and Permanent Burn Delegate?

Burn Delegate authority is revoked on transfer. Permanent Burn Delegate authority persists forever and uses forceApprove, meaning it can burn even if the Asset is frozen.

Can the owner still burn if there's a Burn Delegate?

Yes. The owner can always burn their own Asset regardless of delegates.

Does Burn Delegate work on frozen Assets?

No. Regular Burn Delegate cannot burn frozen Assets. Use Permanent Burn Delegate if you need to burn frozen Assets.

When is Burn Delegate revoked?

When the Asset is transferred to a new owner. The new owner would need to add a new Burn Delegate.

Glossary

TermDefinition
Burn DelegateOwner Managed plugin allowing a delegate to burn the Asset
Owner ManagedPlugin type requiring owner signature to add
RevokeRemove the delegate's burn authority
Permanent Burn DelegateIrrevocable version that persists after transfer
forceApprovePermanent plugin ability to override freeze restrictions