买币
行情
现货
合约BTC
理财
活动中心
福利中心
更多
0 费狂欢节
ERC-1155 多代币标准: 什么是 ERC-1155 多代币标准?ERC-1155 是一种 Ethereum 代币标准,允许一个智能合约同时管理多种代币。一个 ERC-1155 合约可以代表同质化代币、非同质化代币、半同质化代币,或这些资产类型的组合。官方 ERC-1155 规范规定了标准化的余额查询、单笔转账、批量转账、操作员授权、接收方回调、事件和可选元数据。ERC-1155 被归类为 Final 状态的 EthereuERC-1155 多代币标准: 什么是 ERC-1155 多代币标准?ERC-1155 是一种 Ethereum 代币标准,允许一个智能合约同时管理多种代币。一个 ERC-1155 合约可以代表同质化代币、非同质化代币、半同质化代币,或这些资产类型的组合。官方 ERC-1155 规范规定了标准化的余额查询、单笔转账、批量转账、操作员授权、接收方回调、事件和可选元数据。ERC-1155 被归类为 Final 状态的 Ethereu

ERC-1155 多代币标准

2026/10/13 15:30
#Intermediate
Humanity
H$0.05361-11.16%
SynFutures
F$0.003094-5.72%
PX
PX$0.0123-6.10%
SPACE ID
ID$0.03578-6.57%
AINFT
NFT$0.0000002404+1.09%

什么是 ERC-1155 多代币标准?

ERC-1155 是一种 Ethereum 代币标准,允许一个智能合约同时管理多种代币。

一个 ERC-1155 合约可以代表同质化代币、非同质化代币、半同质化代币,或这些资产类型的组合。

官方 ERC-1155 规范规定了标准化的余额查询、单笔转账、批量转账、操作员授权、接收方回调、事件和可选元数据。

ERC-1155 被归类为 Final 状态的 Ethereum 评论征求意见(ERC)标准。

它通常被称为多代币标准,因为一个合约中的每个代币 ID 都可以代表一种独立的加密资产。

每个代币 ID 都可以拥有独立的供应量、余额、元数据、稀有度、用途和经济特征。

ERC-1155 旨在降低部署和交互操作大量区块链资产的成本与复杂性。

为什么创建 ERC-1155?

早期代币模型通常需要为不同的同质化资产或 NFT 系列分别部署合约。

因此,包含数百种货币、资源、武器、角色和活动道具的区块链游戏可能需要许多合约。

重复部署合约会增加字节码、管理、集成工作和交易成本。

ERC-1155 将多种代币类型纳入一个合约,并为其采用统一的转账和授权系统。

它还支持标准化批量操作,可在一笔交易中转移多个代币 ID。

因此,该标准适用于游戏、数字收藏品、会员系统、代币化库存、金融头寸、奖励计划,以及其他包含多种资产类别的加密应用。

该标准并不限于游戏,只要合约需要高效管理多种代币类型,便可使用 ERC-1155。

ERC-1155 的工作原理

ERC-1155 合约会针对每个账户地址与代币 ID 的组合分别记录余额。

在同一合约中,一个地址可以持有 10 个 ID 为 1 的代币、1 个 ID 为 2 的代币,以及 0 个 ID 为 3 的代币。

每个代币 ID 都可以作为同质化资产、独一无二的 NFT,或供应量有限且可互换的资产。

代币转移时,合约会扣减发送方对应 ID 的余额,并增加接收方相应的余额。

合约会发出标准化事件,方便钱包和索引器还原代币的创建、转账和销毁记录。

如果接收方是智能合约,ERC-1155 合约会调用接收方函数,确认其接受这些资产。

Ethereum 节点会执行这些规则,并根据已部署的合约代码验证余额变动。

ERC-1155 中的代币 ID 是什么?

代币 ID 是一个无符号整数,用于标识 ERC-1155 合约中的一种代币类型。

另一个合约中可以存在相同的代币 ID,但它不一定代表相同资产。

因此,ERC-1155 资产需要通过区块链网络、合约地址和代币 ID 共同识别。

