機能

Assetのバーン

Last updated January 31, 2026

このガイドでは、Metaplex Core SDKを使用してSolana上でCore Assetをバーンする方法を説明します。Assetを永久に破棄し、レント保証金のほとんどを回収します。

学習内容

  • Assetをバーンしてレントを回収する
  • Collection内のAssetのバーンを処理する
  • Burn Delegate権限を理解する
  • バーン後にアカウントがどうなるかを知る

概要

Core Assetをバーンして永久に破棄し、レントを回収します。所有者(またはBurn Delegate)のみがAssetをバーンできます。

  • burn(umi, { asset })を呼び出してAssetを破棄
  • ほとんどのレント(約0.0028 SOL)が支払者に返却される
  • 少額(約0.0009 SOL)がアカウント再利用防止のために残る
  • バーンは永久的で取り消し不可能

対象外

Token Metadataのバーン(mpl-token-metadataを使用)、圧縮NFTのバーン(Bubblegumを使用)、Collectionのバーン(Collectionには独自のバーンプロセスがあります)。

クイックスタート

ジャンプ先: Assetをバーン · Collection内でバーン

  1. インストール: npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi
  2. Assetを取得して所有権を確認
  3. 所有者としてburn(umi, { asset })を呼び出す
  4. レントは自動的にウォレットに返却される

前提条件

  • Assetを所有する(またはBurn Delegateである)署名者で構成されたUmi
  • バーンするAssetのAssetアドレス
  • Collectionアドレス(AssetがCollection内にある場合) Assetはburn命令を使用してバーンできます。これにより、レント免除手数料が所有者に返却されます。アカウントの再オープンを防ぐため、非常に少額のSOL(0.00089784)のみがアカウントに残ります。

コード例

SDKを使用してCore 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')

Collectionに属するAssetのバーン

コレクションの一部であるCore assetをバーンするためのSDKの使用方法を示します。このスニペットはあなたがアセットの所有者であることを前提としています。

Collectionに属するAssetのバーン

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)

よくあるエラー

Authority mismatch

Assetの所有者またはBurn Delegateではありません。所有権を確認してください:

const asset = await fetchAsset(umi, assetAddress)
console.log(asset.owner) // 署名者と一致する必要があります

Asset is frozen

AssetにFreeze Delegateプラグインがあり、現在フリーズされています。バーンする前にフリーズ権限者が解除する必要があります。

Missing collection parameter

Collection内のAssetの場合、collectionアドレスを渡す必要があります。最初にAssetを取得してコレクションを取得してください:

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

注意事項

  • バーンは永久的で取り消し不可能 - Assetは回復できません
  • レントは所有者に返却されます(金額はアセットサイズとプラグインによって異なります)
  • 残りのSOLはアカウントアドレスの再利用を防ぎます
  • Burn Delegateは所有者に代わってバーンできます(Burn Delegateプラグイン経由)
  • フリーズされたAssetはバーン前に解除する必要があります

クイックリファレンス

バーンパラメータ

パラメータ必須説明
assetはいAssetアドレスまたは取得したオブジェクト
collectionコレクション内の場合Collectionアドレス
authorityいいえデフォルトは署名者(デリゲート用)

誰がバーンできるか?

権限バーン可能?
Asset所有者はい
Burn Delegateはい
Transfer Delegateいいえ
Update Authorityいいえ

レント回収

項目金額
支払者に返却ベース + プラグインストレージレント
アカウントに残る約0.0009 SOL

FAQ

アカウントに残っている約0.0009 SOLを回収できますか?

いいえ。この少額はアカウントを「バーン済み」としてマークし、そのアドレスが新しいAssetに再利用されるのを防ぐために意図的に残されています。

バーン後、Assetのメタデータはどうなりますか?

オンチェーンアカウントはクリア(ゼロ化)されます。オフチェーンメタデータは元のURIからアクセス可能ですが、それにリンクするオンチェーンレコードはありません。

Burn Delegateは所有者の承認なしにバーンできますか?

はい。所有者がプラグイン経由でBurn Delegateを割り当てると、デリゲートはいつでもAssetをバーンできます。所有者は信頼できるアドレスのみをBurn Delegateとして割り当てるべきです。

バーンはCollectionのカウントに影響しますか?

はい。Assetがバーンされると、CollectionのcurrentSizeが減少します。numMintedカウンターは変更されません(これまでにミントされた総数を追跡します)。

複数のAssetを一度にバーンできますか?

単一の命令ではできません。1つのトランザクションに複数のバーン命令をバッチ処理できます(トランザクションサイズ制限内で)。

用語集

用語定義
バーンAssetを永久に破棄してレントを回収する
Burn Delegate所有者に代わってバーンする権限を持つアカウント
レントSolana上でアカウントを維持するために預けるSOL
フリーズバーンと転送がブロックされるAssetの状態
CollectionAssetが属する可能性のあるグループアカウント