mcpField
S
sbtc

sbtc

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

关于 sbtc

sbtc 是通过命令行操作 Stacks L2 上 sBTC 的技能,适用于需要查询余额、转账或在 BTC 与 sBTC 之间存入资产的用户。它还提供挂钩信息和存款状态查询;转账与存款需要解锁钱包。

主要功能

  1. 01查询 sBTC 余额与挂钩信息
  2. 02向 Stacks 地址转账 sBTC
  3. 03获取 BTC 存款说明与地址
  4. 04构建并广播 BTC 存款交易
  5. 05通过交易 ID 查询存款状态

适用场景

  1. 01检查指定 Stacks 地址的 sBTC 余额
  2. 02向另一地址发送指定数量的 sBTC
  3. 03从 BTC 存入以获得 sBTC
  4. 04跟踪 BTC 存款的处理状态

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aibtcdev/skills --skill sbtc

安装后在 Claude Code 中输入/sbtc确认已加载。

附带文件AGENT.mdsbtc.ts

详细介绍

sBTC 技能

提供 sBTC(Stacks L2 上的封装比特币)操作。sBTC 使用 8 位小数,与 Bitcoin 相同。转账和存款操作需要已解锁的钱包(先使用 bun run wallet/wallet.ts unlock)。余额和信息查询无需钱包。

用法

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

子命令

get-balance

获取 Stacks 地址的 sBTC 余额。

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

选项:

  • --address(可选)——要查询的 Stacks 地址(如未提供,则使用当前钱包)

输出:

{
  "address": "SP2...",
  "network": "mainnet",
  "balance": {
    "sats": "100000",
    "btc": "0.001 sBTC"
  }
}
transfer

向收款方转账 sBTC。需要已解锁的钱包。

sBTC 使用 8 位小数。--amount 请以聪为单位指定(1 sBTC = 100,000,000 聪)。

bun run sbtc/sbtc.ts transfer --recipient <addr> --amount <sats> [--memo <text>] [--fee low|medium|high|<microStx>] [--sponsored]

选项:

  • --recipient(必需)——要转入的 Stacks 地址
  • --amount(必需)——金额,单位为聪(例如,"100000" 表示 0.001 sBTC)
  • --memo(可选)——要附带的备注消息
  • --fee(可选)——费用预设值(low|medium|high)或 micro-STX 金额;如未提供,则自动估算
  • --sponsored(标记)——如果可用,则使用费用赞助

输出:

{
  "success": true,
  "txid": "abc123...",
  "from": "SP2...",
  "recipient": "SP3...",
  "amount": "0 sBTC",
  "amountSats": "100000",
  "network": "mainnet",
  "explorerUrl": "https://explorer.hiro.so/txid/abc123...?chain=mainnet"
}
get-deposit-info

获取存入 BTC 以接收 sBTC 的相关信息。如果已解锁的钱包含有 Taproot 密钥,则返回个性化的存款地址;否则返回通用说明。

bun run sbtc/sbtc.ts get-deposit-info

输出(钱包已解锁):

{
  "network": "mainnet",
  "depositAddress": "bc1p...",
  "maxSignerFee": "80000 satoshis",
  "reclaimLockTime": "950 blocks",
  "stacksAddress": "SP2...",
  "instructions": [...]
}

输出(无钱包):

{
  "network": "mainnet",
  "depositAddress": "bc1p...",
  "minDeposit": "...",
  "maxDeposit": "...",
  "instructions": [...]
}
get-peg-info

获取 sBTC 锚定信息,包括总供应量和锚定比例。

bun run sbtc/sbtc.ts get-peg-info

输出:

{
  "network": "mainnet",
  "totalSupply": {
    "sats": "1000000000",
    "btc": "10 sBTC"
  },
  "pegRatio": "1.000000"
}
deposit

存入 BTC,以在 Stacks L2 上接收 sBTC。构建、签名并广播 Bitcoin 交易至 sBTC 存款地址。Bitcoin 交易确认后,sBTC 代币将铸造至你的 Stacks 地址。需要已解锁且含有 Bitcoin 和 Taproot 密钥的钱包。

默认情况下仅使用普通 UTXO(可安全花费,不含铭文)。

bun run sbtc/sbtc.ts deposit --amount <sats> [--fee-rate fast|medium|slow|<number>] [--max-signer-fee <sats>] [--reclaim-lock-time <blocks>] [--include-ordinals]

选项:

  • --amount(必需)——存款金额,单位为聪(1 BTC = 100,000,000 聪)
  • --fee-rate(可选)——fast(约 10 分钟)、medium(约 30 分钟)、slow(约 1 小时),或以 sat/vB 为单位的数字(默认值:medium)
  • --max-signer-fee(可选)——sBTC 系统可收取的最高费用,单位为聪(默认值:80000)
  • --reclaim-lock-time(可选)——存款失败时,可进行赎回前等待的区块数(默认值:950)
  • --include-ordinals(标记)——包含序数 UTXO(警告:可能会损毁有价值的铭文!)

输出:

{
  "success": true,
  "txid": "btcTxid123...",
  "explorerUrl": "https://mempool.space/tx/btcTxid123...",
  "deposit": {
    "amount": "0.001 BTC",
    "amountSats": 100000,
    "recipient": "SP2...",
    "bitcoinAddress": "bc1q...",
    "taprootAddress": "bc1p...",
    "maxSignerFee": "80000 sats",
    "reclaimLockTime": "950 blocks",
    "feeRate": "5 sat/vB"
  },
  "network": "mainnet",
  "note": "sBTC tokens will be minted to your Stacks address after Bitcoin transaction confirms."
}
deposit-status

通过 Emily API 查询 sBTC 存款交易的状态。

bun run sbtc/sbtc.ts deposit-status --txid <btcTxid> [--vout <index>]

选项:

  • --txid(必需)——存款的 Bitcoin 交易 ID
  • --vout(可选)——存款的输出索引(默认值:0)

输出:

{
  "txid": "btcTxid123...",
  "vout": 0,
  "status": "pending",
  "explorerUrl": "https://mempool.space/tx/btcTxid123...",
  "network": "mainnet"
}

注意事项

  • 余额和信息查询使用 Hiro API(无需身份验证)
  • 转账和存款操作需要已解锁的钱包
  • sBTC 使用 8 位小数,与 Bitcoin 聪相同
  • deposit 命令使用 Bitcoin L1——请确保钱包的 Bitcoin 地址中有 BTC
  • 存入后,Bitcoin 交易确认后,sBTC 代币将显示在你的 Stacks 地址中

评论

支持 Markdown