用 ENS 名字当头像:avatar 记录怎么解析,NFT 头像为什么要核对 ownerOf
场景
给钱包地址配头像,主流做法是 ENS 的 avatar 文本记录:键是 avatar,值是一条 URI。ENS 官方文档把头像记录定义成“以 avatar 为键、以 URI 为值的 text record,附带若干 URI 方案的支持规则”。显示端拿到的不是一张固定图片,而是一条“去哪儿取图”的指令,不同方案取回的东西差别很大。

官方支持的四种方案
按官方文档列出的客户端应支持的 URI 方案:
http(s):普通网络链接,库多半直接把结果返回给你。ipfs:内容哈希,库可能替你走公共网关取图。data:内联数据的 data URI,直接返回。eip155:EIP-155 格式的资产标识符,指向以太坊系链上的 NFT。这种写法手工解析比较绕,多数库会替你解开并返回图。
文档同时点名了两个官方不确保支持的常见写法:ethereum: 和 bzz:,不同库的处理可能不同。
NFT 头像的那道所有权核对
eip155 方案值得单独讲。它的结构把链号、合约地址、代币编号都编进 URI。官方文档写明:EIP-155 NFT 头像要求这件 NFT 由 ENS 名字解析出的钱包地址持有,核验方式是调用 NFT 合约的 ownerOf 比对地址。这条规则挡住了“盗图当头像”——你可以写别人的 NFT 当头像的 URI,但只要你的地址不持有它,按规则办事的客户端就不会显示。
这条规则也有时效:头像 NFT 一旦卖出手,按 ownerOf 校验的显示端就不该再给你显示那张图,除非你换了记录。
读一个名字的头像时看什么
第一步解析名字拿到 avatar 文本记录原文;第二步判断方案:http 的内容随时会换,可信度跟着域名走;ipfs 的内容哈希固定,但能否取到取决于有没有节点在服务这份数据;data 内联稳定但体积受限;eip155 链上溯源最清楚,代价是显示端必须支持这套流程并真的做了 ownerOf 校验。
动手设置时的检查清单
设置 NFT 头像前:确认 NFT 在正使用的那把私钥的地址名下;写记录后在至少两个独立解析工具里看同一结果;若你持有多个地址,头像记录写在哪个名字上、名字反解指向哪个地址,两件事分开确认。
一个补充说明:ENS 域名本身就是一枚 ERC-721(Ethereum 名字是 .eth 注册表的 NFT),把名字、头像记录与 NFT 头像串起来看,头像就只是“名字 NFT 的一条文本记录而已”,记录可改、名字可转手,头像随之漂移——这不是故障,是这些层各自的规则。
头像记录排障手册
把常见显示问题按方案拆开看。记录本身缺失:解析工具查 avatar 文本返回空,一切显示端都不该有图,这是配置问题不是显示问题。http 方案:内容随服务器变,图挂了、被换了都发生在链下,先确认 URL 当前可访问。ipfs 方案:哈希固定内容就固定,但多数库走公共网关,网关限速或没人 pin 都会导致取不到图——这时图“在但看不见”,换个网关或自建节点验证是标准排查。data 方案:图像字节直接内联在记录里,体积受文本记录大小限制,通常只放小图。eip155 方案:最常见的一类“昨天还有图今天没了”,原因多半是 NFT 被卖掉了——ownerOf 比对不再通过,按规则办事的客户端立刻停止显示,这类“头像消失”其实忠实地反映了持仓变化。
再补一句操作层面的:ENS 官方文档提示,若你手上只有地址,先通过反查拿到该地址的主名字(primary name),再解析主名字的记录——头像永远挂在名字上,不直接挂在地址上。同一条提醒反过来也成立:名字转手后,头像记录跟着名字走,前主人的图不会因为私钥换了就自动消失在新主人的名字上,两边都要检查。
风险提示:本文为身份与域名机制科普,不构成任何投资建议;头像记录与 NFT 归属以链上解析和合约查询为准。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。