操作
注册名称
名称注册通过调用相应的 BNSv2 合约函数来执行。调用者将成为该名称的所有者。
高级流程:
检查可用性
提交注册交易
支付所需的 STX 费用
等待确认
名称分配给调用者主体(principal)
路径 1 — 预下单 + 注册(安全,防止抢注):
生成完全限定名称的加盐哈希:hash160(name.namespace.salt)
提交包含哈希和要销毁的 STX 的名称预下单(name-preorder)
至少等待 1 个区块
提交名称注册(name-register),包含实际名称、命名空间和盐值
合约验证哈希匹配,销毁 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 的原生特性,转移是无需信任的(trustless)。
解析名称
解析涉及查询 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 的 commission trait 处理。
对于托管命名空间,管理者合约必须封装这些函数。
设置主要名称set-primary-name(id)在 BNS-V2 上允许所有者将其某个名称指定为主要身份。
这是钱包和应用用于显示的名称。只有每个地址可以有一个主要名称。
最后更新于
这有帮助吗?