在一个合约中,ID 为 25 的代币可能代表游戏资源;在另一个合约中,它则可能代表独特的收藏品。

该标准不要求 ID 从 0 开始、按顺序递增,或编码特定含义。

开发者可以根据应用架构分配 ID。

应用应查询可靠的合约数据,而不是猜测哪些代币 ID 存在。

ERC-1155 中的同质化代币

如果某个代币 ID 存在多个可互换单位,它就可以代表同质化资产。

例如,ID 为 1 的代币可以代表一种游戏货币,包含 100 万个相同单位。

每位持有者都有与 ID 为 1 的代币对应的数量余额。

同一 ID 的单位通常具有相同的合约定义属性。

与 ERC-20 不同,ERC-1155 核心接口不会为每个代币 ID 单独定义总供应量、符号、名称或 decimals 函数。

项目需要通过扩展、元数据或自定义函数提供所需的供应量或展示信息。

ERC-1155 中的非同质化代币

如果某个 ID 的供应量限制为 1 个单位,它就可以代表非同质化资产。

持有这唯一一个单位的地址可视为该代币的所有者。

同一合约中的另一个代币 ID 可以代表其他独特物品。

例如,ID 为 1001 的代币可以代表一把剑,而 ID 为 1002 的代币可以代表一块虚拟土地。

核心标准不会强制要求代币 ID 的最大供应量为 1。

如果某个 ID 要作为 NFT 使用,合约的铸造逻辑必须确保其唯一性。

半同质化代币

半同质化代币最初包含可互换单位,但之后可能获得不同含义或有限用途。

活动门票是一个常见例子:活动开始前,同一分区的多张门票可能可以互换。

使用后,每张门票都可以成为与特定体验相关的收藏记录。

具有限量版本或状态变化的游戏道具也可以采用半同质化模型。

ERC-1155 不会正式将 ID 分类为同质化、非同质化或半同质化。

代币的分类取决于供应量、元数据、转账规则和应用设计。

ERC-1155 核心函数

核心接口包含用于查询余额、转移代币和管理操作员授权的函数。

必需函数包括

balanceOf
、
balanceOfBatch
、
setApprovalForAll
、
isApprovedForAll
、
safeTransferFrom
和
safeBatchTransferFrom
。

ERC-1155 还要求支持 ERC-165 接口检测。

核心接口不要求提供公开铸造、销毁、总供应量、版税、代币名称、符号或 decimals。

这些功能可以通过扩展或自定义实现逻辑添加。

balanceOf 函数

balanceOf
函数会返回一个地址持有的某个代币 ID 的数量。

输入参数包括账户地址和代币 ID。

这与 ERC-20 不同:ERC-20 通常由一个合约代表一种代币,因此该函数只需要账户地址。

这也与 ERC-721 不同:ERC-721 的

balanceOf
会报告某个地址在一个系列中持有多少个不同的 NFT。

ERC-1155 余额可以为 0、1,或合约允许的任何更大整数。

该标准要求查询零地址余额时失败。

balanceOfBatch 函数

balanceOfBatch
函数可通过一次调用查询多个账户和代币 ID 的余额。

调用方需要提供账户地址数组和与之对应的代币 ID 数组。

每个返回值对应数组中同一位置的账户和 ID。

两个输入数组的长度必须相同。

该函数可以查询一个账户的多种资产,或多个账户持有的同一种资产。

批量余额查询可减少钱包、游戏和数据分析应用所需的单独调用次数。

safeTransferFrom 函数

safeTransferFrom
函数会将某个代币 ID 的指定数量从一个地址转移到另一个地址。

调用方必须是代币持有者,或该持有者已授权的操作员。

发送方必须拥有足够数量的所选代币 ID。

接收方不能是零地址。

该函数还接受一个 bytes 字段,可携带应用专用信息。

转账成功后会发出

TransferSingle
事件。

如果接收方是智能合约,则必须通过所要求的 ERC-1155 接收方回调来接受转账。

safeBatchTransferFrom 函数

