操作
注册名称
名称注册通过调用相应的 BNSv2 合约函数来完成。调用者将成为该名称的所有者。
高级流程:
检查可用性
提交注册交易
支付所需的 STX 费用
等待确认
名称被分配给调用者主体
路径 1 — 预定 + 注册(安全,可防止抢跑):
对完全限定名称生成带盐哈希:hash160(name.namespace.salt)
提交名称预定,附带哈希和要销毁的 STX
至少等待 1 个区块
提交名称注册,使用实际名称、命名空间和盐值
合约验证哈希匹配,销毁 STX,并向调用者铸造 NFT
路径 2 — 快速认领(单笔交易,易受抢跑攻击):
提交 name-claim-fast,包含名称、命名空间和接收者
一步销毁 STX,并立即铸造 NFT
风险:名称在确认前会在内存池中可见,因此可能被抢先截获。对于托管命名空间:使用
mng-name-preorder+mng-name-register(不销毁 STX,由管理员控制定价)。
更新记录
一旦名称被拥有,所有者即可通过合约调用更新记录。更新通过 zonefile-resolver 合约经由 update-zonefile(name, namespace, new-zonefile)进行。调用者必须是名称所有者或命名空间管理员(适用于托管命名空间)。请注意 8KB 限制。
示例记录更新可能包括:
设置 Stacks 地址
更新个人资料元数据
添加自定义键值对
只有当前所有者可以修改记录。
转移名称
名称是可转让的数字资产。 transfer(id, sender, recipient) 在 BNS-V2 合约上。对于托管命名空间,请使用 mng-transfer(id, sender, recipient),但前提是管理员转移尚未通过以下方式关闭: turn-off-manager-transfers .
所有者可以:
将所有权转移给另一个主体
在其他合约中使用名称
将名称集成到市场或身份系统中
由于所有权原生存在于 Clarity 中,转移是无需信任的。
解析名称
解析涉及查询 BNSv2 合约中某个名称存储的记录。
resolve-name(name, namespace) 在 zonefile-resolver
相应的 BNSv2 SDK 函数: resolveNameZonefile(), getNameInfo(), getPrimaryName().
应用可以:
通过 RPC 直接调用合约
使用 SDK 辅助函数
为方便起见使用索引器
解析是确定性的,不依赖中心化服务器。
定价
名称价格根据以下因素计算:
名称长度
是否包含元音
是否包含非字母字符
命名空间特定的定价函数
对于托管命名空间,定价将由命名空间管理员合约直接处理
NFT 集成
每个名称都被铸造为 NFT,从而可以:
轻松转移所有权
与 NFT 市场及其他应用集成
续期
未托管命名空间中的名称在生命周期区块后过期。所有者在过期后有 5,000 个区块的宽限期(约 34 天)可通过以下方式续期: name-renewal(namespace, name).
续期会根据当前名称价格销毁 STX。
如果未在宽限期内续期,该名称将再次对任何人开放注册。
托管命名空间中的名称不会过期(renewal-height = 0)。
市场
BNSv2 具有原生市场:
list-in-ustx(id, price, commission-trait),将名称挂牌出售unlist-in-ustx(id),取消挂牌buy-in-ustx(id, commission-trait),购买已挂牌名称。佣金通过 SIP-009 佣金 trait 处理。对于托管命名空间,管理员合约必须封装这些函数。
设置主名称
set-primary-name(id)在 BNS-V2 上允许所有者将其某个名称指定为其主身份。钱包和应用会使用它进行显示。
每个地址只能有一个主名称。
最后更新于
这有帮助吗?