bns について
bns は、Bitcoin Name System(BNS)のドメイン、特に .btc 名の照会と登録を行うコマンドラインスキルです。読み取りはウォレット不要で、書き込みにはロック解除済みウォレットが必要です。.btc 名は1回のトランザクションで登録できます。
主な機能
- 01名前の解決と詳細情報の取得
- 02アドレスから名前を逆引き
- 03空き状況と登録価格の確認
- 04アドレスが所有するドメインの一覧
- 051段階または2段階での登録
活用シーン
- 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 スキル
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
1 回のトランザクションで 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 ドメイン名を先行予約します(2 段階登録のステップ 1)。claim-fast を利用できない場合にのみ使用してください。返されたソルトを保存してください。register のステップで必要になります。ロック解除済みのウォレットが必要です。
bun run bns/bns.ts preorder --name <name> [--salt <hex>]
オプション:
--name(必須)— 先行予約する BNS 名--salt(任意)— 先行予約ハッシュに使用する 16 進数のソルト(省略すると自動生成)
出力:
{
"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 段階登録のステップ 2)。preorder のステップで使用したものと同じソルトを指定する必要があります。ロック解除済みのウォレットが必要です。
bun run bns/bns.ts register --name <name> --salt <hex>
オプション:
--name(必須)— 登録する BNS 名(先行予約した名前と一致する必要があります)--salt(必須)— preorder のステップで使用した 16 進数のソルト
出力:
{
"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を推奨します。待機期間なしで 1 回のトランザクションで登録できます - 2 段階の preorder/register フローは、.btc 以外の名前空間、または claim-fast を利用できない場合にのみ使用してください
- .btc 名には BNS V2 を使用し、その他の名前空間ではフォールバックとして BNS V1 を使用します