safeBatchTransferFrom
函数可在一笔交易中转移多个代币 ID 及其数量。

调用方需要提供相互对应的代币 ID 数组和数量数组。

每个数组位置上的代币 ID 会按数量数组相同位置的数量进行转移。

两个数组的长度必须相同。

调用方必须是持有者或已获授权的操作员,且持有者必须拥有批次中每项资产的足够余额。

如果任何一项必要转账失败,整笔交易通常会回滚。

批量转账成功后会发出一个

TransferBatch
事件,而不是为每个代币 ID 单独发出转账事件。

批量转账的重要性

批量转账可以通过一笔区块链交易转移多种资产。

游戏用户可以一次转移货币、材料、护甲和收藏品。

应用也可以在一次操作中向同一接收方发放多种奖励。

与提交多笔独立交易相比,批处理可以减少重复交易开销并降低总成本。

具体节省多少取决于 ID 数量、合约实现、存储变动、网络状况和接收方逻辑。

批次过大仍可能消耗过多 Gas,并因区块 Gas 上限而失败。

应用应对用户控制的批次大小设定合理限制。

ERC-1155 操作员授权

ERC-1155 使用针对整个系列的操作员授权模型。

setApprovalForAll
函数允许持有者授权或撤销操作员权限。

获批操作员可以管理该持有者在该合约中拥有的所有 ERC-1155 代币 ID。

该授权涵盖现有余额,也涵盖持有者之后从同一合约收到的代币。

标准核心功能不提供仅授权单个代币 ID 或限定数量的函数。

这种广泛授权提升了应用易用性,但也带来重大安全风险。

授权前,用户应核实操作员地址和合约。

isApprovedForAll 函数

isApprovedForAll
函数会报告一个地址是否拥有另一个地址代币的操作员权限。

返回值为

true
或
false
。

授权仅适用于记录该授权的 ERC-1155 合约。

它不会自动授予对 ERC-20 代币、ERC-721 NFT 或其他 ERC-1155 合约中资产的权限。

用户应定期检查有效的操作员授权,并撤销不再需要的权限。

在网站上断开钱包连接,不会移除链上存储的操作员授权。

细粒度授权扩展

如果用户只想授权特定代币 ID 或数量,ERC-1155 的广泛授权模型可能并不合适。

其他标准或自定义合约可以提供范围更窄的权限。

ERC-5216 授权额度扩展规定了针对特定 ERC-1155 代币 ID 的授权数量。

是否支持此类扩展由实现方自行决定,不能默认其一定存在。

钱包必须明确区分针对有限代币 ID 的授权额度与标准的全系列授权。

ERC-1155 接收方接口

通过标准安全转账接收 ERC-1155 代币的智能合约必须实现相应的接收方函数。

接收方接口包括用于单笔转账的

onERC1155Received
,以及用于批量转账的
onERC1155BatchReceived
。

接收方接口的 ERC-165 标识符为

0x4e2312e0
。

接收合约会检查操作员、原持有者、代币 ID、数量和附带数据。

合约必须返回预期的接受值,否则转账会回滚。

这一机制可以减少代币误转至无法处理 ERC-1155 资产的合约的情况。

单笔转账接收方回调

单笔转账时,接收方余额更新后会调用

onERC1155Received
函数。

预期的接受值为

0xf23a6e61
。

接收方可以验证代币合约、操作员、发送方、代币 ID、数量和附带数据。

返回所需值即可接受转账。

接收方可以通过回滚或返回其他值拒绝转账。

接收合约绝不能仅凭回调数据记入充值,而不验证调用方代币合约。

批量转账接收方回调

onERC1155BatchReceived
函数用于处理一次转账中收到多个代币 ID 的情况。

预期的接受值为

0xbc197c81
。

必须按照对应顺序解读 ID 数组和数量数组。

接收方应验证数组长度,并确认每个受支持的代币 ID 都符合应用规则。

返回错误值或回滚都会导致整笔批量转账失败。

由于一笔交易可能包含多种不同资产类型,批量接收方必须谨慎设计。

