mcpField
R
runes

runes

github.com/aibtcdevその他11113 回インストール1 日前に更新
リポジトリ

runes について

runes は、Bitcoin Runes の残高や UTXO の確認、送金を行うスキルです。Unisat でインデックスを取得し、mempool.space で手数料を見積もって取引をブロードキャストします。明示的な変更先ポインターで残りの Runes を保護します。

主な機能

  1. 01アドレス別の Rune 残高確認
  2. 02Rune 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 Skill

ルーンのインデックス作成に Unisat API、手数料の見積もりとブロードキャストに mempool.space を使用して、ビットコインのルーン操作を行います。ルーンの送金では、誤ってルーンをバーンしないよう、変更先を明示的に指定した Runestone OP_RETURN エンコードを使用します。

UNISAT_API_KEY 環境変数が必要です。メインネットとテストネットの両方で動作します。

使用方法

bun run runes/runes.ts <subcommand> [options]

サブコマンド

balance

ビットコインアドレスのルーン残高を取得します。アドレスが保有するすべてのルーントークン残高を返します。

bun run runes/runes.ts balance [--address <addr>]

オプション:

  • --address(省略可)— 確認するビットコインアドレス(省略した場合は、アクティブなウォレットの 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

ビットコインアドレスにある、指定したルーンを含む UTXO を一覧表示します。

bun run runes/runes.ts utxos --rune-id <id> [--address <addr>]

オプション:

  • --rune-id(必須)— ルーン ID(例:840000:1)
  • --address(省略可)— 確認するビットコインアドレス(省略した場合は、アクティブなウォレットの 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

ルーンを受取人のアドレスに送金します。ルーンを受取人に送り、残りのルーンを変更先ポインターで送信者に戻す Runestone OP_RETURN を含むトランザクションを構築します。

bun run runes/runes.ts transfer --rune-id <id> --amount <amount> --recipient <addr> [--fee-rate fast|medium|slow|<number>]

オプション:

  • --rune-id(必須)— ルーン ID(例:840000:1)
  • --amount(必須)— 送金するルーンの量(最小単位)
  • --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"
}

安全性

  • ルーンの残高がバーンされないよう、ルーンの送金では常に Runestone に変更先ポインターを明示的に指定します
  • 手数料は SegWit アドレスの Cardinal UTXO から支払われます。ルーンを含む UTXO が手数料の支払いに使われることはありません
  • transfer コマンドは、トランザクションの構築前にルーン残高を検証します

備考

  • ルーンは通常、Taproot(bc1p)アドレスに保管されます
  • 手数料は SegWit(bc1q)アドレスから支払われます
  • ウォレットのロックを解除する必要があります(先に bun run wallet/wallet.ts unlock を実行してください)
  • Unisat API にアクセスするには、UNISAT_API_KEY 環境変数を設定してください

コメント