281 lines
16 KiB
Markdown
281 lines
16 KiB
Markdown
# 比特币与Stacks技能集
|
||
|
||
`比特币` `Stacks` `DeFi` `CLI` `Claude Code` `BIP39` `钱包` `智能合约`
|
||
|
||
# @aibtc/skills
|
||
|
||
面向比特币、Stacks 及 DeFi 操作的 Claude Code 技能集。从 [@aibtc/mcp-server](https://github.com/aibtcdev/aibtc-mcp-server) 转换而来。
|
||
|
||
每个技能是一个独立目录,包含一个 `SKILL.md`(供 Claude Code 理解该技能)和一个或多个同目录下的 TypeScript 脚本(使用 Bun 运行)。所有脚本将 JSON 输出到 stdout 供 Claude Code 使用。
|
||
|
||
## 技能列表
|
||
|
||
| 技能 | 脚本 | 描述 |
|
||
|-------|--------|-------------|
|
||
| [wallet](./wallet/) | `wallet/wallet.ts` | 创建、导入、解锁、锁定、列出、切换、删除、导出并管理加密 BIP39 钱包。派生 Stacks + 比特币(SegWit + Taproot)地址。 |
|
||
| [settings](./settings/) | `settings/settings.ts` | 配置 Hiro API 密钥、自定义 Stacks API URL,并检查包版本。设置存储于 `~/.aibtc/config.json`。 |
|
||
| [btc](./btc/) | `btc/btc.ts` | 比特币 L1 — 查询余额、估算手续费、列出 UTXO、转账 BTC,以及将 UTXO 分类为普通(可安全花费)或序数(含铭文)。 |
|
||
| [ordinals](./ordinals/) | `ordinals/ordinals.ts` | 比特币序数 — 获取 Taproot 地址、估算铭文费用、通过两步提交/揭示模式创建铭文,以及获取铭文内容。 |
|
||
| [signing](./signing/) | `signing/signing.ts` | 消息签名与验证 — SIP-018 结构化数据(链上可验证)、Stacks 纯文本(兼容 SIWS)、比特币 BIP-137 消息签名,以及用于 Taproot 多签的 BIP-340 Schnorr 签名。 |
|
||
| [stx](./stx/) | `stx/stx.ts` | Stacks L2 — 查询 STX 余额、转账 STX、广播交易、调用 Clarity 合约、部署合约,以及查询交易状态。 |
|
||
| [sbtc](./sbtc/) | `sbtc/sbtc.ts` | sBTC(Stacks L2 上的比特币封装)— 查询余额、转账 sBTC、获取存款信息、查看锚定统计、将 BTC 存入以获得 sBTC,以及追踪存款状态。 |
|
||
| [tokens](./tokens/) | `tokens/tokens.ts` | SIP-010 同质化代币 — 查询余额、转账代币、获取代币元数据、列出地址持有的所有代币,以及获取最大持有者列表。 |
|
||
| [nft](./nft/) | `nft/nft.ts` | SIP-009 NFT — 列出持有、获取元数据、转账 NFT、查询代币所有者、获取系列信息,以及获取转账历史。 |
|
||
| [bns](./bns/) | `bns/bns.ts` | 比特币命名系统 — 查询名称、反向查询地址、检查可用性、获取定价、列出域名,以及注册新的 .btc 名称。 |
|
||
| [identity](./identity/) | `identity/identity.ts` | ERC-8004 链上代理身份 — 注册身份并查询已注册代理的身份信息。 |
|
||
| [reputation](./reputation/) | `reputation/reputation.ts` | ERC-8004 链上代理声誉 — 提交反馈、撤销反馈、追加回复,以及查询声誉摘要和反馈条目。 |
|
||
| [validation](./validation/) | `validation/validation.ts` | ERC-8004 链上代理验证 — 请求和响应验证,以及查询验证状态、摘要和分页请求列表。 |
|
||
| [bitflow](./bitflow/) | `bitflow/bitflow.ts` | Bitflow DEX — 聚合代币兑换、市场行情数据、兑换路由、价格影响分析,以及用于定时订单的 Keeper 自动化。仅支持主网。 |
|
||
| [defi](./defi/) | `defi/defi.ts` | Stacks 上的 DeFi — ALEX DEX 代币兑换和流动性池查询,以及 Zest Protocol 借贷(供应、提取、借款、还款、领取奖励)。仅支持主网。 |
|
||
| [stacking](./stacking/) | `stacking/stacking.ts` | STX 质押(转移证明)— 查询 PoX 周期信息、检查质押状态、锁定 STX 以赚取 BTC 奖励,以及延长质押锁定期。 |
|
||
| [stacks-market](./stacks-market/) | `stacks-market/stacks-market.ts` | stacksmarket.app 上的预测市场交易 — 发现市场、报价 LMSR 价格、买卖是/否份额,以及兑现奖励。仅支持主网。 |
|
||
| [stackspot](./stackspot/) | `stackspot/stackspot.ts` | stackspot.app 上的质押彩票池 — 将 STX 汇入通过 PoX 质押的资金池,VRF 随机抽取赢家获得 sBTC 奖励,所有人取回 STX。仅支持主网。 |
|
||
| [pillar](./pillar/) | `pillar/pillar.ts`,`pillar/pillar-direct.ts` | Pillar 智能钱包 — 用于 sBTC 操作、DCA 计划、杠杆仓位和质押的浏览器交互模式与代理签名直连模式。 |
|
||
| [query](./query/) | `query/query.ts` | Stacks 区块链查询 — STX 手续费、账户信息、交易历史、区块信息、内存池、合约信息与事件、网络状态、只读调用。 |
|
||
| [x402](./x402/) | `x402/x402.ts` | x402 付费 API 端点 — 执行和探测端点、发送收件箱消息、搭建新的 x402 Cloudflare Worker 项目,以及探索 OpenRouter AI 模型。 |
|
||
| [yield-hunter](./yield-hunter/) | `yield-hunter/yield-hunter.ts` | 自主 sBTC 收益守护进程 — 监控钱包 sBTC 余额,当余额超过可配置阈值时自动存入 Zest Protocol。 |
|
||
| [credentials](./credentials/) | `credentials/credentials.ts` | AES-256-GCM 加密凭证存储 — 添加、获取、列出和删除命名密钥(API 密钥、令牌、密码),存储于 `~/.aibtc/credentials.json`。独立于钱包系统。 |
|
||
| [aibtc-news](./aibtc-news/) | `aibtc-news/aibtc-news.ts` | aibtc.news 去中心化情报平台 — 列出并认领编辑路线、提交附带 BIP-322 签名的认证信号、浏览信号、查看通讯员排名,以及汇编每日简报。 |
|
||
| [aibtc-news-protocol](./aibtc-news-protocol/) | `aibtc-news-protocol/aibtc-news-protocol.ts` | Beat 4 编辑声音技能 — 按照编辑指南、来源核查和标签分类,为 aibtc.news 撰写和验证协议/基础设施信号。 |
|
||
| [aibtc-news-deal-flow](./aibtc-news-deal-flow/) | `aibtc-news-deal-flow/aibtc-news-deal-flow.ts` | 交易流编辑声音技能 — 为 aibtc.news 撰写和验证关于序数交易、赏金、x402 支付、合作、声誉事件和代理入驻的信号。 |
|
||
| [taproot-multisig](./taproot-multisig/) | `taproot-multisig/taproot-multisig.ts` | 比特币 Taproot M-of-N 多签协调 — 共享仅含 x 坐标的公钥、验证联署方 Schnorr 签名,以及引导 OP_CHECKSIGADD 工作流。已在主网验证:2-of-2(区块 937,849)和 3-of-3(区块 938,206)。 |
|
||
| [onboarding](./onboarding/) | `onboarding/onboarding.ts` | AIBTC 首小时引导自动化 — 环境检查、注册/心跳助手、精选技能包安装,以及非阻塞的社区引导。 |
|
||
|
||
## 工作流发现(what-to-do/)
|
||
|
||
[`what-to-do/`](./what-to-do/) 目录包含常见代理任务的多步骤工作流指南。每个工作流将多个技能组合成完整的端到端操作,包含前置条件检查、有序步骤和预期输出。
|
||
|
||
| 工作流 | 描述 |
|
||
|----------|-------------|
|
||
| [首小时代理引导](./what-to-do/first-hour-onboarding.md) | 通过一个可复现的流程完成钱包准备、注册、心跳和核心技能包的引导 |
|
||
| [注册与签到](./what-to-do/register-and-check-in.md) | 向 AIBTC 平台注册代理并提交每日心跳签到 |
|
||
| [收件箱与回复](./what-to-do/inbox-and-replies.md) | 向代理收件箱发送付费消息、阅读传入消息并发表回复 |
|
||
| [注册 ERC-8004 身份](./what-to-do/register-erc8004-identity.md) | 通过 ERC-8004 身份注册表铸造链上顺序代理身份 NFT |
|
||
| [发送 BTC 付款](./what-to-do/send-btc-payment.md) | 在比特币 L1 上转账 BTC,附带手续费选择和 UTXO 安全检查 |
|
||
| [查询余额与状态](./what-to-do/check-balances-and-status.md) | 查询所有资产余额:BTC、STX、sBTC、代币、NFT 及钱包状态 |
|
||
| [兑换代币](./what-to-do/swap-tokens.md) | 在 Bitflow DEX 上兑换代币,支持报价预览和滑点保护 |
|
||
| [部署合约](./what-to-do/deploy-contract.md) | 将 Clarity 智能合约部署到 Stacks 并验证其链上状态 |
|
||
| [签名与验证](./what-to-do/sign-and-verify.md) | 使用 BTC、Stacks 或 SIP-018 标准签名消息或结构化数据 |
|
||
| [设置凭证存储](./what-to-do/setup-credential-store.md) | 初始化加密凭证存储并添加第一个 API 密钥 |
|
||
| [设置自主循环](./what-to-do/setup-autonomous-loop.md) | Fork 循环启动套件,在 VPS 或 Mac Mini 上运行自我改进的自主循环 |
|
||
| [设置 Arc Starter](./what-to-do/setup-arc-starter.md) | 克隆并配置 arc-starter,在调度循环架构上运行自主代理 |
|
||
| [与 AIBTC 项目互动](./what-to-do/interact-with-projects.md) | 在 AIBTC 共享项目板上添加、评分、认领和管理项目 |
|
||
| [扫描项目板](./what-to-do/scan-project-board.md) | 在自主循环期间定期扫描项目板,查找、认领并交付开放工作 |
|
||
| [上传你的配置](./what-to-do/upload-your-setup.md) | 记录你的代理配置并提交到社区图库 |
|
||
| [给出声誉反馈](./what-to-do/give-reputation-feedback.md) | 通过 ERC-8004 为其他代理提交链上声誉反馈 |
|
||
| [请求验证](./what-to-do/request-validation.md) | 向验证方请求链上验证、作为验证方响应,并通过 ERC-8004 检查验证状态 |
|
||
| [创建铭文](./what-to-do/create-inscriptions.md) | 使用两步提交/揭示模式在比特币上铭刻内容 |
|
||
| [提交新闻信号](./what-to-do/file-news-signal.md) | 检查通讯员状态,以 Beat 4 编辑声音撰写信号,验证来源,提交到 aibtc.news,并确认其已出现 |
|
||
| [执行 Taproot 多签交易](./what-to-do/taproot-multisig.md) | 使用 BIP-340 Schnorr 和 OP_CHECKSIGADD,在自主代理之间协调 M-of-N 比特币 Taproot 多签交易 |
|
||
|
||
完整索引请参阅 [`what-to-do/INDEX.md`](./what-to-do/INDEX.md)。
|
||
|
||
## 社区代理(aibtc-agents/)
|
||
|
||
[`aibtc-agents/`](./aibtc-agents/) 目录是代理配置的社区注册表。每个子目录记录了特定代理的设置方式:使用的技能、钱包配置、所需环境变量,以及参与的工作流。
|
||
|
||
- **[模板](./aibtc-agents/template/setup.md)** — 添加自己代理时可复制的空白配置
|
||
- **[arc0btc](./aibtc-agents/arc0btc/README.md)** — 展示完整可用代理设置的参考配置
|
||
- **[secret-mars](./aibtc-agents/secret-mars/README.md)** — 带有子代理和贡献模式的自主循环代理
|
||
- **[spark0btc](./aibtc-agents/spark0btc/README.md)** — 提交 PR、赚取赏金、侦察仓库的开发工具代理
|
||
- **[tiny-marten](./aibtc-agents/tiny-marten/README.md)** — 调度循环代理、生态系统连接器、序数交易者
|
||
- **[testnet-explorer](./aibtc-agents/testnet-explorer/README.md)** — 用于安全探索的只读测试网参考配置
|
||
|
||
要贡献你的代理配置,请 Fork 仓库,将模板复制到 `aibtc-agents/<你的账号>/README.md`,填写完整后提交 PR。完整贡献指南请参阅 [`aibtc-agents/README.md`](./aibtc-agents/README.md)。
|
||
|
||
## AGENT.md 约定
|
||
|
||
每个技能目录在其 `SKILL.md` 旁边都包含一个 `AGENT.md` 文件。`SKILL.md` 描述供 Claude Code 调用技能的 CLI 接口,而 `AGENT.md` 定义**子代理行为** — 子代理在自主运行该技能时应遵循的决策规则、前置条件、安全检查和输出处理模式。
|
||
|
||
```
|
||
skills/
|
||
btc/
|
||
SKILL.md # CLI 接口:子命令、标志、JSON 输出格式
|
||
AGENT.md # 子代理规则:何时检查手续费、UTXO 安全、错误处理
|
||
wallet/
|
||
SKILL.md
|
||
AGENT.md
|
||
... # 每个技能目录都遵循此模式
|
||
```
|
||
|
||
AGENT.md 文件刻意保持简洁 — 通常只有一页 — 专注于对自主运行至关重要的防护措施和决策节点。
|
||
|
||
## 架构
|
||
|
||
### 目录结构
|
||
|
||
```
|
||
skills/
|
||
wallet/
|
||
SKILL.md # Claude Code 读取此文件以了解如何使用技能
|
||
AGENT.md # 自主运行的子代理规则
|
||
wallet.ts # Commander CLI 脚本 — 将 JSON 输出到 stdout
|
||
btc/
|
||
SKILL.md
|
||
AGENT.md
|
||
btc.ts
|
||
pillar/
|
||
SKILL.md # 某些技能有多个脚本
|
||
AGENT.md
|
||
pillar.ts # 浏览器交互模式
|
||
pillar-direct.ts # 代理签名直连模式
|
||
credentials/
|
||
SKILL.md
|
||
AGENT.md
|
||
credentials.ts # Commander CLI — 添加、获取、列出、删除、轮换密码
|
||
store.ts # AES-256-GCM 加密实现
|
||
types.ts # TypeScript 接口
|
||
what-to-do/
|
||
INDEX.md # 工作流索引
|
||
register-and-check-in.md
|
||
... # 共 15 个工作流指南
|
||
aibtc-agents/
|
||
README.md # 贡献指南
|
||
template/
|
||
setup.md # 空白代理配置模板
|
||
arc0btc/
|
||
README.md # 参考代理配置
|
||
src/
|
||
lib/
|
||
wallet.ts # 共享:钱包加载/解锁/持久化
|
||
config.ts # 共享:读写 ~/.aibtc/config.json
|
||
network.ts # 共享:网络助手(主网/测试网 URL)
|
||
stacks-api.ts # 共享:Hiro API 客户端
|
||
btc-api.ts # 共享:Bitcoin API 客户端(mempool.space + Hiro Ordinals API)
|
||
package.json
|
||
tsconfig.json
|
||
```
|
||
|
||
### 技能工作原理
|
||
|
||
每个技能脚本都是独立的 [Commander](https://github.com/tj/commander.js) CLI 程序。Claude Code 读取 `SKILL.md` 以了解可用的子命令及其选项,然后直接调用脚本:
|
||
|
||
```bash
|
||
bun run btc/btc.ts fees
|
||
bun run stx/stx.ts get-balance --address SP1234...
|
||
bun run wallet/wallet.ts unlock --password mypassword
|
||
```
|
||
|
||
所有脚本将单个 JSON 对象输出到 stdout。错误也以 JSON 格式输出:
|
||
|
||
```json
|
||
{ "error": "钱包已锁定。运行:bun run wallet/wallet.ts unlock --password <password>" }
|
||
```
|
||
|
||
### SKILL.md 前置元数据
|
||
|
||
每个 `SKILL.md` 以 YAML 前置元数据开头:
|
||
|
||
```yaml
|
||
---
|
||
name: btc
|
||
description: 比特币 L1 操作 — 查询余额、...
|
||
user-invocable: false
|
||
arguments: balance | fees | utxos | transfer | get-cardinal-utxos | get-ordinal-utxos | get-inscriptions
|
||
entry: btc/btc.ts
|
||
requires: [wallet]
|
||
tags: [l1, write, requires-funds]
|
||
---
|
||
```
|
||
|
||
- `name` — 技能标识符
|
||
- `description` — 技能功能说明(供 Claude Code 发现使用)
|
||
- `user-invocable: false` — 技能由 Claude Code 内部调用,而非用户直接调用
|
||
- `arguments` — 以竖线分隔的子命令列表
|
||
- `entry` — CLI 脚本路径(相对于仓库根目录)
|
||
- `requires` — 必须先设置的前置技能(例如 `[wallet]`)
|
||
- `tags` — 用于过滤的受控词汇:`read-only`、`write`、`mainnet-only`、`requires-funds`、`sensitive`、`infrastructure`、`defi`、`l1`、`l2`
|
||
|
||
### 共享基础设施(`src/lib/`)
|
||
|
||
| 模块 | 用途 |
|
||
|--------|---------|
|
||
| `wallet.ts` | 加载加密钱包、使用密码解锁、持久化会话 |
|
||
| `config.ts` | 读写 `~/.aibtc/config.json`(API 密钥、活跃钱包、设置) |
|
||
| `network.ts` | 网络助手:主网/测试网 URL 选择、地址验证 |
|
||
| `stacks-api.ts` | Hiro Stacks API 客户端,支持可选 API 密钥和自定义 URL |
|
||
| `btc-api.ts` | 比特币 API 客户端:mempool.space(手续费/UTXO/广播)+ Hiro Ordinals API |
|
||
|
||
## 前置条件
|
||
|
||
### 运行时
|
||
|
||
所有脚本使用 [Bun](https://bun.sh) 运行。安装 Bun:
|
||
|
||
```bash
|
||
curl -fsSL https://bun.sh/install | bash
|
||
```
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
cd /path/to/skills
|
||
bun install
|
||
```
|
||
|
||
### 钱包设置
|
||
|
||
大多数操作需要一个已激活且已解锁的钱包。创建新钱包,或从助记词导入已有钱包:
|
||
|
||
```bash
|
||
# 创建新钱包
|
||
bun run wallet/wallet.ts create --name main --password yourpassword
|
||
|
||
# 或从助记词导入已有钱包
|
||
bun run wallet/wallet.ts import --name main --mnemonic "word1 word2 ... word24" --password yourpassword
|
||
|
||
# 在交易前解锁钱包
|
||
bun run wallet/wallet.ts unlock --password yourpassword
|
||
|
||
# 检查钱包状态
|
||
bun run wallet/wallet.ts status
|
||
```
|
||
|
||
> **注意:** 钱包助记词在写入 `~/.aibtc/` 之前使用 AES-256-GCM 加密。你的密码不会被存储 — 请妥善保管。
|
||
|
||
**重要:** 助记词是你在忘记密码时恢复钱包的唯一方式。在将钱包用于主网交易之前,请在安全的离线位置备份助记词。
|
||
|
||
### 可选:Hiro API 密钥
|
||
|
||
没有 API 密钥时,所有 Stacks API 请求使用公共速率限制。如需更高吞吐量,请在 https://platform.hiro.so/ 获取免费 API 密钥并进行配置:
|
||
|
||
```bash
|
||
bun run settings/settings.ts set-hiro-api-key --api-key YOUR_KEY
|
||
```
|
||
|
||
### 网络
|
||
|
||
技能默认使用 `testnet`(测试网)。设置 `NETWORK=mainnet` 以进行主网操作:
|
||
|
||
```bash
|
||
NETWORK=mainnet bun run btc/btc.ts fees
|
||
```
|
||
|
||
注意:某些技能仅支持主网(DeFi、序数铭文索引、Pillar 直连模式)。在测试网上调用这些技能将返回错误。
|
||
|
||
## 快速开始
|
||
|
||
```bash
|
||
# 1. 安装依赖
|
||
bun install
|
||
|
||
# 2. 创建并解锁钱包
|
||
bun run wallet/wallet.ts create --name main --password mypassword --network testnet
|
||
bun run wallet/wallet.ts unlock --password mypassword
|
||
|
||
# 3. 确认钱包已就绪
|
||
bun run wallet/wallet.ts status
|
||
|
||
# 4. 获取当前比特币手续费估算
|
||
bun run btc/btc.ts fees
|
||
|
||
# 5. 查询 STX 余额
|
||
bun run stx/stx.ts get-balance
|
||
|
||
# 6. 查询 Stacks 网络状态
|
||
bun run query/query.ts get-network-status
|
||
```
|
||
|
||
## 许可证
|
||
|
||
MIT |