接收方回调与重入

ERC-1155 接收方回调会在原转账交易完成前执行外部合约代码。

接收合约可以在回调期间再次调用代币合约或其他应用。

这可能形成重入路径。

ERC-1155 规范要求在调用接收方钩子前更新余额和转账事件。

应用合约仍需保护自身的记账和授权逻辑。

当预期逻辑允许时,开发者应遵循 Solidity 安全指南,在外部交互前完成检查和重要状态变更。

开发者应使用尝试同函数和跨函数重入的恶意合约,测试这两个接收方函数。

ERC-1155 事件

核心标准定义了

TransferSingle
、
TransferBatch
、
ApprovalForAll
和
URI
事件。

这些日志可帮助钱包、区块链浏览器、索引器和数据分析系统追踪代币活动。

该标准的设计支持通过转账事件还原代币余额和供应量变化。

创建、转移或销毁代币时,实现必须发出正确事件。

解释事件时,必须同时考虑发出事件的合约地址。

TransferSingle 事件

TransferSingle
事件会记录一次代币类型转移的操作员、发送方、接收方、代币 ID 和数量。

普通转账中的发送方和接收方地址均非零。

铸造时,发送方为零地址。

销毁时,接收方为零地址。

零数量转账也必须发出相应事件。

观察者可以利用这些日志更新索引中的余额记录。

TransferBatch 事件

TransferBatch
事件会记录一次操作转移的多个代币 ID 和数量。

ID 与数量在数组中的位置一一对应。

事件还会记录操作员、发送方和接收方。

批量铸造时,发送方为零地址;批量销毁时,接收方为零地址。

索引器必须处理数组中的每个元素,才能准确计算余额和供应量。

ApprovalForAll 事件

ApprovalForAll
事件会记录持有者是否启用或禁用了某个操作员。

事件标明持有者、操作员和授权状态。

事件本身不会转移代币。

它会改变操作员今后能否发起从持有者账户转出的交易。

撤销操作员权限不会撤销该权限有效期间已完成的交易。

ERC-1155 接口检测

ERC-1155 要求支持 ERC-165 接口检测标准。

ERC-1155 核心接口 ID 为

0xd9b67a26
。

兼容合约在使用该值调用

supportsInterface
时必须返回
true
。

ERC-165 标准规定了智能合约如何公布和检测受支持的接口。

接口检测有助于应用避免调用不受支持的函数。

合约可能虚报支持或错误实现函数,因此返回肯定结果并不能完全保证安全。

ERC-1155 元数据

ERC-1155 包含可选的元数据 URI 扩展。

该扩展增加了

uri
函数,用于返回代币 ID 对应的元数据位置。

其接口 ID 为

0x0e89341c
。

返回的位置通常指向一个 JSON 文档,其中包含名称、描述、图片、属性和外部资源等信息。

与 ERC-20 和 ERC-721 元数据接口不同,ERC-1155 核心设计不要求链上提供

name
或
symbol
函数。

项目仍可通过自定义扩展添加这些函数。

{id} 元数据替换

ERC-1155 元数据 URI 可以包含占位符

{id}
。

应用会将该占位符替换为所请求代币 ID 的小写十六进制值。

该值必须包含 64 个字符,包括前导零,且不能包含

0x
前缀。

这种结构使一个基础 URI 可以指向多个代币 ID 的元数据位置。

如果替换操作不正确,应用可能会请求错误的元数据文件。

元数据存储风险

ERC-1155 元数据可以存储在传统服务器、内容寻址网络或链上。

服务器托管的内容可能被修改或消失。

当标识符与文件匹配时,内容寻址存储可以提高完整性,但仍依赖内容持续可用。

链上元数据可降低对外部托管的依赖,但会增加存储和部署成本。

可变合约 URI 可能在用户获得代币后更改名称、图片、属性或描述。

用户应检查哪些主体有权更改元数据,以及所引用内容是否预计会持续可用。

铸造 ERC-1155 代币

铸造会创建代币单位并将其分配给某个地址。

