插件

Permanent Transfer Delegate

Last updated January 31, 2026

Permanent Transfer Delegate Plugin提供永久有效的不可撤销transfer权限。与普通Transfer Delegate不同,此权限永不撤销,可以重复转移Asset。

学习内容

  • 创建具有永久transfer功能的Asset
  • 启用Collection范围的transfer权限
  • 用例:游戏、订阅、自动化系统
  • 理解permanent vs 普通transfer delegate

概述

Permanent Transfer Delegate是一个只能在创建时添加的permanent plugin。delegate可以无需所有者批准无限次转移Asset。

  • 只能在Asset/Collection创建时添加
  • 权限永久有效(永不撤销)
  • 使用forceApprove - 即使冻结也可以转移
  • Collection级别:允许转移Collection中的任何Asset

范围外

普通transfer delegate(参见Transfer Delegate)、无托管列表(使用普通delegate)和Token Metadata transfer权限。

快速开始

跳转到: 创建Asset

  1. 在Asset/Collection创建时添加PermanentTransferDelegate plugin
  2. 将authority设置为您的程序或delegate地址
  3. delegate可以在任何时候无限次转移Asset

Permanent vs 普通Transfer Delegate

功能Transfer DelegatePermanent Transfer Delegate
创建后添加✅ 可以❌ 仅限创建时
转移后权限保留❌ 1次转移后撤销✅ 永久保留
多次转移❌ 一次性✅ 无限
可以转移冻结的Asset❌ 不可以✅ 可以(forceApprove)
适用于Collection❌ 不可以✅ 可以
选择Transfer Delegate:用于一次性无托管销售。
选择Permanent Transfer Delegate:用于游戏、租赁或需要重复转移的自动化系统。

常见用例

  • 游戏机制:当游戏事件发生时(战斗失败、交易)转移Asset
  • 租赁返还:自动将租借的NFT返还给所有者
  • 订阅管理:当订阅结束或续订时转移代币
  • DAO财库管理:允许DAO管理Asset分配
  • 自动化系统:需要在无需每次转移批准的情况下移动Asset的程序

兼容性

MPL Core Asset
MPL Core Collection

行为

  • Asset:允许使用delegated地址转移Asset。
  • Collection:允许使用collection authority转移Collection中的任何Asset。不会一次性转移所有Asset。

参数

参数
frozenbool

创建带有Permanent Transfer Plugin的MPL Core Asset

创建带有Permanent Transfer Plugin的MPL Core Asset

import { publicKey } from '@metaplex-foundation/umi'
import { create } from '@metaplex-foundation/mpl-core'
const assetSigner = generateSigner(umi)
const delegate = publicKey('33333333333333333333333333333')
await create(umi, {
asset: assetSigner,
name: 'My Asset',
uri: 'https://example.com/my-asset.json',
plugins: [
{
type: 'PermanentTransferDelegate',
authority: { type: 'Address', address: delegate },
},
],
}).sendAndConfirm(umi)

常见错误

Cannot add permanent plugin after creation

Permanent plugin只能在Asset/Collection创建时添加。您无法将Permanent Transfer Delegate添加到现有Asset。

Authority mismatch

只有plugin authority可以转移。请验证您是否使用正确的密钥对签名。

注意事项

  • 仅限创建时:Asset/Collection存在后无法添加
  • Force approve:即使冻结也可以转移
  • Collection行为:可以单独转移Collection中的任何Asset
  • 永久有效:权限永不撤销
  • 无限转移:delegate可以转移的次数没有限制

FAQ

Transfer Delegate和Permanent Transfer Delegate有什么区别?

普通Transfer Delegate在一次转移后会被撤销。Permanent Transfer Delegate永久有效,可以无限次转移。

Permanent Transfer Delegate能转移冻结的Asset吗?

是的。Permanent plugin使用forceApprove,可以覆盖冻结拒绝。

我可以将此添加到现有Asset吗?

不可以。Permanent plugin只能在Asset创建时添加。对于现有Asset,请使用普通Transfer Delegate。

Collection级别的Permanent Transfer Delegate如何工作?

delegate可以转移Collection中的任何单个Asset,但不能一次性转移所有Asset。每次转移都是单独的交易。

相关Plugin

术语表

术语定义
Permanent Plugin只能在创建时添加且永久有效的Plugin
forceApprove覆盖其他plugin拒绝的验证
Collection Transfer转移Collection中任何Asset的能力