ERC-1155的NFT为什么能有多份?和ERC-721有何区别

 / 
7

ERC-1155 能有多份,是因为它的标准在 tokenId 之外引入了一个独立的 amount(数量)字段。同一个 tokenId 代表一种"资产类型",这个类型下可以发行任意多份。ERC-721 没有这个字段,每个 tokenId 在合约里只对应一个所有者,天然就是单份的。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

ERC-721:一个 ID,一个所有者

ERC-721 的设计围绕"唯一性"展开。合约里每个 tokenId 都记录着一个明确的所有者,ownerOf(tokenId) 返回的是一个地址,而不是"某地址持有多少份"。标准里不存在"数量"这个概念。

要发行 10 个完全相同的 NFT,在 ERC-721 下你必须做 10 次独立的铸造操作,生成 10 个不同的 tokenId(比如 #1 到 #10)。每个 ID 都有自己的元数据和独立的转移历史。转移时也一样,10 个 NFT 需要 10 笔独立的转移调用,每笔都要付一次基础 gas 费。

这种设计适合那些"每一份都必须被单独识别和追踪"的资产:一件艺术品、一个 ENS 域名、一张唯一的房产凭证。你关心的不是"有多少份",而是"这一份具体是谁的"。

ERC-1155:ID 是"类型",数量是"库存"

ERC-1155 的 tokenId 含义变了。它不再指向一个唯一的物品,而是指向一种资产类型。在这个类型下,合约维护的是每个地址持有多少份。

举个例子:假设你要发行一款游戏里的"治疗药水"。在 ERC-1155 里,你可以只铸造一次,指定 id = 1,数量 amount = 1000。这 1000 瓶药水共享同一个 id 和同一套元数据,但合约记录的是"地址 A 持有 50 份 id 1"、"地址 B 持有 200 份 id 1"。ERC-1155 的标准函数(如 balanceOf)返回的是余额,而不是单一所有者。

如果某个 id 的总供应量恰好是 1,那么它在表现上就等同于一个 NFT。所以 ERC-1155 可以同时管理同质化代币(比如游戏金币,供应量极大)、半同质化代币(比如限量版门票,供应量 500)和独一份的 NFT,全部在同一个合约里完成。

批量操作是附带优势,不是多份的原因

ERC-1155 支持 safeBatchTransferFrom,可以在一次交易里同时转移多种 id、多种数量。比如把 id 1 的 50 份和 id 2 的 10 份一起转给同一个人,只需要一笔交易。

这个功能的 gas 节省在批量场景下很显著,但它之所以能批量,前提是标准本身就允许"同一 id 下有多份"以及"一个合约管理多种 id"。ERC-721 做不到真正的批量转移,因为每个 ID 都是独立的、所有者唯一的资产,合约层面没有一个"把多个 ID 打包成一个操作"的原生接口。

怎么判断一个项目该用哪个

看你要表达的东西是"一个"还是"一种"。

如果你的资产是叙事性的、独一无二的——比如一件 1/1 艺术品、一个身份标识、一个特定编号的收藏品——ERC-721 是更自然的表达。它的 ownerOf 精确回答"这个具体的东西归谁",市场也长期围绕这种模式建立了索引和展示习惯。

如果你的资产是可重复的、成批的——比如游戏道具、活动门票、会员徽章、同一首歌的多个授权副本——ERC-1155 更合适。你不需要为每一份单独生成 ID 和元数据,铸造和转移的成本都低得多。代价是,当你想追踪"第 37 号门票"时,ERC-1155 本身不提供这个能力,你只能看到"某个地址持有多少份门票类型"。

一个常见的误解是"ERC-1155 是升级版的 ERC-721"。两者解决的不是同一个问题。ERC-721 保证的是个体层面的精确性,ERC-1155 优化的是类型层面的效率。一个项目完全可以在同一个生态里两者并用:用 ERC-721 发行核心收藏品,用 ERC-1155 发行可消耗的游戏资源或批量通行证。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

参考资料

  1. Ethereum.org·ERC-1155 多代币标准,2026-11-02
  2. EIP-721·Non-Fungible Token Standard,2026-11-02
  3. EIP-1155·Multi Token Standard,2026-11-02
  4. metapro·Token ERC-1155 vs ERC-721,2026-11-02
  5. GitHub·EPF_Bootcamp notes on ERC-721 vs ERC-1155,2026-11-02