ERC-1155 核心接口不定义公开铸造函数。

每种实现都自行决定谁可以铸造、可以创建哪些 ID,以及是否设有供应量限制。

铸造时必须发出

TransferSingle
或
TransferBatch
事件,并将发送方设为零地址。

如果代币铸造给智能合约,通常需要执行相应的接收方回调。

用户应检查铸造权限,而不是假设类似 NFT 的 ID 永远具有有限供应量。

销毁 ERC-1155 代币

根据合约实现,销毁会从余额中永久移除代币单位。

核心接口不要求提供公开销毁函数。

项目可以允许持有者、获批操作员、管理员或其他协议逻辑销毁资产。

销毁时必须发出相应转账事件,并将接收方设为零地址。

销毁某个 ID 的全部现有单位,并不一定会阻止合约再次铸造该 ID。

结果取决于合约的供应量和访问控制规则。

ERC-1155 总供应量

ERC-1155 核心标准没有定义

totalSupply
函数。

如果实现遵循规定的事件规则,可以根据铸造和销毁事件计算每个代币 ID 的供应量。

合约可以添加供应量追踪扩展,以便更轻松地进行链上查询。

当前的 ERC-1155 实现 API包含一个可选扩展,可按代币 ID 追踪总供应量。

应用不应假设每个 ERC-1155 合约都提供相同的供应量函数。

ERC-1155 枚举

ERC-1155 没有定义用于列出所有代币 ID 或持有者的核心函数。

该标准预期链下系统根据

TransferSingle
、
TransferBatch
和
URI
事件还原代币活动。

索引器通常从合约部署区块开始,处理至最新区块的所有事件。

遗漏事件可能导致余额或供应量记录错误。

合约可以添加自定义枚举函数,但这类函数并非普遍存在。

ERC-1155 版税

ERC-1155 核心标准不定义创作者版税。

可选的 ERC-2981 版税标准可以为代币销售提供版税接收方和建议支付金额。

ERC-2981 兼容 ERC-1155,并可设置默认版税信息或特定代币的版税信息。

该标准会传达付款信息,但不会强制每个应用都支付版税。

如果实现赋予管理员相关权限,版税设置也可能被更改。

ERC-1155 标准化错误

原始 ERC-1155 标准没有定义现代 Solidity 自定义错误。

Final 状态的 ERC-6093 标准为 ERC-1155 实现定义了常见错误。

其中包括余额不足、发送方无效、接收方无效、缺少操作员授权、操作员无效以及数组长度不匹配等错误。

标准化错误有助于钱包和开发者以一致方式说明交易失败原因。

现有 ERC-1155 合约无须采用这些错误。

ERC-1155 与 ERC-20

ERC-20 通常由每个合约代表一种同质化代币。

ERC-1155 则可以在一个合约中代表多种同质化和非同质化代币 ID。

ERC-20 使用针对单个支出方的数字授权额度,而 ERC-1155 核心功能使用面向整个系列的操作员授权。

ERC-1155 支持标准化批量转账和接收方回调。

ERC-20 核心标准不提供这两种功能。

如果项目只需要一种同质化加密资产,ERC-20 可能仍然更简单。

ERC-1155 与 ERC-721

ERC-721 代表由个人持有的非同质化代币 ID。

一个有效的 ERC-721 代币 ID 只有一个所有者,而不是为每个账户记录数量余额。

ERC-1155 则会为每个账户与代币 ID 的组合记录数量。

因此,同一合约中的一个 ID 可以有多个可互换单位,而另一个 ID 的供应量可以为 1。

ERC-1155 还支持标准化批量转账,而 ERC-721 通常一次转移一个 NFT。

如果每个代币都是独一无二的,ERC-721 可以提供更简单的所有权模型。

ERC-1155 的使用场景

区块链游戏可以使用一个 ERC-1155 合约管理货币、材料、角色、武器、土地和限量版道具。

活动系统可以通过一个合约发行多个类别和数量的门票。

会员项目可以通过不同代币 ID 管理不同访问级别、有效期群组或权益套餐。

