機能
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内でバーン
- インストール:
npm install @metaplex-foundation/mpl-core @metaplex-foundation/umi - Assetを取得して所有権を確認
- 所有者として
burn(umi, { asset })を呼び出す - レントは自動的にウォレットに返却される
前提条件
- 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の状態 |
| Collection | Assetが属する可能性のあるグループアカウント |
