mcpField
R
runes

runes

github.com/aibtcdev其他11113 次安装1 天前更新
代码仓库

关于 runes

runes 是用于查询 Bitcoin Runes 余额和 UTXO、执行转账的技能。它通过 Unisat 索引,并用 mempool.space 估算手续费和广播交易;显式设置找零指针以保护剩余 Runes。

主要功能

  1. 01按地址查询 Runes 余额
  2. 02按 Rune ID 列出 UTXO
  3. 03向收款地址转账 Runes
  4. 04使用显式 Runestone 找零指针
  5. 05支持主网和测试网

适用场景

  1. 01查看地址持有的 Runes
  2. 02查找特定 Rune 的 UTXO
  3. 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