数字收藏品项目可以为每件作品创建包含多个可互换副本的版本。

金融应用可以使用 ID 代表到期日、风险组、索赔或头寸类别。

奖励系统可以通过一次批量操作发放多种积分或成就道具。

该标准不会验证任何代币是否代表有效的法律权利或现实世界资产。

授权钓鱼风险

恶意应用可能会要求用户调用

setApprovalForAll
,同时将该请求描述为验证或连接钱包。

一旦获批,操作员就可以转移用户在该 ERC-1155 合约中持有的所有代币 ID。

该授权也可能适用于用户之后收到的代币。

签名之前,用户应检查网络、代币合约、操作员地址和权限类型。

在钱包界面撤销网站访问权限,不会自动撤销链上授权。

取消 ERC-1155 操作员权限不需要助记词或私钥。

批量处理风险

批量操作会处理数组,数组元素必须保持正确对应。

ID 与数量不匹配时,交易应当失败。

索引错误可能导致转移错误数量的资产。

批次过大可能超过交易 Gas 限制,或造成拒绝服务问题。

接收方在经济上可能接受某些代币 ID,却不接受其他 ID,因此必须在确认接收前验证整个批次。

应用应限制批次大小,并根据实现规则测试重复或未排序的代币 ID。

接收方与重入风险

安全转账会在余额更新后调用外部接收方代码。

恶意接收方可能尝试重入铸造、转账、销售、质押、借贷或提现函数。

即使某个函数使用了重入保护,如果其他函数暴露了相关状态,合约仍可能存在漏洞。

开发者应确保单笔和批量操作采用一致的状态转换逻辑。

接收方回调应验证调用方代币合约,不应自动信任用户提供的数据。

安全测试应包括嵌套转账、转发接收方、回滚回调和跨合约交互。

供应量与真实性风险

某个 ERC-1155 代币 ID 可能因为当前只有一个单位而看似独一无二。

但获授权的铸造者之后仍可能创建更多单位。

其他合约也可能复制系列名称、图片或代币 ID。

合约地址和网络是资产身份的重要组成部分。

在依赖稀缺性声明前,用户应检查铸造权限、供应量扩展、管理员权限和升级控制。

符合 ERC-1155 标准并不能证明真实性、背书、稀有度或金融价值。

可升级合约风险

ERC-1155 合约可能通过可升级代理运行。

获授权管理员可能可以更改铸造、转账、授权、元数据、费用或接收方行为。

升级可以修复缺陷,但也可能引入恶意或不安全代码。

升级密钥遭到泄露,可能使合约中的所有代币 ID 面临风险。

用户应检查升级权限、时间延迟、多重签名要求和紧急控制措施。

合约可以支持正确的接口,同时仍保留强大的中心化权限。

开发者如何实现 ERC-1155

除非有充分理由,否则开发者应采用经过持续维护和审查的实现,而不是自行重写敏感的余额逻辑。

当前的 ERC-1155 开发指南提供了核心合约,并说明多代币余额和批量操作。

铸造和管理函数应采用明确的访问控制。

供应量限制应通过合约逻辑执行,而不能只写在项目文档中。

开发者应发出所有必需事件,并返回正确的 ERC-165 接口值。

测试应覆盖单笔转账、批量转账、授权、销毁、铸造、数组不匹配、无效接收方、恶意回调和元数据变更。

用户如何评估 ERC-1155 代币

第一步是验证区块链网络、合约地址和代币 ID。

第二步是确认该 ID 设计为同质化、非同质化还是半同质化代币。

第三步是检查当前供应量、铸造权限和供应量上限。

第四步是检查与钱包关联的操作员授权。

第五步是查看元数据的存储方式,并判断其是否可以更改。

第六步是确认管理员、暂停、冻结和升级权限。

第七步是查看审计和已验证源代码,但不要将其视为安全保证。

第八步是确认代币实际提供哪些权利或用途。

第九步是了解接收方回调或外部合约是否会带来额外风险。

