SuiNS 名字转账前检查:NFT 持有者不等于收款地址
链小知 · 进阶 · 核验 · 依官方文档整理
对照名称、到期时间和 target address,再检查 default name;旧 JSON-RPC 调用失败不能直接判定名字不存在。
开始前准备
- 准备完整 .sui 名称、对方通过独立渠道给出的预期完整地址及查询网络。
- 普通读者使用支持 SuiNS 的官方入口/钱包显示;开发者准备当前 Sui 客户端或 GraphQL 查询入口,无需提供私钥。
1. 检查名称存在且未过期
在 suins.io 查完整名称,核对记录和到期状态。名称存在并不表示仍能解析,也不保证已设目标;开发者需要完整记录时按当前文档使用 nameRecord 或 SuiNS getNameRecord。
检查结果:记录名称、网络、到期与读取时间;未知或过期时暂停使用该名称。
2. 读取 target 并与预期地址比较
查 name-to-address 的目标地址,与独立取得的预期地址完整比较。持有名称 NFT 的账户有修改能力,却可以把名称指向任意地址,因此不能使用 NFT owner 作为收款地址。开发者可按当前客户端 resolveNameServiceAddress 或 GraphQL address 查询读取目标。
检查结果:目标地址存在且与预期完整一致;owner、target 和预期地址分别记录。
3. 区分默认显示名称和收款解析
default name 用于反向显示,不是某地址全部名称的列表。target 改变会清除原 default,新目标也不会自动继承;若显示名称消失,先核对 target 变动,不直接判成注册丢失。GraphQL 当前字段为 defaultNameRecord。
检查结果:记录正向 target 与反向 default,各自含义清楚,空 default 未被判成没有注册。
4. 解析失败时先核对客户端和网络
区分不存在、过期、没有 target 和错误网络。Foundation Mainnet 全节点已停用旧 JSON-RPC,仍调 suix_resolveNameServiceAddress 的代码需迁移;按当前 GraphQL 文档核对,不仅更换名字拼写。文档部分示例有构建缺失提示,不复制缺失代码当可运行样例。
检查结果:失败原因能对应名称记录或客户端环境;HTTP/接口错误没有被转成名称不存在。
5. 需要改绑定时核对控制权限
名称持有者可按用户文档的 My Names/View → Link To Wallet Address → Set Linked Address 填入完整目标并预览。Apply 后的钱包签名会修改链上记录,应先确认自己控制该名称、目标地址正确和当前费用;已有修改交易则重新做正向与反向解析。
检查结果:修改前有权限和地址依据;修改完成需要执行记录及重新解析支持。
怎样确认完成
- 保存名称、网络、到期、target、预期地址比较与 default 状态。
- 修改名称只有交易执行和重新解析一致才算完成;本文仅为文档核验。
常见错误与边界
- 名称 NFT 的 owner 可能不是收款 target。
- 过期、未绑定、反向默认名为空和接口失败不能混为一类。
- 可读名字不是联系人身份认证,还需独立核对预期地址。