プラグイン

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

クイックスタート

ジャンプ先: プラグインを追加 · 権限をデリゲート · フリーズ · 解凍

  1. Freeze Delegateプラグインを追加:addPlugin(umi, { asset, plugin: { type: 'FreezeDelegate', data: { frozen: true } } })
  2. Assetがフリーズされ、転送できなくなる
  3. 準備ができたら解凍:frozen: falseでプラグインを更新
  4. 権限は転送時に取り消し

Freeze vs Permanent Freezeの使い分け

ユースケースFreeze DelegatePermanent Freeze Delegate
マーケットプレイスリスティング✅ 最適❌ 過剰
エスクローレスステーキング✅ 最適✅ 動作する
ソウルバウンドトークン❌ 転送時に取り消し✅ 最適
コレクション全体フリーズ❌ Assetのみ✅ Collectionsをサポート
レンタルプロトコル✅ 最適✅ 動作する
Freeze Delegateを選択するのは、権限が所有権変更時にリセットされるべき場合です。
Permanent Freeze Delegateを選択するのは、権限が永続する必要がある場合です。

一般的なユースケース

  • エスクローレスステーキング: エスクローに転送せずにステーク中のNFTをフリーズ
  • マーケットプレイスリスティング: エスクローアカウントなしで販売用NFTをロック
  • ゲームアイテムロック: ゲームプレイ中にアイテムを一時的にロック
  • レンタルプロトコル: 貸し出し中のNFTをロック
  • ガバナンス: 投票期間中にトークンをロック
  • 担保: 貸出担保として使用されるNFTをロック
  • トーナメント: 競技参加中のNFTをロック

対応

MPL Core Asset
MPL Core Collection
コレクションレベルのフリーズには、代わりにPermanent Freeze Delegateを使用してください。

引数

引数
frozenbool

関数

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)を更新できます。転送とバーンのみがブロックされます。

エスクローレスステーキングを実装するにはどうすればよいですか?

  1. ステーキングプログラムをauthorityとしてFreeze Delegateプラグインを追加
  2. ユーザーがステークするとき:Assetをフリーズ
  3. ユーザーがアンステークするとき:Assetを解凍
  4. NFTはユーザーのウォレットから離れない

関連プラグイン

用語集

用語定義
Freeze Delegate転送とバーンをブロックするOwner Managedプラグイン
Frozen転送とバーンがブロックされたAsset状態
Thaw転送を再び許可するためにAssetを解凍
Delegate AuthorityAssetをフリーズ/解凍する権限を持つアカウント
Escrowless保持アカウントに転送せずにステーキング/リスティング
Owner Managed追加にオーナーの署名が必要なプラグインタイプ