第十步是先用少量资产测试不熟悉的合约,再转移有价值的资产。

ERC-1155 批量转账示例

假设 Alice 持有 100 个 ID 为 1 的代币、5 个 ID 为 2 的代币,以及 1 个 ID 为 3 的代币。

她想向 Bob 转入 10 个 ID 为 1 的代币、2 个 ID 为 2 的代币,以及 1 个 ID 为 3 的代币。

她的钱包会调用

safeBatchTransferFrom
,并传入包含这 3 个 ID 及对应数量的数组。

合约会验证 Alice 的余额和调用方的权限。

随后,合约会扣减 Alice 的余额,并增加 Bob 对应 ID 的余额。

合约会发出一个

TransferBatch
事件,记录完整的转移情况。

如果 Bob 是智能合约,代币合约会调用

onERC1155BatchReceived
。

如果接收方返回正确的接受值,交易便会完成。

如果任何余额检查或接收方要求未通过,整笔批量转账都会回滚。

常见 ERC-1155 错误

一个常见错误是认为每个 ERC-1155 代币 ID 都是 NFT。

另一个错误是认为某个代币 ID 的最大供应量为 1。

第三个错误是在不了解授权涵盖合约内所有 ID 的情况下授予操作员权限。

第四个错误是认为断开钱包连接就会移除链上授权。

第五个错误是把元数据可用视为代币存在的证明。

第六个错误是认为 ERC-1155 为每个 ID 定义了总供应量函数。

第七个错误是在处理批量数组时没有检查数组长度和位置是否对应。

第八个错误是忽视外部接收方回调和重入问题。

第九个错误是认为版税可以自动强制执行。

第十个错误是把接口兼容性视为真实性、稀缺性或安全性的证明。

常见问题

ERC-1155 是什么意思?

ERC-1155 是 Ethereum 的多代币标准,可在一个合约中管理多种同质化、非同质化和半同质化代币。

ERC-1155 是加密货币吗?

ERC-1155 是一种技术标准,而实现该标准的合约可以创建多种加密资产。

ERC-1155 接口 ID 是什么?

ERC-1155 核心接口 ID 为

0xd9b67a26
。

ERC-1155 接收方接口 ID 是什么?

接收方接口 ID 为

0x4e2312e0
。

ERC-1155 可以创建同质化代币吗?

可以。一个代币 ID 可以拥有多个可互换单位,并分配给多个账户。

ERC-1155 可以创建 NFT 吗?

可以。如果合约将某个代币 ID 的供应量限制为 1,该 ID 就可以作为 NFT 使用。

什么是半同质化 ERC-1155 代币?

它是一种在某种情境下具有可互换单位,但之后可能获得不同含义、状态或用途的代币。

一个 ERC-1155 合约可以包含多种资产吗?

可以。一个合约可以管理许多拥有不同供应量、元数据和用途的 ID。

balanceOf 会返回什么?

它会返回某个账户持有的指定 ERC-1155 代币 ID 的数量。

balanceOfBatch 有什么作用?

它可以通过一次调用返回多个账户与代币 ID 组合的余额。

什么是 safeBatchTransferFrom?

它可以在一笔交易中转移多个代币 ID 和数量,并在接收方为合约时执行接收方检查。

setApprovalForAll 有什么作用?

它会授权操作员管理调用方在一个 ERC-1155 合约中持有的所有代币 ID。

用户可以只授权一个代币 ID 吗?

核心授权函数不支持,但可选扩展或自定义合约可以提供范围更窄的权限。

ERC-1155 操作员授权会过期吗?

不会。标准授权会一直有效,直到被撤销,或自定义合约逻辑改变其效果。

ERC-1155 要求进行安全接收方检查吗?

是。转账给智能合约的标准操作必须遵循相应的单笔或批量接收方回调规则。

ERC-1155 接收方可以拒绝代币吗?

可以。接收方可以回滚或返回错误的接受值,使转账失败。

ERC-1155 支持元数据吗?

支持。它定义了可选的元数据 URI 扩展,接口 ID 为

0x0e89341c
。

