插件

ImmutableMetadata 插件

Last updated January 31, 2026

ImmutableMetadata 插件永久锁定 Asset 或 Collection 的名称和 URI。一旦添加,任何人都无法更改元数据,确保永久出处。

您将学到

  • 使 Asset 元数据不可变
  • 使 Collection 元数据不可变
  • 理解从 Collection 到 Asset 的继承
  • 永久保护 NFT 出处

摘要

ImmutableMetadata 插件是一个权限管理插件,可防止对 Asset 或 Collection 的名称和 URI 进行任何更改。一旦添加,此保护是永久的。

  • 权限管理(只有更新权限可以添加)
  • 使名称和 URI 永久不可更改
  • 添加后无法移除
  • Collection 插件影响该 Collection 中的所有 Asset

范围外

使其他插件数据不可变(对这些插件使用权限 None)、选择性字段不可变性和临时锁定不在范围内。

快速开始

跳转到: 添加到 Asset · 添加到 Collection

  1. 确保元数据(名称、URI)已最终确定
  2. 以更新权限添加 ImmutableMetadata 插件
  3. 元数据现已永久锁定

何时使用 ImmutableMetadata

场景使用 ImmutableMetadata?
具有永久艺术品的艺术 NFT✅ 是
具有演变属性的游戏物品❌ 否(需要更新属性)
防止抽地毯骗局✅ 是
动态/演变 NFT❌ 否
证书/凭证✅ 是
使用 ImmutableMetadata 用于艺术品、收藏品和证书,这些地方永久性很重要。
不要使用 用于需要更新的游戏物品或动态 NFT。

常见用例

  • 艺术收藏品:保证艺术品和元数据永不改变
  • 证书:发行无法更改的凭证
  • 出处保护:通过锁定元数据防止抽地毯骗局
  • 历史记录:永久保存 NFT 数据
  • 品牌保证:向收藏家保证 NFT 的身份是固定的

兼容性

MPL Core Asset
MPL Core Collection

参数

ImmutableMetadata 插件不需要参数。

Asset 添加 immutableMetadata 插件代码示例

向 MPL Core Asset 添加 Immutability 插件

import {
addPlugin,
} from '@metaplex-foundation/mpl-core'
await addPlugin(umi, {
asset: asset.publicKey,
plugin: {
type: 'ImmutableMetadata',
},
}).sendAndConfirm(umi)

Collection 添加 immutableMetadata 插件代码示例

向 Collection 添加 immutableMetadata 插件

import {
addCollectionPlugin,
} from '@metaplex-foundation/mpl-core'
await addCollectionPlugin(umi, {
collection: collection.publicKey,
plugin: {
type: 'ImmutableMetadata',
},
}).sendAndConfirm(umi)

常见错误

Authority mismatch

只有更新权限可以添加 ImmutableMetadata 插件。

Cannot update metadata

ImmutableMetadata 插件已激活。名称和 URI 无法更改。

注意事项

  • 此操作是永久且不可逆的
  • 添加此插件前请仔细检查名称和 URI
  • 添加到 Collection 会使该 Collection 中的所有 Asset 不可变
  • 插件没有参数——只需添加即可锁定元数据

快速参考

受影响的字段

字段已锁定
name
uri
其他元数据❌(使用其他方法)

继承行为

添加到效果
Asset仅该 Asset 的元数据被锁定
CollectionCollection 和所有 Asset 的元数据被锁定

常见问题

可以撤销添加 ImmutableMetadata 吗?

不可以。一旦添加,ImmutableMetadata 插件就无法移除。元数据将永久锁定。这是为了出处保证而设计的。

具体什么变得不可变?

Asset 或 Collection 的 nameuri 字段。其他插件数据不受影响——使用权限 None 来使各个插件的数据不可变。

如果我将其添加到 Collection,现有 Asset 会受影响吗?

是的。当 ImmutableMetadata 在 Collection 上时,该 Collection 中的所有 Asset 都会继承不可变性。它们的元数据无法更改。

可以在 Asset 创建时添加吗?

可以。您可以在 create() 时添加 ImmutableMetadata,以确保元数据从一开始就被锁定。

为什么需要不可变元数据?

不可变元数据提供永久出处——收藏家知道 NFT 的名称和相关元数据 URI 永远不会改变,从而防止创作者替换艺术品或描述的抽地毯骗局。

相关插件

  • AddBlocker - 防止添加新插件(与 ImmutableMetadata 互补)
  • Attributes - 链上数据(不被 ImmutableMetadata 锁定)
  • Royalties - 在设为不可变之前设置版税

术语表

术语定义
不可变无法更改或修改
元数据与 Asset/Collection 关联的名称和 URI
出处可验证的真实性和所有权记录
URI链下 JSON 元数据的链接
继承Asset 自动获得 Collection 级别的插件效果