ERC-4907 与 ERC-7507:NFT 租赁和多人订阅是两套接口
先分清两种“把 NFT 借出去”
同样是不卖断、让别人暂时用你的 NFT,实际需求分两类。第一类是独占:这段时间只有租客能用,比如游戏装备、域名、设备等实物或独占权益的出租。第二类是非独占:一份数字音乐、图片、IP 素材可以同时授权给很多使用者,各用各的、到期时间还不一样。以太坊生态里对应这两类的,分别是 ERC-4907 和 ERC-7507。
两者的标准状态不同:ERC-4907 在标准仓库中标记为 Final(最终),ERC-7507 目前标记为 Draft(草案)。这直接影响采用广度——前者有公开的租赁平台落地实践,后者更多停留在接口提案阶段,遇到声称支持的项目要逐项验证。

ERC-4907:一个使用人槽位
ERC-4907 的思路非常克制:给每枚 ERC-721 代币额外维护一个“使用人”字段。接口包括:
setUser(tokenId, user, expires):持有人或授权者把使用人设置为某地址,并给出uint64的到期时间戳。到期后使用人自动清空,无需额外交易。userOf(tokenId):查询当前使用人地址。userExpires(tokenId):查询使用权限的到期时间。- 事件
UpdateUser:使用人或到期时间变化时发出。
关键限制是“单槽位”:同一时刻一枚代币只有一个使用人。到期或再次 setUser 时,旧使用人直接被替换。标准还要求合约用 ERC-165 声明接口标识,方便钱包和市场识别。对租客来说,链上查询 userOf 就能确认自己是不是当前登记的使用人,出租方也很难“一鱼两吃”——当然,前提是租赁应用真的按这个接口执行权限。
ERC-7507:多用户、多到期时间
ERC-7507 面向 IP 素材授权这类可共享场景,接口只有三行核心:
setUser(tokenId, user, expires):为某个地址设置使用截止时间;同一枚代币可以为不同地址分别设置。userExpires(tokenId, user):查询某个地址对某枚代币的使用截止时间。- 事件
UpdateUser:带tokenId、user和expires三个字段。
注意查询函数的参数结构不同:4907 是“代币查使用人”,7507 是“代币加用户查到期时间”,因为后者本来就没有唯一使用人的概念。持有人可以持续给新订阅者续期,互不影响。
怎么选、怎么查
如果你是出租方:独占型资产用 4907 语义更清晰,链上永远只有一个租客记录;可复制的内容授权考虑 7507 语义,但要意识到它是草案状态,支持它的合约和应用都可能很少,多数情况下项目方会用自定合约实现同等逻辑。
如果你是承租方或被授权方,交易前把这三件事查一遍:
- 用
supportsInterface或直接看合约源码,确认它实现的是哪一套接口,避免把“项目方自研字段”当成标准接口。 - 租期内调用
userOf或userExpires,确认你的地址确实登记在册、时间无误。 - 想清楚“使用权”在链下意味着什么:合约只登记谁在什么时间前能用,能不能真的访问内容、进入社群、播放素材,取决于发行方的兑现系统。
两份标准都不处理租金结算和押金,资金流程由平台自己实现,相关智能合约的风险需要单独评估。还值得留意一个识别方法:4907 把使用人做成链上槽位,任何人在合约读取页调用 userOf 就能看到当前租户是谁,这笔登记无法被项目方悄悄抹掉;7507 作为草案没有形成被广泛使用的工具链,遇到自称支持的项目,最直接的验证是调用它的 userExpires 并传入你自己的地址,观察返回值是否随用户地址变化——对所有地址都返回零或干脆不存在的实现,多半只是把功能写在文档里。
风险提示:NFT 租赁与授权涉及合约漏洞、平台违约与规则理解偏差等风险,本文仅为机制对比说明,不构成任何投资建议。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。