每个 ERC-1155 代币都有名称和符号吗?

没有。核心标准不要求链上提供名称或符号函数。

ERC-1155 定义 decimals 吗?

不定义。如果需要,应用必须从元数据或项目专用逻辑中获取计量单位信息。

ERC-1155 包含 totalSupply 吗?

不包含。查询总供应量需要索引事件,或使用可选的供应量扩展。

ERC-1155 元数据可以更改吗?

可以。如果合约或外部存储系统允许更新,元数据就可能更改。

ERC-1155 会强制执行版税吗?

不会。版税信息需要单独的标准,而且核心代币合约不会自动强制支付所报告的版税。

ERC-1155 批量转账可以节省 Gas 吗?

可以。在一笔交易中转移多个代币 ID,可能减少重复交易开销。

ERC-1155 回调会导致重入吗?

会。接收方回调会执行外部代码,并可能在原交易完成前调用其他合约函数。

符合 ERC-1155 标准能证明代币安全吗?

不能。兼容合约仍可能存在不安全代码、权限过大、元数据可变、供应量控制薄弱或欺诈性声明。

总结

ERC-1155 是 Ethereum 用于通过一个智能合约管理多种代币的标准。

每个代币 ID 都可以代表同质化资产、独特 NFT、半同质化道具,或其他基于余额的加密资产。

该标准定义了单笔和批量余额查询、安全转账、面向整个系列的操作员授权、接收方回调、事件和接口检测。

需要同时查询或转移多个代币 ID 时,批量操作可以减少交易开销。

强制接收方回调可以减少代币误转至不兼容合约的情况,但也会带来外部调用和重入风险。

核心标准不定义公开铸造、销毁、总供应量、decimals、版税或永久性元数据。

这些属性取决于可选扩展和具体合约实现。

用户应核实网络、合约地址、代币 ID、供应量控制、操作员授权、元数据系统和管理员权限。

开发者应使用持续维护的实现、发出所有必需事件、保护接收方回调、限制批次复杂度,并测试所有授权路径。

ERC-1155 提供灵活高效的多代币基础设施,但技术兼容性并不能保证真实性、稀缺性、金融价值或智能合约安全。

您可能也喜欢

反恐融资(CTF)

反恐怖主义融资(CTF)是指旨在发现、预防和打击恐怖主义活动资金支持的法律、法规和活动。这包括监控和监管资金流动、在金融机构内部实施合规计划,以及执行旨在遏制恐怖主义融资的国际制裁和法规。 反恐融资在各领域的重要性 反恐融资在包括银行业、科技和国际贸易在内的各个领域都至关重要。在金融领域,强而有力的反恐融资措施可确保银行和其他金融机构不会被恐怖组织利用为其活动提供资金。这不仅有助于维护金融体系的完
2025/12/23 18:42

框架

在专业情境中,「框架」指的是一套结构化的指南、工具或实践,旨在支援专案、应用程式或系统的开发和实施。它提供了一种标准化的方法来解决复杂问题或实现特定目标,通常包含可根据具体需求进行调整和扩展的预先建置元件。 框架的关键特征 框架在软体开发、专案管理和数位行销等各个领域都至关重要。例如,在软体开发中,Angular、React 和 Django 等框架提供了开发人员用来高效建立高品质应用程式的程式库
2025/12/23 18:42

波动性爆发

「波动性爆发」是指金融市场、资产或指数的波动性突然显著增加,通常由不可预见的事件或市场情绪变化所驱动。这种突如其来的增加会导致价格大幅波动和交易量激增,从而影响投资者和交易者的风险和机会。 了解波动性爆发 波动性是衡量特定证券或市场指数收益分散程度的统计指标,显示资产价格在特定期间内的波动幅度。当这种波动超出正常水平时,就会发生波动性爆发,这通常是对意外新闻或经济事件的反应。这些事件可能包括地缘政
2025/12/23 18:42
回调还是机会?
回调还是机会?回调还是机会?
一边爆仓,一边扫货——24亿ETF资金在赌什么?