Features

Burning Assets

Last updated January 31, 2026

This guide shows how to burn Core Assets on Solana using the Metaplex Core SDK. Permanently destroy Assets and recover most of the rent deposit.

What You'll Learn

  • Burn an Asset and recover rent
  • Handle burning for Assets in Collections
  • Understand Burn Delegate permissions
  • Know what happens to the account after burning

Summary

Burn a Core Asset to permanently destroy it and recover rent. Only the owner (or Burn Delegate) can burn an Asset.

  • Call burn(umi, { asset }) to destroy the Asset
  • Most rent (~0.0028 SOL) is returned to the payer
  • A small amount (~0.0009 SOL) remains to prevent account reuse
  • Burning is permanent and irreversible

Out of Scope

Token Metadata burning (use mpl-token-metadata), compressed NFT burning (use Bubblegum), and Collection burning (Collections have their own burn process).

Quick Start

Jump to: Burn Asset · Burn in Collection

  1. Install: npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi
  2. Fetch the Asset to verify ownership
  3. Call burn(umi, { asset }) as the owner
  4. Rent is automatically returned to your wallet

Prerequisites

  • Umi configured with a signer that owns the Asset (or is its Burn Delegate)
  • Asset address of the Asset to burn
  • Collection address (if the Asset is in a Collection) Assets can be burnt using the burn instruction. This will return the rent-exempt fees to the owner. Only a very small amount of SOL (0.00089784) will stay in the account to prevent it from being reopened.

Code Example

Here is how you can use our SDKs to burn a Core asset. The snippet assumes that you are the owner of the asset.

1import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
2import { burn } from '@metaplex-foundation/mpl-core'
3import { mplCore } from '@metaplex-foundation/mpl-core'
4import { publicKey } from '@metaplex-foundation/umi'
5
6const umi = createUmi('https://api.devnet.solana.com').use(mplCore())
7const assetAddress = publicKey('AssetAddressHere...')
8
9// Permanently destroy/burn an NFT asset
10const result = await burn(umi, {
11 asset: assetAddress,
12}).sendAndConfirm(umi)
13
14console.log('Asset burned successfully')

Burning an Asset that is part of a Collection

Here is how you can use our SDKs to burn a Core asset that is part of a collection. The snippet assumes that you are the owner of the asset.

Burning an Asset that is part of a collection

import { publicKey } from '@metaplex-foundation/umi'
import {
burn,
fetchAsset,
collectionAddress,
fetchCollection,
} from '@metaplex-foundation/mpl-core'
const assetId = publicKey('11111111111111111111111111111111')
const asset = await fetchAsset(umi, assetId)
const collectionId = collectionAddress(asset)
let collection = undefined
if (collectionId) {
collection = await fetchCollection(umi, collectionId)
}
await burn(umi, {
asset,
collection,
}).sendAndConfirm(umi)

Common Errors

Authority mismatch

You're not the owner or Burn Delegate of the Asset. Check ownership:

const asset = await fetchAsset(umi, assetAddress)
console.log(asset.owner) // Must match your signer

Asset is frozen

The Asset has a Freeze Delegate plugin and is currently frozen. The freeze authority must unfreeze it before burning.

Missing collection parameter

For Assets in a Collection, you must pass the collection address. Fetch the Asset first to get the collection:

const asset = await fetchAsset(umi, assetAddress)
const collectionId = collectionAddress(asset)

Notes

  • Burning is permanent and irreversible - the Asset cannot be recovered
  • Rent is returned to the owner (amount varies based on asset size and plugins)
  • The remaining SOL prevents the account address from being reused
  • Burn Delegates can burn on behalf of owners (via the Burn Delegate plugin)
  • Frozen Assets must be unfrozen before burning

Quick Reference

Burn Parameters

ParameterRequiredDescription
assetYesAsset address or fetched object
collectionIf in collectionCollection address
authorityNoDefaults to signer (use for delegates)

Who Can Burn?

AuthorityCan Burn?
Asset OwnerYes
Burn DelegateYes
Transfer DelegateNo
Update AuthorityNo

Rent Recovery

ItemAmount
Returned to payerBase + plugin storage rent
Remaining in account~0.0009 SOL

FAQ

Can I recover the ~0.0009 SOL left in the account?

No. This small amount is intentionally left to mark the account as "burned" and prevent its address from being reused for a new Asset.

What happens to the Asset's metadata after burning?

The on-chain account is cleared (zeroed out). The off-chain metadata remains accessible via the original URI, but there's no on-chain record linking to it.

Can a Burn Delegate burn without the owner's approval?

Yes. Once an owner assigns a Burn Delegate via the plugin, the delegate can burn the Asset at any time. Owners should only assign trusted addresses as Burn Delegates.

Does burning affect the Collection's count?

Yes. The Collection's currentSize is decremented when an Asset is burned. The numMinted counter remains unchanged (it tracks total ever minted).

Can I burn multiple Assets at once?

Not in a single instruction. You can batch multiple burn instructions in one transaction (up to transaction size limits).

Glossary

TermDefinition
BurnPermanently destroy an Asset and recover rent
Burn DelegateAn account authorized to burn on behalf of the owner
RentSOL deposited to keep an account alive on Solana
FrozenAn Asset state where burns and transfers are blocked
CollectionA group account that the Asset may belong to