关于 runes
runes 是用于查询 Bitcoin Runes 余额和 UTXO、执行转账的技能。它通过 Unisat 索引,并用 mempool.space 估算手续费和广播交易;显式设置找零指针以保护剩余 Runes。
主要功能
- 01按地址查询 Runes 余额
- 02按 Rune ID 列出 UTXO
- 03向收款地址转账 Runes
- 04使用显式 Runestone 找零指针
- 05支持主网和测试网
适用场景
- 01查看地址持有的 Runes
- 02查找特定 Rune 的 UTXO
- 03转账并保留剩余 Runes
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aibtcdev/ skills --skill runes安装后在 Claude Code 中输入/runes确认已加载。
附带文件AGENT.mdrunes.ts
详细介绍
Runes 技能
使用 Unisat API 进行 Rune 索引,并使用 mempool.space 估算费用和广播交易,提供 Bitcoin Rune 操作。Rune 转账使用 Runestone OP_RETURN 编码,并显式设置找零指针,以防意外销毁 Rune。
需要设置 UNISAT_API_KEY 环境变量。支持主网和测试网。
用法
bun run runes/runes.ts <subcommand> [options]
子命令
balance
获取 Bitcoin 地址的 Rune 余额。返回该地址持有的所有 Rune 代币余额。
bun run runes/runes.ts balance [--address <addr>]
选项:
--address(可选)— 要查询的 Bitcoin 地址(如果省略,则使用当前钱包的 Taproot 地址)
输出:
{
"address": "bc1p...",
"network": "mainnet",
"balances": [
{
"rune": "UNCOMMONGOODS",
"runeId": "1:0",
"spacedRune": "UNCOMMON•GOODS",
"amount": "1000000",
"formatted": "1000000 ⧫",
"symbol": "⧫",
"divisibility": 0
}
],
"summary": { "runeCount": 1 },
"explorerUrl": "https://mempool.space/address/bc1p..."
}
utxos
列出 Bitcoin 地址上特定 Rune 对应的 UTXO。
bun run runes/runes.ts utxos --rune-id <id> [--address <addr>]
选项:
--rune-id(必需)— Rune ID(例如:840000:1)--address(可选)— 要查询的 Bitcoin 地址(如果省略,则使用当前钱包的 Taproot 地址)
输出:
{
"address": "bc1p...",
"network": "mainnet",
"runeId": "840000:1",
"utxos": [
{
"txid": "abc123...",
"vout": 0,
"satoshis": 546,
"runes": [
{
"runeId": "840000:1",
"spacedRune": "UNCOMMON•GOODS",
"amount": "1000000",
"formatted": "1000000 ⧫",
"symbol": "⧫"
}
]
}
],
"summary": { "utxoCount": 1, "totalSatoshis": 546 }
}
transfer
向接收地址转移 Rune。构建包含 Runestone OP_RETURN 的交易,将 Rune 转给接收方,并通过显式的找零指针将剩余 Rune 返还给发送方。
bun run runes/runes.ts transfer --rune-id <id> --amount <amount> --recipient <addr> [--fee-rate fast|medium|slow|<number>]
选项:
--rune-id(必需)— Rune ID(例如:840000:1)--amount(必需)— 要转移的 Rune 数量(以最小单位计)--recipient(必需)— 接收方地址--fee-rate(可选)— 费率(默认值:medium)
输出:
{
"success": true,
"txid": "def456...",
"explorerUrl": "https://mempool.space/tx/def456...",
"rune": { "runeId": "840000:1", "amount": "500000" },
"recipient": "bc1p...",
"fee": { "satoshis": 1800, "rateUsed": "10 sat/vB" },
"btcChange": { "satoshis": 5000 },
"network": "mainnet"
}
安全性
- Rune 转账始终在 Runestone 中包含显式的找零指针,以避免销毁剩余 Rune 余额
- 由 SegWit 地址中的普通 UTXO 支付费用,绝不使用持有 Rune 的 UTXO 支付费用
- transfer 命令会在构建交易前验证 Rune 余额
备注
- Rune 通常存放在 Taproot(bc1p)地址中
- 费用由 SegWit(bc1q)地址支付
- 需要已解锁的钱包(请先运行
bun run wallet/wallet.ts unlock) - 设置
UNISAT_API_KEY环境变量以访问 Unisat API
评论
支持 Markdown