プラグイン
Freeze Delegate
Last updated January 31, 2026
Freeze Delegateプラグインを使用すると、Core Assetsをフリーズして、アセットがオーナーのウォレットに残ったまま転送とバーンをブロックできます。エスクローレスステーキング、マーケットプレイスリスティング、ゲームメカニクスに最適です。
学べること
- AssetにFreeze Delegateプラグインを追加
- Assetのフリーズと解凍
- フリーズ権限を別のアドレスにデリゲート
- ユースケース:ステーキング、リスティング、ゲームロック
概要
Freeze Delegateは、Assetsを所定の位置にフリーズするOwner Managedプラグインです。フリーズされると、フリーズauthorityによって解凍されるまで、Assetは転送またはバーンできません。
- エスクローに転送せずにAssetsをフリーズ
- プログラムまたは別のウォレットにフリーズ権限をデリゲート
- 権限は転送時に取り消し(非永続バージョンの場合)
- 取り消し不可能なフリーズにはPermanent Freeze Delegateを使用
対象外
コレクションレベルのフリーズ(Assetレベルのみ使用)、永続的フリーズ(Permanent Freeze Delegateを参照)、Token Metadataフリーズ権限(別のシステム)。
クイックスタート
ジャンプ先: プラグインを追加 · 権限をデリゲート · フリーズ · 解凍
- Freeze Delegateプラグインを追加:
addPlugin(umi, { asset, plugin: { type: 'FreezeDelegate', data: { frozen: true } } }) - Assetがフリーズされ、転送できなくなる
- 準備ができたら解凍:
frozen: falseでプラグインを更新 - 権限は転送時に取り消し
Freeze vs Permanent Freezeの使い分け
| ユースケース | Freeze Delegate | Permanent Freeze Delegate |
|---|---|---|
| マーケットプレイスリスティング | ✅ 最適 | ❌ 過剰 |
| エスクローレスステーキング | ✅ 最適 | ✅ 動作する |
| ソウルバウンドトークン | ❌ 転送時に取り消し | ✅ 最適 |
| コレクション全体フリーズ | ❌ Assetのみ | ✅ Collectionsをサポート |
| レンタルプロトコル | ✅ 最適 | ✅ 動作する |
| Freeze Delegateを選択するのは、権限が所有権変更時にリセットされるべき場合です。 | ||
| Permanent Freeze Delegateを選択するのは、権限が永続する必要がある場合です。 |
一般的なユースケース
- エスクローレスステーキング: エスクローに転送せずにステーク中のNFTをフリーズ
- マーケットプレイスリスティング: エスクローアカウントなしで販売用NFTをロック
- ゲームアイテムロック: ゲームプレイ中にアイテムを一時的にロック
- レンタルプロトコル: 貸し出し中のNFTをロック
- ガバナンス: 投票期間中にトークンをロック
- 担保: 貸出担保として使用されるNFTをロック
- トーナメント: 競技参加中のNFTをロック
対応
| MPL Core Asset | ✅ |
| MPL Core Collection | ❌ |
| コレクションレベルのフリーズには、代わりにPermanent Freeze Delegateを使用してください。 |
引数
| 引数 | 値 |
|---|---|
| frozen | bool |
関数
AssetへのFreeze Delegateプラグインの追加
addPluginコマンドはAssetにFreeze Delegateプラグインを追加します。このプラグインにより、Assetをフリーズして転送とバーンを防ぐことができます。
MPL Core AssetへのFreezeプラグインの追加
import { publicKey } from '@metaplex-foundation/umi'
import { addPlugin } from '@metaplex-foundation/mpl-core'
const assetAddress = publicKey('11111111111111111111111111111111')
await addPlugin(umi, {
asset: assetAddress,
plugin: { type: 'FreezeDelegate', data: { frozen: true } },
}).sendAndConfirm(umi)
フリーズ権限のデリゲート
approvePluginAuthorityコマンドは、フリーズ権限を別のアドレスにデリゲートします。これにより、所有権を維持しながら別のアドレスがAssetをフリーズおよび解凍できるようになります。
フリーズ権限のデリゲート
import { publicKey } from '@metaplex-foundation/umi'
import { approvePluginAuthority } from '@metaplex-foundation/mpl-core'
const asset = publicKey('11111111111111111111111111111111')
const delegateAddress = publicKey('22222222222222222222222222222222')
await approvePluginAuthority(umi, {
asset: asset.publicKey,
plugin: { type: 'FreezeDelegate' },
newAuthority: { type: 'Address', address: delegateAddress },
}).sendAndConfirm(umi)
Freeze Delegateプラグインの更新
Freeze Delegateプラグインを更新して、アセットのフリーズ状態を変更できます。これは、以下に示すAssetのフリーズとフリーズされたAssetの解凍関数の使用と同じです。
Assetのフリーズ
freezeAssetコマンドはAssetをフリーズし、転送またはバーンを防ぎます。これはエスクローレスステーキングやマーケットプレイスリスティングに便利です。
MPL Core Assetのフリーズ
import { publicKey } from '@metaplex-foundation/umi'
import { freezeAsset, fetchAsset } from '@metaplex-foundation/mpl-core'
const assetAddress = publicKey('11111111111111111111111111111111')
const assetAccount = await fetchAsset(umi, assetAddress)
const delegateSigner = generateSigner(umi)
await freezeAsset(umi, {
asset: assetAccount,
delegate: delegateSigner.publicKey,
authority: delegateSigner,
}).sendAndConfirm(umi)
フリーズされたAssetの解凍
thawAssetコマンドはフリーズされたAssetを解凍し、転送とバーンの機能を復元します。
MPL Core Assetの解凍
import { publicKey } from '@metaplex-foundation/umi'
import { thawAsset, fetchAsset } from '@metaplex-foundation/mpl-core'
const assetAddress = publicKey('11111111111111111111111111111111')
const assetAccount = await fetchAsset(umi, assetAddress)
const delegateSigner = generateSigner(umi)
await thawAsset(umi, {
asset: assetAccount,
delegate: delegateSigner,
}).sendAndConfirm(umi)
一般的なエラー
Asset is frozen
フリーズされたAssetを転送またはバーンしようとしました。フリーズauthorityがまず解凍する必要があります。
Authority mismatch
freeze delegateのauthorityのみがAssetをフリーズ/解凍できます。誰がプラグイン権限を持っているか確認してください。
Plugin not found
AssetにFreeze Delegateプラグインがありません。まずaddPluginで追加してください。
注意事項
- Owner Managed: 追加にはオーナーの署名が必要
- Assetが転送されると権限は自動的に取り消し
- フリーズされたアセットは引き続き更新可能(メタデータ変更は許可)
- 転送後も権限が持続する必要がある場合はPermanent Freeze Delegateを使用
- フリーズは即時 - 確認期間なし
クイックリファレンス
フリーズ状態
| 状態 | 転送可能 | バーン可能 | 更新可能 |
|---|---|---|---|
| 非フリーズ | はい | はい | はい |
| フリーズ | いいえ | いいえ | はい |
権限の動作
| イベント | 権限の結果 |
|---|---|
| Asset転送 | 権限取り消し |
| プラグイン削除 | 権限消失 |
| 解凍 | 権限維持 |
FAQ
所有していないAssetをフリーズできますか?
いいえ。Freeze DelegateはOwner Managedなので、オーナーのみが追加できます。追加後、別のアドレスに権限をデリゲートできます。
Freeze DelegateとPermanent Freeze Delegateの違いは何ですか?
Freeze Delegateの権限は転送時に取り消されます。Permanent Freeze Delegateの権限は永続し、作成時にのみ追加できます。
フリーズされたAssetをバーンできますか?
いいえ。フリーズされたアセットは転送とバーンの両方をブロックします。バーンしたい場合は先にAssetを解凍してください。
コレクション全体を一度にフリーズできますか?
通常のFreeze Delegate(Assetのみ)では不可。代わりにCollectionでPermanent Freeze Delegateを使用してください - コレクションレベルのフリーズをサポートし、そのコレクション内のすべてのAssetを一度にフリーズします。Permanent Freeze DelegateはCollection作成時にのみ追加可能であることに注意してください。
フリーズはメタデータの更新に影響しますか?
いいえ。Assetオーナーまたはupdate authorityはフリーズ中でもメタデータ(名前、URI)を更新できます。転送とバーンのみがブロックされます。
エスクローレスステーキングを実装するにはどうすればよいですか?
- ステーキングプログラムをauthorityとしてFreeze Delegateプラグインを追加
- ユーザーがステークするとき:Assetをフリーズ
- ユーザーがアンステークするとき:Assetを解凍
- NFTはユーザーのウォレットから離れない
関連プラグイン
- Permanent Freeze Delegate - 取り消し不可能なフリーズ権限、Collectionsをサポート
- Transfer Delegate - デリゲートがAssetを転送できるようにする
- Burn Delegate - デリゲートがAssetをバーンできるようにする
用語集
| 用語 | 定義 |
|---|---|
| Freeze Delegate | 転送とバーンをブロックするOwner Managedプラグイン |
| Frozen | 転送とバーンがブロックされたAsset状態 |
| Thaw | 転送を再び許可するためにAssetを解凍 |
| Delegate Authority | Assetをフリーズ/解凍する権限を持つアカウント |
| Escrowless | 保持アカウントに転送せずにステーキング/リスティング |
| Owner Managed | 追加にオーナーの署名が必要なプラグインタイプ |
