erc20、erc721、erc1155 三种资产标识怎么拼:CAIP-21、22、29 的三段式读法 图 1
erc20、erc721、erc1155 三种资产标识怎么拼:CAIP-21、22、29 的三段式读法 · 图 1

一串 eip155:1/erc20:0x6b17…1d0f 出现在钱包的权限弹窗和跨链接入文档里,读它只需要三小步:先认链,再认资产类型,最后认合约与编号。撑起这套写法的是一族”资产命名空间说明书”:CAIP-21 管 ERC20、CAIP-22 管 ERC721、CAIP-29 管 ERC1155,三兄弟都挂在总规范 CAIP-19(CAIP-19资产标识如何避免跨链混淆?)下面。前两份 2020 年 6 月 23 日起草,现状态 Superseded,治理文本已并入 ChainAgnostic/namespaces 仓库的 eip155 目录;CAIP-29 起草于 2021 年 3 月 22 日,状态仍是 Draft——三份文档的规范内容都可读可用。

骨架:链号加斜杠再加命名空间

三种资产标识共用同一副骨架:前半段是 CAIP-2链标识应该怎么解析? 定义的链标识(如 eip155:1),斜杠后面接资产命名空间和该命名空间内的标识。资产命名空间的名字直接取自对应合约标准——erc20、erc721、erc1155——所以这套写法自带”合约标准”这层语义:erc721: 出现的地方,你面对的就是 NFT 合约。规范同时限定这三种命名空间都落在 eip155 链命名空间内(见 CAIP-3),意思是”这套资产门牌只给 EVM 系链用”。原生 ETH 不走这套,原生币的写法走另一条 slip44 编号线(一条链的原生币怎么写进资产标识?CAIP-20 用 slip44 编号的写法与读法)。

erc20、erc721、erc1155 三种资产标识怎么拼:CAIP-21、22、29 的三段式读法 图 2
erc20、erc721、erc1155 三种资产标识怎么拼:CAIP-21、22、29 的三段式读法 · 图 2

ERC20:合约地址就是资产身份

CAIP-21 的资产引用定义只有一句话:写该代币合约的地址,取当前链范围内的形态。理由也直给:合约地址在同一链号范围内对每一种 ERC20 代币天然唯一。官方测试向量给的是 DAI,写作 eip155:1/erc20:0x6b175474e89094c44da98b954eedeac495271d0f,以及 REQ 代币 eip155:1/erc20:0x8f8221afbb33998d8584a2b05749ba73c37a938a。这里藏着本栏目反复强调的一条纪律的同源变体:符号名(DAI、USDT)在标识体系里根本没有位置,地址才是身份——同名不同合约是两条不同的资产记录。链段前缀也绝不能省,同一份合约地址在另一条链上是另一个东西,这正是 同一个地址,不同的世界:多条EVM链余额为何各自独立,转资产前查什么 处理过的”同址不同世界”问题。

ERC721:多出来的编号段

CAIP-22 的写法是两级标识:合约地址定资产(collection 层),斜杠后再挂一个 Token ID 定到具体一枚 NFT。Token ID 按 ERC-721 规范在当前 chain_id 内取。这套两级结构在授权场景最实用:你给某个合约开的 NFT 授权清单、区块浏览器的代币转移记录、钱包里”这一枚”的归属确认,都按同一对坐标读写。看到只有合约地址没有编号的授权记录,先意识到语义变宽了——从”一枚”变成”一类”。编号是链上整数,跨链工具对它的字符串化、前导零处理各有约定,逐字符核对时重点核对编号位数是否被截短。

ERC1155:半同质资产也走编号

CAIP-29 处理半同质(可分份、可成批)的 ERC1155:资产引用同样是合约地址,Token ID 按 ERC1155 定义在当前链内取——和 721 一样两级,但同一个编号可以对应多个份额。规范例子用的就是 Matt Condon 那批贴纸合约 eip155:1/erc1155:0x28959Cf125ccB051E70711D0924a62FB28EAF186,具体某款贴纸的资产在其后接 /0。Rationale 一行点明了家族关系:ERC1155 合约可以同时代表非同质、半同质和同质资产,具体属于哪种去看它的 721 篇(即 CAIP-22 那套)。实操上这条的意义在于:同一份 ERC1155 标识在不同应用里可能对应”一枚”也可能对应”一筐”,判断权益规模别只看标识。

三兄弟的治理状态差异也值得读

CAIP-21、22 在 CAIPs 主干已标 Superseded,正文并入 namespaces 仓库;CAIP-29 仍挂 Draft。同一件事的三个版本处于三种状态,说明这套规范的演进方式是”骨架稳定、门牌逐步搬家”(比特币系链的链身份不是一个数字:CAIP-4 用创世块哈希前 32 位定链 的 CAIP-4 经历过同样的搬家)。给接入者的含义:引用时不要只写”CAIP-21”就完事,应连同当前治理位置一起归档;钱包界面展示给用户的资产标识,应做前缀大小写与字符集校验——eip155、erc20、erc721 这些命名空间段是全小写,十六进制合约地址遵循 地址的大小写不是随便写的:EIP-55 校验和怎么帮你挡住剪贴板劫持 处理过的大小写校验约定。

拿一条真实标识练手:五问读完

给一条 eip155:10/erc721:0x… 形式的标识做五问。一问链段:链段是十进制数字但不是 1,说明它不是以太坊主网(数字本身按 CAIP-2链标识应该怎么解析? 的规矩解析)——同一份合约代码在两条链上是两份互不相干的资产记录。二问命名空间段:erc721: 说明这是一枚 NFT,不是可分份的 ERC1155,也不是同质代币。三问合约地址段:逐字符与区块浏览器核对,注意大小写校验形态(EIP-55 那套)被改动即报警。四问 Token ID 段在不在:不在则代表”这一类”而非”这一枚”,授权语义立刻变宽。五问来源:这串标识是从钱包弹窗、浏览器地址栏还是聊天截图里来的——后两者都可能被人为改写过个别字符。五问走完,一串标识就从装饰文字变成了可审计的坐标。这套坐标的另一半用途是机器可读:钱包间同步资产清单、对账脚本按标识聚合多链持仓(一份 JSON 说清一个资产在哪几条链:CAIP-390 的元数据字段 处理过跨链资产元数据怎么描述同一资产在多链分布),都建立在这三段式写法之上。

风险提示:本文是资产标识机制科普,不构成投资建议;核对代币时请以链上合约地址为唯一身份,符号名与图标均可仿冒,大额操作前先以小额走通查询与转账两条路径。