プラグイン

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バーン権限(別のシステム)。

クイックスタート

ジャンプ先: プラグインを追加 · 権限をデリゲート · 取り消し

  1. Burn Delegateプラグインを追加:addPlugin(umi, { asset, plugin: { type: 'BurnDelegate' } })
  2. オプションで別のアドレスにデリゲート
  3. デリゲートはいつでもAssetをバーン可能

Burn vs Permanent Burn Delegateの使い分け

ユースケースBurn DelegatePermanent 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を追加する必要があります。

関連プラグイン

用語集

用語定義
Burn DelegateデリゲートがAssetをバーンできるようにするOwner Managedプラグイン
Owner Managed追加にオーナーの署名が必要なプラグインタイプ
Revokeデリゲートのバーン権限を削除
Permanent Burn Delegate転送後も持続する取り消し不可能なバージョン
forceApproveフリーズ制限を上書きする永続プラグインの機能