aibtcdev について
aibtcdevは、BitcoinとStacksのウォレット、トークン、NFT、DeFi、決済をAIエージェントに提供するMCPサーバーです。暗号化されたローカルウォレット、設定可能なツールグループ、OpenRouterブリッジを備えています。
主な機能
- 01BitcoinとStacksのウォレット操作
- 02ローカルウォレットの暗号化保存
- 03sBTCとトークンの送金
- 04NFTとDeFiの操作
- 05ステーキング、BNS、x402決済
- 06設定可能なツールプロファイル
活用シーン
- 01残高の確認とBTCまたはSTXの送金
- 02トークン交換やレンディングの利用
- 03NFTや.btcドメインの管理
- 04OpenRouter経由でのブロックチェーンツール実行
MCP 対応
stdio MCPサーバーとして、Bitcoin L1とStacksの操作をMCPクライアントに公開します。組み込みのOpenRouterブリッジでは、読み取り専用設定や許可・ブロックリスト、支出上限を指定してモデルからツールを実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
138掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| address | string | いいえ | 確認する Bitcoin アドレス(メインネットでは bc1...、テストネットでは tb1...)。指定されていない場合は、ウォレットの Bitcoin アドレスを使用します。 |
詳細
@aibtc/mcp-server
AI エージェント向けの Bitcoin ネイティブ MCP サーバーです。BTC/STX ウォレット、DeFi イールド、sBTC ペッグ、NFT、x402 決済に対応しています。
特長
- Bitcoin L1 - mempool.space 経由で残高の確認、BTC の送金、UTXO の管理ができます
- エージェント専用ウォレット - エージェントがブロックチェーン取引を実行するための専用ウォレットを取得できます
- セキュアなストレージ - ウォレットは AES-256-GCM で暗号化され、ローカルに保存されます
- 350 以上のツール - Bitcoin L1 に加え、Stacks L2 の包括的な操作に対応します
- sBTC 対応 - Stacks 上でネイティブ Bitcoin 操作を実行できます
- トークン操作 - SIP-010 代替可能トークンの送金と照会に対応します
- NFT 対応 - SIP-009 NFT の保有状況、送金、メタデータに対応します
- DeFi 取引 - ALEX DEX でのスワップと、Zest Protocol での貸し出し/借り入れに対応します
- Stacking/PoX-5 - 署名者マネージャーで STX をステーキングし、期間延長、ステーキング解除、sBTC 報酬の請求ができます
- BNS ドメイン - .btc ドメインの検索と管理に対応します(V1 + V2)
- x402 決済 - 有料 API の決済を自動で処理します
クイックスタート
Claude Code(ターミナル)
npx @aibtc/mcp-server@latest --install
この設定により Claude Code が構成され、エージェントのウォレットが作成されます。Stacks と Bitcoin のアドレス、生成されたパスワード、24 語のニーモニックが一度だけ表示されます。両方を必ず書き留めてください。ニーモニックはこのマシンの ~/.aibtc/ に AES-256-GCM で暗号化されて保存されます。パスワードはどこにも保存されません。エージェントはウォレットのロック解除時にパスワードを求めます。wallet_rotate_password で変更できます。対象のネットワーク用のウォレットがすでにある場合は、そのまま保持されます。ウォレットが作成されるのは、インストールが対話型ターミナルで実行された場合に限られます(パイプや CI ログには作成されません)。作成を省略するには --no-wallet を渡し、代わりにエージェントからウォレットを作成またはインポートしてください。
ターミナルを再起動し、表示されたアドレスに少量の STX を送金してから、エージェントにウォレットのロックを解除し、有料の推論呼び出しを行うよう依頼します。
Claude Desktop(アプリ)
npx @aibtc/mcp-server@latest --install --desktop
OS を検出し、適切な Claude Desktop 設定ファイルに書き込みます。
| OS | 設定パス |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
| Windows | %APPDATA%/Claude/claude_desktop_config.json |
インストール後に Claude Desktop を再起動してください。
その他の MCP クライアント
これは標準の stdio MCP サーバーなので、あらゆる MCP 対応クライアントで動作します。デフォルトの --install 対象は Claude Code です。フラグを指定すると、別のクライアントを選択できます。
npx @aibtc/mcp-server@latest --install --cursor # Cursor
npx @aibtc/mcp-server@latest --install --windsurf # Windsurf
npx @aibtc/mcp-server@latest --install --gemini # Gemini CLI
npx @aibtc/mcp-server@latest --install --codex # OpenAI Codex CLI
npx @aibtc/mcp-server@latest --install --vscode # VS Code (writes ./.vscode/mcp.json)
| フラグ | クライアント | 書き込み先の設定 |
|---|---|---|
| (なし) | Claude Code | ~/.claude.json |
--desktop | Claude Desktop | claude_desktop_config.json(上記のパス表を参照) |
--cursor | Cursor | ~/.cursor/mcp.json |
--windsurf | Windsurf | ~/.codeium/windsurf/mcp_config.json |
--gemini | Gemini CLI | ~/.gemini/settings.json |
--codex | OpenAI Codex CLI | ~/.codex/config.toml |
--vscode | VS Code(Copilot エージェント) | ./.vscode/mcp.json(プロジェクト単位) |
各インストーラーは既存の設定にマージするため、ほかのサーバーや設定を上書きしません。その後、クライアントを再起動してください。
OpenRouter(任意のモデル)
上記のクライアントは MCP ホストです。代わりに、OpenRouter のモデルでツールを操作するには、サーバーに組み込みのブリッジが用意されています。ブリッジはサーバーモードで自身を起動し、ツールを関数ツールとしてモデルに公開して、ツール呼び出しのループを実行します。これは、OpenRouter の MCP クックブックにあるクライアント側のパターンをバイナリに組み込んだものです。
export OPENROUTER_API_KEY=sk-or-...
npx @aibtc/mcp-server@latest bridge "what's the STX balance of SP3...?"
安全性フラグ(このサーバーは実際の資金を扱うため、ブリッジはデフォルトで追加の制限を設けず、必要に応じて制約を設定できます):
| フラグ | 効果 |
|---|---|
--read-only | 読み取り専用ツールのみを公開します(transfer/swap/deploy などは使用できません) |
--allow a,b | 指定したツール名を強制的に許可します(許可対象に追加) |
--block a,b | 指定したツール名を強制的に除外します(--allow より優先されます) |
--max-spend-ustx <n> / --max-spend-sats <n> | サーバーの支出制限機能で支出額に上限を設定します(署名の前に適用) |
--list-tools | 公開されるツールの一覧を出力して終了します(API キーは不要です) |
--model <id> | OpenRouter のモデル(デフォルト:anthropic/claude-3.5-haiku) |
--network <net> | mainnet または testnet(デフォルト:mainnet) |
--max-turns <n> | ツール呼び出しループの上限(デフォルト:10) |
# Preview what a read-only session would expose, no key needed:
npx @aibtc/mcp-server@latest bridge --read-only --list-tools
# Read-only chat, plus one explicitly allowed write tool:
npx @aibtc/mcp-server@latest bridge --read-only --allow transfer_stx "send 1 STX to SP3..."
エージェントのループを実行する前、および --list-tools の実行時に、ブリッジは簡潔な安全性レシートを stderr に出力します。そこには、ネットワーク、読み取り専用モード、公開/書き込み/ブロックされたツールの数、セッションの支出上限、既知の x402 エンドポイント数が含まれ、設定された実行境界を事前に確認できます。出力するのは境界の情報のみで、価値が移動したとは決して主張しません。
許可リストは実行時にも再適用されるため、モデルが公開対象外のツールを呼び出すことはできません。MCP に対応するエージェントフレームワーク(@openrouter/agent、OpenAI Agents SDK、Claude Agent SDK)からも、このサーバーに直接接続できます。このブリッジは、フレームワークを採用せずに OpenRouter の生 API 経由で操作する場合に使用します。
Testnet モード
任意のインストールコマンドに --testnet を追加します。
npx @aibtc/mcp-server@latest --install --testnet # Claude Code, testnet
npx @aibtc/mcp-server@latest --install --cursor --testnet # Cursor, testnet
なぜ npx なのですか?
npx @aibtc/mcp-server@latestを使用すると、常に最新バージョンを自動的に入手できます。グローバルインストール(npm install -g)では自動更新されません。
ツールプロファイル
すべてのツール定義がモデルのコンテキストに読み込まれるため、--install は AIBTC_TOOLS=core を設定します。これは26個のツールで構成される軽量なコアです。ウォレット(wallet_rotate_password を含む。wallet_export は wallet グループに含まれるため、ニーモニックを1回の呼び出しで取得できません)、残高、STX/BTC/sBTC の送金、x402(list_x402_endpoints、probe_x402_endpoint、execute_x402_endpoint)、収益獲得(earning_opportunities、bounty_list/get/submit、identity_register)、受信トレイの自動返信(inbox_auto_reply、inbox_auto_reply_configure)が含まれます。
サーバーの env で AIBTC_TOOLS=core,defi,ordinals のようにグループを追加します(コアは常に含まれます)。または、AIBTC_TOOLS=all/--profile full ですべてを読み込みます。AIBTC_TOOLS が設定されていない場合は、すべてのツールが読み込まれるため、以前のバージョンで作成された設定ファイルでも、引き続きすべてのツールを使用できます。
npx @aibtc/mcp-server@latest --install --profile full # writes AIBTC_TOOLS=all
| グループ | ツール |
|---|---|
wallet | ウォレット管理の追加機能、暗号化された認証情報ストア |
stacks | Stacks のトランザクション、コントラクト、トークン、NFT、チェーン照会、nonce ツール |
sbtc | sBTC の入金/出金、Styx の BTC→sBTC |
bitcoin | Bitcoin L1 の UTXO、mempool の監視 |
lightning | Lightning(Spark)ウォレットと L402 決済 |
stacking | PoX stacking、dual stacking、StackSpot |
defi | ALEX、Zest、Bitflow、Jingswap、yield hunter/dashboard、Tenero の分析 |
pillar | Pillar スマートウォレット |
ordinals | インスクリプション、ルーン、PSBT、ordinals マーケットプレイス/P2P、taproot マルチシグ |
bns | BNS 名 |
identity | ERC-8004 のアイデンティティと評判、メッセージ署名 |
social | Nostr、AIBTC の受信トレイ |
earn | バウンティボード(作成、受諾、支払い、自分のビュー) |
legion | AIBTC News Legion、At Stake のサイドレギオン(エルサルバドル) |
markets | Stacks の予測市場、At Stake の市場 |
dev | スキャフォールディング、OpenRouter、設定、推論マーケットプレイス、arXiv |
サーバーの指示には無効になっているグループが記載されるため、エージェントに有効化するグループを尋ねることができます。OpenRouter の bridge は全セットを起点とし、独自の --read-only/--allow/--block フラグで対象を絞り込みます。
手動設定
手動で設定する場合は、以下をクライアントの設定ファイルに追加します。-y フラグを指定すると、npx による確認を省略できます。
Claude Code/Claude Desktop/Cursor/Windsurf/Gemini CLI — mcpServers JSON:
{
"mcpServers": {
"aibtc": {
"command": "npx",
"args": ["-y", "@aibtc/mcp-server@latest"],
"env": {
"NETWORK": "mainnet"
}
}
}
}
VS Code(.vscode/mcp.json)— servers キーと型付きのエントリを使用します:
{
"servers": {
"aibtc": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@aibtc/mcp-server@latest"],
"env": { "NETWORK": "mainnet" }
}
}
}
OpenAI Codex CLI(~/.codex/config.toml)— JSON ではなく TOML です:
[mcp_servers.aibtc]
command = "npx"
args = ["-y", "@aibtc/mcp-server@latest"]
[mcp_servers.aibtc.env]
NETWORK = "mainnet"
Zed(settings.json)— context_servers キーを使用します:
{
"context_servers": {
"aibtc": {
"source": "custom",
"command": "npx",
"args": ["-y", "@aibtc/mcp-server@latest"],
"env": { "NETWORK": "mainnet" }
}
}
}
Cline/Roo Code(VS Code 拡張機能)— 拡張機能の MCP 設定パネルから、上記と同じ mcpServers JSON ブロックを追加します(正確な cline_mcp_settings.json のパスは、OS と VS Code のビルドによって異なります)。
ほかの MCP クライアントも使用できます。
NETWORKを env に設定し、stdio 経由でnpx -y @aibtc/mcp-server@latestに接続してください。
Claude にウォレットを用意する
--install を実行するとウォレットが作成されます(クイックスタートを参照)。--no-wallet を指定してインストールした場合、クライアントを手動で設定した場合、または別のウォレットを使いたい場合は、エージェントにウォレットを作成またはインポートさせることができます。
会話例
You: What's your wallet address?
Claude: I don't have a wallet yet. Would you like to assign me one?
I can either create a fresh wallet or you can import an existing one.
You: Create a new wallet called "agent-wallet"
Claude: What password should I use to protect the wallet?
You: use "secure123password"
Claude: I now have a wallet! My address is ST1ABC...XYZ
IMPORTANT: Please save this recovery phrase securely:
"word1 word2 word3 ... word24"
This phrase will NOT be shown again. It's the only way to recover
the wallet if the password is forgotten.
You: Send 10 STX to ST2DEF...
Claude: Done! I've sent 10 STX to ST2DEF...
Transaction: 0x123...
ウォレットの状態
| 状態 | Claude の発言 | 対応方法 |
|---|---|---|
| ウォレットなし | 「まだウォレットを持っていません」 | wallet_create または wallet_import を使用します |
| ロック中 | 「ウォレットがロックされています」 | パスワードを指定して wallet_unlock を使用します |
| 使用可能 | 「私のアドレスは ST... です」 | Claude がトランザクションを実行できます |
セッション管理
- デフォルトでは、ウォレットは15分後に自動ロックされます
wallet_set_timeoutで変更できます(無効にするには 0 を設定します)- ウォレットを手動でロックするには
wallet_lockを使用します - Claude に再び取引させるときは
wallet_unlockを使用します
ウォレットの保存
Claude のウォレットは、使用しているマシンにローカル保存されます。
~/.aibtc/
├── wallets.json # Wallet index (names, addresses - no secrets)
├── config.json # Active wallet, settings
└── wallets/
└── [wallet-id]/
└── keystore.json # Encrypted mnemonic (AES-256-GCM + Scrypt)
セキュリティ:
- Scrypt による鍵導出を使用した AES-256-GCM 暗号化
- ロック解除にはパスワードが必要です
- ニーモニックが平文で保存されることはありません
- ファイルのアクセス許可は所有者のみ(0600)に設定されます
Bitcoin L1 サポート
各ウォレットは、BIP39/BIP32 標準を使用して、同じニーモニックからStacks アドレスとBitcoin アドレスの両方を自動的に導出します。
導出パス(BIP84):
- メインネット:
m/84'/0'/0'/0/0(Bitcoin のコインタイプ 0) - テストネット:
m/84'/1'/0'/0/0(Bitcoin テストネットのコインタイプ 1)
アドレス形式:
- メインネット:
bc1q...(ネイティブ SegWit P2WPKH) - テストネット:
tb1q...(ネイティブ SegWit P2WPKH)
機能:
- Bitcoin L1 のトランザクションを完全サポート(BTC の送信)
- mempool.space API による残高と UTXO の照会
- 手数料の見積もり(高速/中速/低速)
- 手数料を最適化する P2WPKH(ネイティブ SegWit)トランザクション
例:
You: Create a wallet called "my-wallet"
Claude: I've created a wallet with:
Stacks address: ST1ABC...
Bitcoin address: bc1q...
You: Send 50000 sats to bc1q...
Claude: Done! Transaction broadcast: abc123...
どちらのアドレスも同じリカバリーフレーズから導出されるため、Layer 1(Bitcoin)と Layer 2(Stacks)の両方の資産を簡単に管理できます。
利用可能なツール(合計 350 以上)
ウォレット管理
| ツール | 説明 |
|---|---|
wallet_create | Claude 用の新しいウォレットを作成します |
wallet_import | Claude 用に既存のウォレットをインポートします |
wallet_unlock | Claude のウォレットのロックを解除します |
wallet_lock | Claude のウォレットをロックします |
wallet_list | Claude が利用できるウォレットを一覧表示します |
wallet_switch | Claude を別のウォレットに切り替えます |
wallet_delete | ウォレットを削除します |
wallet_export | ウォレットのニーモニックをエクスポートします |
wallet_status | Claude のウォレットが利用可能か確認します(Stacks と Bitcoin のアドレスを含む) |
wallet_set_timeout | ウォレットのロック解除状態を維持する時間を設定します |
Bitcoin L1
| ツール | 説明 |
|---|---|
get_btc_balance | BTC 残高を取得します(合計、承認済み、未承認) |
get_btc_fees | 手数料の見積もりを取得します(高速、中速、低速) |
get_btc_utxos | アドレスの UTXO を一覧表示します |
transfer_btc | 受取人に BTC を送信します |
get_cardinal_utxos | 安全に使用できる UTXO を取得します(碑文を含まないもの) |
get_ordinal_utxos | 碑文を含む UTXO を取得します |
Mempool ウォッチ(Bitcoin)
| ツール | 説明 |
|---|---|
get_btc_mempool_info | 現在の Bitcoin メンプール統計を取得します(トランザクション数、vsize、手数料、手数料ヒストグラム) |
get_btc_transaction_status | txid を指定して、Bitcoin トランザクションの承認状況と詳細を取得します |
get_btc_address_txs | Bitcoin アドレスの最近のトランザクション履歴を取得します(直近 25 件) |
Bitcoin 碑文
| ツール | 説明 |
|---|---|
get_taproot_address | ウォレットの Taproot(P2TR)アドレスを取得します |
estimate_inscription_fee | 碑文の作成コストを計算します |
inscribe | 碑文のコミットトランザクションを作成します |
inscribe_reveal | 碑文のリビールトランザクションを完了します |
get_inscription | リビールトランザクションから碑文のコンテンツを取得します |
get_inscriptions_by_address | アドレスが所有する碑文を一覧表示します |
PSBT と Ordinals の取引
| ツール | 説明 |
|---|---|
psbt_create_ordinal_buy | Ordinals 購入用の購入者側 PSBT を構築します |
psbt_sign | アクティブなウォレットキーで、選択した PSBT 入力に署名します |
psbt_decode | PSBT の入力/出力/署名状況をデコードします |
psbt_broadcast | 署名済みの PSBT をファイナライズしてブロードキャストします |
メッセージ署名
| ツール | 説明 |
|---|---|
sip018_sign | 構造化された Clarity データ(SIP-018)に署名します |
sip018_verify | SIP-018 署名を検証します |
sip018_hash | 署名せずに SIP-018 ハッシュを計算します |
stacks_sign_message | プレーンテキストに署名します(SIWS 対応) |
stacks_verify_message | Stacks メッセージの署名を検証します |
btc_sign_message | Bitcoin キーで署名します(BIP-137) |
btc_verify_message | BIP-137 署名を検証します |
ウォレットと残高
| ツール | 説明 |
|---|---|
get_wallet_info | Claude のウォレットアドレス(Stacks と Bitcoin)とステータスを取得します |
get_stx_balance | 任意のアドレスの STX 残高を取得します |
get_stx_fees | STX の手数料見積もりを取得します(低、中、高) |
STX 送金
| ツール | 説明 |
|---|---|
transfer_stx | 受取人に STX を送信します |
broadcast_transaction | 署名済みのトランザクションをブロードキャストします |
sBTC の操作
| ツール | 説明 |
|---|---|
sbtc_get_balance | sBTC の残高を取得します |
sbtc_transfer | sBTC を送金します |
sbtc_initiate_withdrawal | BTC L1 への sBTC のペグアウトを開始します |
sbtc_withdraw | 出金開始の別名です |
sbtc_withdrawal_status | 出金リクエストのステータスを確認します |
sbtc_get_deposit_info | BTC の入金手順を取得します |
sbtc_deposit | BTC→sBTC 入金を構築、署名、ブロードキャストします |
sbtc_deposit_status | Emily API を通じて入金ステータスを確認します |
sbtc_get_peg_info | ペグ比率と TVL を取得します |
トークン操作(SIP-010)
| ツール | 説明 |
|---|---|
get_token_balance | 任意の SIP-010 トークンの残高を取得します |
transfer_token | 任意の SIP-010 トークンを送金します |
get_token_info | トークンのメタデータを取得します |
list_user_tokens | アドレスが保有するトークンを一覧表示します |
get_token_holders | トークンの上位保有者を取得します |
NFT 操作(SIP-009)
| ツール | 説明 |
|---|---|
get_nft_holdings | アドレスが保有する NFT を一覧表示します |
get_nft_metadata | NFT のメタデータを取得します |
transfer_nft | NFT を送信します |
get_nft_owner | NFT の所有者を取得します |
get_collection_info | NFT コレクションの詳細を取得します |
get_nft_history | NFT の転送履歴を取得します |
スタッキング/PoX
| ツール | 説明 |
|---|---|
get_pox_info | 現在の PoX-5 サイクル、バーン高、準備フェーズを取得します |
get_stacking_status | ロック額、署名者マネージャー、ロック解除高を取得します |
list_stacking_signers | 次のサイクルの署名者セットに含まれる署名者マネージャーを一覧表示します |
stack_stx | 署名者マネージャーを指定して STX をロックします |
extend_stacking | スタッキングを延長し、増額し、署名者または報酬受取先を切り替えます(ステーク更新) |
unstake_stx | 早期に停止します。次のサイクルにロックが解除されます |
get_stacking_rewards | サイクルの未請求 sBTC 報酬を取得します |
claim_stacking_rewards | 署名者マネージャーを通じてサイクルの報酬を請求します |
BNS ドメイン(V1 + V2)
| ツール | 説明 |
|---|---|
lookup_bns_name | .btc ドメインをアドレスに解決します |
reverse_bns_lookup | アドレスに対応する .btc ドメインを取得します |
get_bns_info | ドメインの詳細を取得します |
check_bns_availability | ドメインが利用可能か確認します |
get_bns_price | 登録価格を取得します |
list_user_domains | 所有ドメインを一覧表示します |
preorder_bns_name | .btc ドメインを事前注文します(2 段階中の 1 段階目) |
register_bns_name | .btc ドメインを登録します(2 段階中の 2 段階目) |
スマートコントラクト
| ツール | 説明 |
|---|---|
call_contract | スマートコントラクトの関数を呼び出します |
deploy_contract | Clarity スマートコントラクトをデプロイします |
get_transaction_status | トランザクションのステータスを確認します |
call_read_only_function | 読み取り専用関数を呼び出します |
DeFi - ALEX DEX(メインネット)
スワップ操作には公式の alex-sdk を使用します。「STX」や「ALEX」などのシンプルなトークンシンボルに対応しています。
| ツール | 説明 |
|---|---|
alex_list_pools | 利用可能なすべての取引プールを検出します |
alex_get_swap_quote | トークンスワップの予想受取額を取得します |
alex_swap | トークンスワップを実行します(ルーティングは SDK が処理します) |
alex_get_pool_info | 流動性プールの準備金を取得します |
DeFi - Zest Protocol(メインネット)
10 種類のアセットに対応しています:sBTC、aeUSDC、stSTX、wSTX、USDH、sUSDT、USDA、DIKO、ALEX、stSTX-BTC
| ツール | 説明 |
|---|---|
zest_list_assets | 対応するすべての貸付アセットを一覧表示します |
zest_get_position | ユーザーの供給/借入ポジションを取得します |
zest_supply | 利息を得るためにアセットを供給します |
zest_withdraw | 供給したアセットを引き出します |
zest_borrow | 担保を差し入れて借り入れます |
zest_repay | 借り入れたアセットを返済します |
DeFi - Bitflow DEX (Mainnet)
DEX アグリゲーターです。複数の流動性ソースを経由して取引をルーティングします。
単位: Bitflow ツールはデフォルトで人間向けの単位(
amountUnit: "human")を使用します。2 STX をスワップするには"2000000"ではなく"2"を渡してください。オンチェーンの生の整数値を扱う場合に限り、amountUnit: "base"を設定してください。詳細やよくある注意点については、単位と小数桁数のガイドを参照してください。
| ツール | 説明 |
|---|---|
bitflow_get_ticker | 市場データを取得します(API キーは不要です) |
bitflow_get_quote | スワップの見積もりを取得します |
bitflow_swap | トークンのスワップを実行します |
Pillar Smart Wallet
Zest Protocol との連携とパスキー認証に対応した sBTC スマートウォレットです。
| ツール | 説明 |
|---|---|
pillar_connect | Pillar ウォレットに接続します |
pillar_send | BNS 名またはアドレスに sBTC を送信します |
pillar_boost | レバレッジをかけた sBTC ポジションを作成します |
pillar_position | ウォレットと Zest のポジションを表示します |
自律型エージェントでは、pillar_direct_* ツールを使用してください(ブラウザーは不要です)。
ブロックチェーンへのクエリ
| ツール | 説明 |
|---|---|
get_account_info | アカウントの nonce と残高を取得します |
get_account_transactions | 取引履歴を一覧表示します |
get_block_info | ブロックの詳細を取得します |
get_mempool_info | 保留中のトランザクションを取得します |
get_contract_info | コントラクトの ABI とソースを取得します |
get_contract_events | コントラクトのイベント履歴を取得します |
get_network_status | ネットワークの稼働状況を取得します |
Yield Hunter(自律型)
| ツール | 説明 |
|---|---|
yield_hunter_start | 自律型 sBTC→Zest 預け入れを開始します |
yield_hunter_stop | イールドハンティングを停止します |
yield_hunter_status | Yield Hunter のステータスを確認します |
yield_hunter_configure | しきい値、準備金、間隔を調整します |
x402 API エンドポイント
| ツール | 説明 |
|---|---|
list_x402_endpoints | x402 エンドポイントを検出します |
execute_x402_endpoint | 自動支払いで x402 エンドポイントを実行します |
scaffold_x402_endpoint | x402 Cloudflare Worker プロジェクトを生成します |
scaffold_x402_ai_endpoint | OpenRouter を使用する x402 AI API を生成します |
TaskMarket(Base 上の仕事マーケットプレイス)
TaskMarket 上のオンチェーンエージェントの仕事を読み取り専用で検索できます(Base 上の USDC エスクロー)。ツールは公開されており、匿名で利用できます。ウォレットも支出も不要です。
| ツール | 説明 |
|---|---|
taskmarket_search | オープンタスクを一覧表示/検索します(フィルター:ステータス、フェーズ、モード、タグ、報酬範囲) |
taskmarket_get | タスク ID を指定して、タスクの詳細と最新のステータスを取得します |
taskmarket_submissions | タスクの提出物を一覧表示します |
taskmarket_stats | 公開マーケット/エージェントの統計情報を取得します(評判の確認) |
インボックスメッセージング(aibtc.com)
| ツール | 説明 |
|---|---|
send_inbox_message_direct | 他のエージェントのインボックスに有料の x402 メッセージを送信します(sBTC が必要です。インボックスが対応している場合、STX のガス代はスポンサー提供されます) |
inbox_auto_reply | Inference Marketplace のモデル(x402、sBTC)を使って、未回答の有料インボックスメッセージに返信し、署名して投稿します。1 日あたりの上限があり、二重返信はしません |
inbox_auto_reply_configure | 自動返信のシステムプロンプト、モデル、1 日あたりの上限、およびオン/オフを設定します |
使用例
ウォレットの管理:
「ウォレットアドレスを教えて」 「自分用のウォレットを作成して」 「ウォレットのロックを解除して」 「ウォレットのロックを1時間解除したままにして」
残高の確認:
「STXはいくら持っている?」 「sBTCの残高はいくら?」
トークンの送金:
「2 STXをST1PQHQKV0RJXZFY1DGX8MNSNYVE3VGZJSRTPGZGMに送金して」 「0.001 sBTCをmuneeb.btcに送金して」
NFT:
「どんなNFTを持っている?」 「このNFTをalice.btcに送って」
BNSドメイン:
「satoshi.btcのアドレスは?」 「myname.btcは利用可能?」
DeFi取引(メインネット):
「ALEXで利用可能なプールは?」 「0.1 STXをALEXに交換して」 「100 STXをALEXに交換する場合の見積もりを取得して」 「Zestで貸し出せるアセットは?」 「100 stSTXをZestに供給して」 「Zestから50 aeUSDCを借りて」 「Zestのポジションを確認して」
x402エンドポイント:
「流動性プールのトレンドを取得して」 「ダジャレを教えて」
対応トークン
よく知られたトークンはシンボルで指定できます:
- sBTC - Stacks上のネイティブBitcoin
- USDCx - Stacks上のUSD Coin
- ALEX - ALEXのガバナンストークン
- wSTX - ラップされたSTX
ALEX DEXトークン: STX、ALEX、およびalex_list_poolsの任意のトークン
Zest Protocolのアセット: sBTC、aeUSDC、stSTX、wSTX、USDH、sUSDT、USDA、DIKO、ALEX、stSTX-BTC
コントラクトIDを指定して任意のSIP-010トークンを使用することもできます:SP2X...::token-name
設定
| 環境変数 | 説明 | デフォルト |
|---|---|---|
NETWORK | mainnet または testnet | mainnet |
AIBTC_TOOLS | core、core,<group,...>、または all(ツールプロファイルを参照)。--install は core を書き込みます | 未設定の場合はすべてのツール |
CLIENT_MNEMONIC | (任意)事前設定されたニーモニック | - |
HIRO_API_KEY | (任意)レート制限を緩和する Hiro API キー | - |
SPEND_LIMIT_ENABLED | false に設定すると、ウォレットの支出上限が無効になります | true |
SPEND_LIMIT_DAILY_USTX / SPEND_LIMIT_SESSION_USTX | 1日あたり/1回のロック解除あたりの STX 支出上限(マイクロ STX) | 50000000(50 STX) |
SPEND_LIMIT_DAILY_SATS / SPEND_LIMIT_SESSION_SATS | 1日あたり/1回のロック解除あたりの BTC 支出上限(sats) | 50000 |
AIBTC_ALLOW_BLIND_SIGN | schnorr_sign_digest に生ダイジェストへの署名を許可します(署名済み sighash により、支出上限の対象外で支出が可能になります) | オフ |
NETWORK に関する注意: --install コマンドはデフォルトで NETWORK=mainnet を書き込みます(testnet を使用するには --testnet を指定します)。設定から NETWORK を完全に省略した場合、実行時のフォールバックも mainnet になります。
支出上限に関する注意: デフォルトで有効な安全策により、すべての STX、sBTC、BTC の支出(送金、コントラクト呼び出し、スポンサー付きトランザクション、x402/L402 の自動支払い、Bitcoin のブロードキャスト、psbt_sign)が、セッションごとおよび1日ごとの累積上限に照らして管理されます。これにより、単一の不正な指示や悪意のあるエンドポイントによってウォレットの資金が枯渇するのを防ぎます。上限を超える支出は、署名またはブロードキャストの前にブロックされ、エージェントはユーザーに確認するよう指示されます。上限は上記の環境変数で引き上げるか、SPEND_LIMIT_ENABLED=false で無効にできます。この上限はサーバー内で適用されます。マシン上のシェルにアクセスできるエージェントを制限するものではないため、支出関連のツールをクライアントの自動承認リストに含めないでください。SECURITY.mdを参照してください。
注意: CLIENT_MNEMONIC は任意です。Claude に独自のウォレットを作成させる方法を推奨します。HIRO_API_KEY は任意ですが、本番環境での使用を推奨します。キーがない場合、Hiro の公開レート制限に達することがあります(429 応答)。キーはplatform.hiro.soで取得できます。
Hiro のレート制限に関する注意: キーがない場合、2026-10-23 の測定では、Hiro はクライアントごとに毎秒20リクエスト、毎分50リクエストを許可していました(以下の応答ヘッダーを参照)。エージェントが通常先に使い切るのは毎分の上限です。1回のツール呼び出しで複数の Hiro リクエストが発生する場合があるため、活発なセッションでは毎分50リクエストはすぐに消費されます。Hiro のすべての応答には両方の上限が記載されているため、現在の値を自分で確認できます。
x-ratelimit-limit-stacks-second: 20
x-ratelimit-remaining-stacks-second: 19
x-ratelimit-limit-stacks-minute: 50
x-ratelimit-remaining-stacks-minute: 49
429 が発生すると、サーバーは Retry-After(Hiro から指定がない場合は60秒。待機時間は最低1秒、2秒、4秒とします)待機してから、レート制限エラーを通知する前に最大3回再試行します(src/services/hiro-api.ts)。その時間より前に再試行しても、再び429が返されるだけです。Hiro はこれらの制限を変更する可能性があるため、数値はある時点の記録として扱い、ヘッダーを正確な情報源としてください。
アーキテクチャ
You ←→ Claude ←→ aibtc-mcp-server
↓
Claude's Wallet (~/.aibtc/)
↓
┌─────────┴─────────┐
↓ ↓
Hiro Stacks API x402 Endpoints
↓ ↓
Stacks Blockchain Paid API Services
セキュリティに関する注意事項
- Claude のウォレットは、暗号化された状態であなたのマシンに保存されます
- パスワードは保存されず、暗号化されたキーストアのみが保存されます
- ニーモニックが表示されるのは作成時の1回だけです
- 15分後に自動ロックされます(設定可能)
- トランザクションはブロードキャスト前にローカルで署名されます
- 支出上限(デフォルトで有効): 単一の不正な指示によってウォレットの資金が枯渇しないよう、外部への支出にはセッションごとおよび1日ごとの上限が設けられています — 設定を参照してください
- シークレットスキャンのプレコミットフック: コントリビューターにはフックが自動インストールされ(
npm installによりインストール)、シードフレーズや秘密鍵のコミットをブロックします - mainnet では、まず少額を入金してください
ウォレットキーの保護モデルとキー漏洩時の復旧手順については、SECURITY.mdを参照してください。
上級者向け:事前設定済みのニーモニック
Claude がすぐにウォレットへアクセスできる自動セットアップでは、MCP サーバーの設定(Claude Code の場合は ~/.claude.json、Claude Desktop の場合は claude_desktop_config.json)に環境変数 CLIENT_MNEMONIC を追加します。
{
"mcpServers": {
"aibtc": {
"command": "npx",
"args": ["@aibtc/mcp-server@latest"],
"env": {
"CLIENT_MNEMONIC": "your twenty four word mnemonic phrase",
"NETWORK": "testnet"
}
}
}
}
これによりウォレット作成の手順を省略でき、Claude はすぐに取引を実行できます。
エージェントスキル
このパッケージには、あらゆる LLM に Bitcoin ウォレットの機能を効果的に使う方法を教える、Agent Skills 互換のスキルが含まれています。
これは何ですか?
aibtc-bitcoin-wallet スキルには、次の内容が用意されています。
- Bitcoin L1 操作用の構造化されたワークフロー(残高、送金、手数料)
- Pillar スマートウォレットと Stacks L2 DeFi のリファレンスガイド
- Claude Code、Cursor、Codex、その他 20 以上のツールで使える、LLM に依存しない手順
スキルの使用方法
このスキルは MCP サーバーのインストール時に自動的に含まれます。次の場所で確認できます。
- ローカル:
node_modules/@aibtc/mcp-server/skill/SKILL.md - ClawHub:clawhub.ai/skills で
aibtc-bitcoin-walletを検索してください
スキルの構成
skill/
├── SKILL.md # Bitcoin L1 core workflows
└── references/
├── at-stake.md # El Salvador prediction market & side legions
├── genesis-lifecycle.md # Agent registration & check-in
├── inscription-workflow.md # Bitcoin inscription guide
├── pillar-wallet.md # Pillar smart wallet guide
├── stacks-defi.md # Stacks L2 / DeFi operations
├── troubleshooting.md # Common issues and solutions
└── x402-inbox.md # x402 inbox messaging
開発
git clone https://github.com/aibtcdev/aibtc-mcp-server.git
cd aibtc-mcp-server
npm install
npm run build
npm run dev # Run with tsx (development)
リリース
このリポジトリでは、自動リリースに Release Please を使用しています。
- Conventional Commits(
feat:、fix:など)を使った PR をマージします - Release Please が変更履歴を含むリリース PR を作成します
- リリース PR をマージして公開します
リポジトリのシークレット(メンテナー向け)
| シークレット | 説明 |
|---|---|
NPM_TOKEN | @aibtc スコープの npm 公開トークン |
CLAWHUB_API_TOKEN | スキル公開用の ClawHub API トークン |
ClawHub API トークンを取得するには、clawhub.ai にアクセスしてアカウントを作成してください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。