プラグイン
Burn Delegate
Last updated January 31, 2026
Burn Delegateプラグインは、指定されたauthorityがオーナーに代わってCore Assetsをバーンできるようにします。ゲームメカニクス、サブスクリプションサービス、自動アセットライフサイクル管理に便利です。
学べること
- AssetにBurn Delegateプラグインを追加
- バーン権限を別のアドレスにデリゲート
- バーン権限を取り消し
- ユースケース:ゲーム、サブスクリプション、自動バーン
概要
Burn Delegateは、デリゲートがAssetをバーンできるようにするOwner Managedプラグインです。追加されると、デリゲートはオーナーの承認なしにいつでもAssetをバーンできます。
- プログラムまたはウォレットにバーン権限をデリゲート
- 権限はAsset転送時に取り消し
- 取り消し不可能なバーン権限にはPermanent Burn Delegateを使用
- 追加の引数は不要
対象外
コレクションのバーン(別のプロセス)、永続的バーン権限(Permanent Burn Delegateを参照)、Token Metadataバーン権限(別のシステム)。
クイックスタート
ジャンプ先: プラグインを追加 · 権限をデリゲート · 取り消し
- Burn Delegateプラグインを追加:
addPlugin(umi, { asset, plugin: { type: 'BurnDelegate' } }) - オプションで別のアドレスにデリゲート
- デリゲートはいつでもAssetをバーン可能
Burn vs Permanent Burn Delegateの使い分け
| ユースケース | Burn Delegate | Permanent Burn Delegate |
|---|---|---|
| ゲームアイテム破棄 | ✅ 最適 | ✅ 動作する |
| サブスクリプション期限切れ | ✅ 最適 | ❌ 永続的すぎる |
| フリーズされたアセットをバーン | ❌ 不可 | ✅ 強制バーン可能 |
| 転送後も権限が持続 | ❌ 取り消し | ✅ 持続 |
| 緊急バーン機能 | ❌ 制限あり | ✅ 最適 |
| Burn Delegateを選択するのは、バーン権限が所有権変更時にリセットされるべき場合です。 | ||
| Permanent Burn Delegateを選択するのは、権限が永続する必要がある場合です。 |
一般的なユースケース
- ゲームメカニクス: アイテムがゲーム内で消費、破壊、紛失されたときにNFTをバーン
- サブスクリプションサービス: 期限切れのサブスクリプショントークンを自動バーン
- クラフトシステム: 新しいアイテムをクラフトするときに材料NFTをバーン
- 実績引き換え: 報酬と引き換えに実績トークンをバーン
- イベントチケット: イベントチェックイン後にチケットをバーン
- 期間限定アセット: 有効期限後にアセットをバーン
対応
| MPL Core Asset | ✅ |
| MPL Core Collection | ❌ |
引数
Burnプラグインには渡す引数がありません。
AssetへのBurnプラグインの追加
MPL Core AssetへのBurnプラグインの追加
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)
})();
バーン権限のデリゲート
Burn Delegateプラグインの権限は、approvePluginAuthority関数を使用して別のアドレスにデリゲートできます。これにより、誰がAssetをバーンできるかを変更できます。
バーン権限のデリゲート
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)
})();
バーン権限の取り消し
バーン権限はrevokePluginAuthority関数を使用して取り消すことができ、アセットオーナーに制御が戻ります。
バーン権限の取り消し
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)
})();
一般的なエラー
Authority mismatch
burn delegateのauthorityのみがAssetをバーンできます。正しいキーペアで署名していることを確認してください。
Asset is frozen
フリーズされたアセットはバーンできません。フリーズauthorityがまずAssetを解凍する必要があります。
注意事項
- Owner Managed: 追加にはオーナーの署名が必要
- Assetが転送されると権限は自動的に取り消し
- フリーズされたアセットはバーンできない
- 転送後も権限が持続する必要がある場合はPermanent Burn Delegateを使用
- バーンは即時かつ不可逆
クイックリファレンス
誰がバーンできる?
| Authority | バーン可能? |
|---|---|
| Assetオーナー | はい(常に) |
| Burn Delegate | はい |
| Permanent Burn Delegate | はい(強制承認) |
| Update Authority | いいえ |
FAQ
Burn DelegateとPermanent Burn Delegateの違いは何ですか?
Burn Delegateの権限は転送時に取り消されます。Permanent Burn Delegateの権限は永続し、forceApproveを使用するため、Assetがフリーズされていてもバーンできます。
Burn Delegateがいてもオーナーはバーンできますか?
はい。オーナーはデリゲートに関係なく、常に自分のAssetをバーンできます。
Burn Delegateはフリーズされたアセットで機能しますか?
いいえ。通常のBurn Delegateはフリーズされたアセットをバーンできません。フリーズされたアセットをバーンする必要がある場合はPermanent Burn Delegateを使用します。
Burn Delegateはいつ取り消されますか?
Assetが新しいオーナーに転送されたとき。新しいオーナーは新しいBurn Delegateを追加する必要があります。
関連プラグイン
- Permanent Burn Delegate - forceApprove付きの取り消し不可能なバーン権限
- Freeze Delegate - 転送とバーンを一時的にブロック
- Transfer Delegate - デリゲートがAssetを転送できるようにする
用語集
| 用語 | 定義 |
|---|---|
| Burn Delegate | デリゲートがAssetをバーンできるようにするOwner Managedプラグイン |
| Owner Managed | 追加にオーナーの署名が必要なプラグインタイプ |
| Revoke | デリゲートのバーン権限を削除 |
| Permanent Burn Delegate | 転送後も持続する取り消し不可能なバージョン |
| forceApprove | フリーズ制限を上書きする永続プラグインの機能 |
