关于 bns
bns 是用于管理 Bitcoin Name System(BNS).btc 域名的命令行技能,提供查询及注册操作。读取无需钱包,写入需解锁钱包;.btc 优先使用单笔交易注册。
主要功能
- 01解析域名并查询详细信息
- 02反向查询地址持有的域名
- 03检查可用性及注册价格
- 04列出地址拥有的域名
- 05单笔交易注册或分步注册
适用场景
- 01查询 .btc 域名对应的 Stacks 地址
- 02检查名称是否可注册及其价格
- 03查看某地址持有的 BNS 域名
- 04使用钱包注册 BNS 域名
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aibtcdev/ skills --skill bns安装后在 Claude Code 中输入/bns确认已加载。
附带文件AGENT.mdbns.ts
详细介绍
BNS Skill
通过 BNS V2(推荐用于 .btc)并在必要时回退到 BNS V1,为 .btc 域名提供 Bitcoin Name System(BNS)操作。读取操作无需钱包。写入操作(claim-fast、preorder、register)需要已解锁的钱包。
用法
bun run bns/bns.ts <subcommand> [options]
子命令
lookup
将 .btc 域名解析为 Stacks 地址。
bun run bns/bns.ts lookup --name <name>
选项:
--name(必填)— 要查询的 BNS 名称(例如,alice.btc或alice)
输出:
{
"name": "alice.btc",
"found": true,
"address": "SP1...",
"namespace": "btc",
"expireBlock": 900000,
"network": "mainnet"
}
reverse-lookup
获取某个地址拥有的所有 BNS 域名。
bun run bns/bns.ts reverse-lookup [--address <addr>]
选项:
--address(可选)— 要查询的 Stacks 地址(若省略,则使用当前钱包)
输出:
{
"address": "SP1...",
"network": "mainnet",
"namesCount": 2,
"names": ["alice.btc", "myname.btc"]
}
get-info
获取 BNS 域名的详细信息。
bun run bns/bns.ts get-info --name <name>
选项:
--name(必填)— 要查询的 BNS 名称(例如,alice.btc)
输出:
{
"network": "mainnet",
"found": true,
"name": "alice.btc",
"namespace": "btc",
"address": "SP1...",
"expireBlock": 900000,
"gracePeriod": 0,
"status": "active"
}
check-availability
检查 BNS 域名是否可注册。
bun run bns/bns.ts check-availability --name <name>
选项:
--name(必填)— 要检查的 BNS 名称(例如,alice或alice.btc)
输出:
{
"name": "alice.btc",
"available": true,
"network": "mainnet"
}
get-price
获取 BNS 域名的注册价格,单位为 STX。
bun run bns/bns.ts get-price --name <name>
选项:
--name(必填)— 要检查的 BNS 名称(例如,alice或alice.btc)
输出:
{
"name": "alice.btc",
"network": "mainnet",
"price": {
"units": "ustx",
"microStx": "2000000",
"stx": "2 STX"
}
}
list-user-domains
列出某个地址拥有的所有 BNS 域名。
bun run bns/bns.ts list-user-domains [--address <addr>]
选项:
--address(可选)— 要检查的 Stacks 地址(若省略,则使用当前钱包)
输出:
{
"address": "SP1...",
"network": "mainnet",
"domainsCount": 1,
"domains": ["alice.btc"]
}
claim-fast
通过单笔交易注册 BNS 域名(推荐用于 .btc 名称)。以 STX 销毁该名称的价格,并原子化地铸造 BNS NFT。需要已解锁的钱包。
bun run bns/bns.ts claim-fast --name <name> [--send-to <addr>]
选项:
--name(必填)— 要认领的 BNS 名称(例如,myname或myname.btc)--send-to(可选)— 接收方地址(默认为钱包自身地址)
输出:
{
"success": true,
"method": "name-claim-fast (single transaction)",
"name": "myname.btc",
"sendTo": "SP1...",
"txid": "0xabc...",
"network": "mainnet",
"price": { "microStx": "2000000", "stx": "2 STX" },
"message": "Name \"myname.btc\" claimed! Once confirmed (~10 min), it will be registered.",
"explorerUrl": "https://explorer.hiro.so/txid/0xabc..."
}
preorder
预订 BNS 域名(两步注册的第 1 步)。仅在无法使用 claim-fast 时使用。请保存返回的 salt,注册步骤需要用到它。需要已解锁的钱包。
bun run bns/bns.ts preorder --name <name> [--salt <hex>]
选项:
--name(必填)— 要预订的 BNS 名称--salt(可选)— 用于预订哈希的十六进制 salt(若省略则自动生成)
输出:
{
"success": true,
"step": "1 of 2 (preorder)",
"name": "myname.btc",
"salt": "a1b2c3...",
"txid": "0xdef...",
"network": "mainnet",
"nextStep": "Wait ~10 minutes, then call register with the same name and salt."
}
register
预订得到确认后注册 BNS 域名(两步注册的第 2 步)。必须使用预订步骤中的同一个 salt。需要已解锁的钱包。
bun run bns/bns.ts register --name <name> --salt <hex>
选项:
--name(必填)— 要注册的 BNS 名称(必须与预订的名称一致)--salt(必填)— 预订步骤中使用的十六进制 salt
输出:
{
"success": true,
"step": "2 of 2 (register)",
"name": "myname.btc",
"txid": "0xghi...",
"network": "mainnet",
"message": "Registration submitted! Once confirmed, \"myname.btc\" will be registered.",
"explorerUrl": "https://explorer.hiro.so/txid/0xghi..."
}
注意事项
- 读取操作(lookup、reverse-lookup、get-info、check-availability、get-price、list-user-domains)无需钱包
- 写入操作(claim-fast、preorder、register)需要已解锁的钱包(
bun run wallet/wallet.ts unlock) - 注册 .btc 名称时,优先使用
claim-fast,它可通过单笔交易完成注册,无需等待 - 仅对非 .btc 命名空间,或无法使用 claim-fast 时,才使用两步 preorder/register 流程
- .btc 名称使用 BNS V2;其他命名空间则回退使用 BNS V1
评论
支持 Markdown