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
- Add the Burn Delegate plugin:
addPlugin(umi, { asset, plugin: { type: 'BurnDelegate' } }) - Optionally delegate to another address
- The delegate can now burn the Asset at any time
When to Use Burn vs Permanent Burn Delegate
| Use Case | Burn Delegate | Permanent 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?
| Authority | Can Burn? |
|---|---|
| Asset Owner | Yes (always) |
| Burn Delegate | Yes |
| Permanent Burn Delegate | Yes (force approve) |
| Update Authority | No |
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.
Related Plugins
- Permanent Burn Delegate - Irrevocable burn authority with forceApprove
- Freeze Delegate - Block transfers and burns temporarily
- Transfer Delegate - Allow delegate to transfer Assets
Glossary
| Term | Definition |
|---|---|
| Burn Delegate | Owner Managed plugin allowing a delegate to burn the Asset |
| Owner Managed | Plugin type requiring owner signature to add |
| Revoke | Remove the delegate's burn authority |
| Permanent Burn Delegate | Irrevocable version that persists after transfer |
| forceApprove | Permanent plugin ability to override freeze restrictions |
