XLS-20 的原生 NFT:XRP Ledger 上不用写合约,藏品长什么样 图 1
XLS-20 的原生 NFT:XRP Ledger 上不用写合约,藏品长什么样 · 图 1

XLS-20 的原生 NFT:XRP Ledger 上不用写合约,藏品长什么样

没有合约地址,藏品仍然唯一

在以太坊上聊 NFT,第一句通常是“合约地址是什么”。XRP Ledger 不是这个模型:NFT 是账本自带的一类对象,名为 NFToken,由协议代码直接管理,不需要谁先部署一份合约。规范编号是 XLS-20,对应的主网功能开关(amendment)NonFungibleTokensV1_1 在 2022 年 10 月 31 日生效,相关的第三个修正开关 fixRemoveNFTokenAutoTrustLine 更早两天生效,这些时间点在 XRPL 官方博客里可以查到。

对用户的直观影响是:你在浏览器里看到的“集合”,背后不是一个可读写状态的合约,而是一串参数与标识。铸一枚藏品发的是 NFTokenMint 交易,销毁发 NFTokenBurn,挂单发 NFTokenCreateOffer,成交靠对方 NFTokenAcceptOffer。每一步都是标准交易类型,而不是调用某段第三方代码。

XLS-20 的原生 NFT:XRP Ledger 上不用写合约,藏品长什么样 图 2
XLS-20 的原生 NFT:XRP Ledger 上不用写合约,藏品长什么样 · 图 2

一枚 NFT 的身份证由五段拼成

按规范,NFTokenID 里打包了五部分:16 位开关、16 位转移费、发行方 160 位账户标识、发行方自选的 32 位 taxon,以及自动递增的 32 位序号。taxon 相当于“系列号”,同一个发行方可以让许多枚 NFT 共用一个 taxon,为了让藏品均匀分布在账本页面上,规范用序号做种子对 taxon 做了一次线性同余打散,参数固定为 m = 384160001、c = 2459。也就是说,你在 ID 里看到的那串 taxon 是打散后的值,还原后才是发行方原始选择的那个数字。

藏品不单独存在,而是装在 NFTokenPage 里,同一账户持有的 NFT 会被组织进若干页面。这也解释了为什么查询接口是按账户分页列 NFT,而不是按“合约”列。

几个开关决定了你的权利边界

lsfBurnable 决定发行方(或它授权的对象)能不能销毁你持有的这枚;持有者自己任何时候都能烧。lsfTransferable 决定能不能在用户之间转手,关掉时只能在发行方与持有者之间移动。lsfOnlyXRP 限定只能以 XRP 计价挂单。lsfMutable 打开时,发行方可以用 NFTokenModify 改 URI 字段。转移费则由发行方设定,规范文档给出的示例里出现过 3.14% 这种费率写法,它是写在 NFT 属性里的声明,不是链上强制的分账合同。

这里最容易被误读的是 URI:XRPL 的 NFT 刻意不带任意数据字段,内容靠 URI 指向外部,Hash 字段则用于校验不可变内容。换句话说,“链上确权、链下存储”在这个模型里是协议级的默认设计,而不是项目方的偷懒选择。

挂单是账本对象,不是订单哈希

在以太坊市场,挂单常常体现为一份可被任何人提交的签名订单。XRPL 上挂单是一个真实的账本条目 NFTokenOffer,由持有者或买方用 NFTokenCreateOffer 创建,被接受或取消后条目就从账本消失。这个差别有实际后果:不存在“同一份签名反复被提交”的空间,也不存在依赖外部撮合合约才有的复杂回调,但同时也意味着订单的定制逻辑能力更弱,很多合约型市场里的组合挂单玩法在这里根本没有对应物。

它能说明什么,不能说明什么

原生模型能保证的是记账层面的严谨:唯一性、归属、转移规则由协议统一实现,不会有“这份合约写错了”的风险,也不会出现授权(approve)这类需要用户撤销的权限。它不能保证的是作品与现实权利:URI 指向的图片会不会失效、发行方有没有版权授权、taxon 相同是不是就代表官方系列,这些问题都要看发行方声明和条款,跟链是原生还是合约无关。

新手常见的三个误区值得记住:第一,看到“没有合约地址”就以为不可验证,实际上交易类型、账本对象和开关都能逐项核对;第二,把转移费当成必收到手的版税,能不能真正到账取决于交易市场是否执行这一字段;第三,把 taxon 相同当成官方性证明,taxon 只是发行方自选的整数,认发行方账户而不是认编号。

谁适合关注这条链

如果读者习惯的是“先查合约再谈其他”的以太坊式核验,XRPL 的 NFT 是一面很好的镜子:它把“确权”从合约工程变成协议事实,也把“灵活性”明确地留在了协议之外。理解 taxon、转移费与 offer 对象这三件东西,基本就能回答这张链上 90% 的核验问题;剩下 10%——作品授权、内容存续、发行方信誉——在所有链上一样存在,不会因为“原生”而自动解决。

风险提示:本文只解释技术机制与操作边界,不构成投资建议,也不推荐任何项目或平台。链上规则可能随版本升级变化,判断以官方规范文本与链上实际代码为准。