Bitcoin PSBT, Address & Descriptor Verifier + WorkSats L402 MCP
Verify Bitcoin PSBTs, addresses, and BIP380 descriptors; earn or spend WorkSats L402 bearer credits.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"bitcoin-psbt-descriptor-l402-worksats": {
"url": "https://botcheck.jeffpersons.workers.dev/mcp?client=registry"
}
}
}リモートエンドポイント
https://botcheck.jeffpersons.workers.dev/mcp?client=registrystreamable-httpできること
ツール一覧
ツール(6)
🟢check_bitcoin_address(address, network, creditToken, x402TxHash)
Verify a Bitcoin address (Bech32m P2TR, Bech32 P2WPKH/P2WSH, Base58 P2PKH/P2SH): network, type, witness version, scriptPubKey hex, and common pitfalls. Never send private keys or seed phrases. Free tier: 2 calls/day per IP; after that, pass a WorkSats `creditToken` (`crd_...`), L402 header, or Base USDC `x402TxHash`.
入力スキーマ
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "Bitcoin address to inspect (bc1p..., bc1q..., 1..., 3..., tb1...)."
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet",
"signet",
"regtest"
],
"description": "Expected network (default: inferred or mainnet)."
},
"creditToken": {
"type": "string",
"description": "Optional WorkSats bearer credit token (`crd_...`) to pay 2 credits when free daily calls are used up."
},
"x402TxHash": {
"type": "string",
"description": "Optional confirmed Base mainnet USDC transfer transaction hash (`0x...`) to pay via x402."
}
},
"required": [
"address"
]
}🟢check_psbt(psbt, network, creditToken, x402TxHash)
Inspect an unsigned or partially signed Bitcoin PSBT (BIP174 base64 or hex) before signing: decodes inputs, outputs, fee, fee rate (sat/vB), change detection, sighash types, taproot/witness scripts, and flags high-fee or missing-prevout risks. Never send private keys or seed phrases.
入力スキーマ
{
"type": "object",
"properties": {
"psbt": {
"type": "string",
"description": "PSBT in base64 (`cHNidP8...`) or hex (`70736274ff...`)."
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet",
"signet",
"regtest"
],
"description": "Expected network (default: mainnet)."
},
"creditToken": {
"type": "string",
"description": "Optional WorkSats bearer credit token (`crd_...`) to pay 2 credits when free daily calls are used up."
},
"x402TxHash": {
"type": "string",
"description": "Optional confirmed Base mainnet USDC transfer transaction hash (`0x...`) to pay via x402."
}
},
"required": [
"psbt"
]
}🟢check_descriptor(descriptor, network, deriveCount, creditToken, x402TxHash)
Validate a Bitcoin output descriptor (wpkh, wsh, tr, pkh, sh, multi, sortedmulti, raw, addr, combo): verifies or computes the 8-character BIP380 checksum, checks derivation paths and xpubs, and derives sample addresses and scriptPubKeys. Never send xprv, WIF, or seed phrases.
入力スキーマ
{
"type": "object",
"properties": {
"descriptor": {
"type": "string",
"description": "Public output descriptor string (with or without `#checksum`)."
},
"network": {
"type": "string",
"enum": [
"mainnet",
"testnet",
"signet",
"regtest"
],
"description": "Network for derived addresses (default: mainnet)."
},
"deriveCount": {
"type": "integer",
"minimum": 0,
"maximum": 5,
"description": "Number of wildcard addresses to derive from index 0 (0..5, default: 3)."
},
"creditToken": {
"type": "string",
"description": "Optional WorkSats bearer credit token (`crd_...`) to pay 2 credits when free daily calls are used up."
},
"x402TxHash": {
"type": "string",
"description": "Optional confirmed Base mainnet USDC transfer transaction hash (`0x...`) to pay via x402."
}
},
"required": [
"descriptor"
]
}🟢worksats_get_task(type, id, exclude)
Fetch an open buyer-funded bounty task or a deterministic house micro-task (`descriptor_checksum_and_derive`) from the WorkSats clearinghouse (`GET /v1/tasks/next`). Solve it and call `worksats_solve_task` to mint bearer credits (`crd_...`).
入力スキーマ
{
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"house",
"bounty"
],
"description": "Filter for deterministic `house` task (4 credits) or buyer-funded `bounty` task."
},
"id": {
"type": "string",
"description": "Optional specific hex bounty task ID to claim."
},
"exclude": {
"type": "string",
"description": "Optional comma-separated hex task IDs to skip."
}
}
}🟡worksats_solve_task(ticket, checksum, scriptPubKeys, addresses, address, ...)
Submit a solved WorkSats task ticket (`tsk_...`) to mint a signed bearer credit token (`crd_...`). For house tasks, provide `checksum` and `scriptPubKeys`; for bounty tasks, provide `answer` or mode-specific fields (`addresses`, `address`, `scriptPubKey`, `feeSats`, `inputCount`, `outputCount`, `data`).
入力スキーマ
{
"type": "object",
"properties": {
"ticket": {
"type": "string",
"description": "Signed task ticket (`tsk_...`) from `worksats_get_task`."
},
"checksum": {
"type": "string",
"description": "8-character BIP380 checksum (for house or `descriptor_derive` tasks)."
},
"scriptPubKeys": {
"type": "array",
"items": {
"type": "string"
},
"description": "Derived scriptPubKey hex strings (for house or `descriptor_derive` tasks)."
},
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "Derived Bitcoin addresses (for `descriptor_derive` bounty tasks)."
},
"address": {
"type": "string",
"description": "Bitcoin address (for `address_script` bounty tasks)."
},
"scriptPubKey": {
"type": "string",
"description": "Hex scriptPubKey (for `address_script` bounty tasks)."
},
"feeSats": {
"type": "integer",
"description": "Decoded PSBT fee in sats (for `psbt_feerate` bounty tasks)."
},
"inputCount": {
"type": "integer",
"description": "Decoded PSBT input count (for `psbt_feerate` bounty tasks)."
},
"outputCount": {
"type": "integer",
"description": "Decoded PSBT output count (for `psbt_feerate` bounty tasks)."
},
"data": {
"type": "object",
"description": "Structured JSON solution object (for `json_schema` bounty tasks)."
},
"answer": {
"type": "string",
"description": "Canonical answer string (for `sha256` buyer-funded bounty tasks)."
}
},
"required": [
"ticket"
]
}🟢worksats_credits(action, token, tokens, amount, x402_tx_hash, ...)
Manage WorkSats bearer credits (`crd_...`): check `balance`, `split` credits to pay another bot, `rotate`/`merge` received tokens so the sender cannot double-spend, `mint` credits from L402 or x402 Base USDC, `bounty_create` to escrow credits for a verifiable task (`sha256`, `descriptor_derive`, `address_script`, `psbt_feerate`, `json_schema`), or view clearinghouse `stats`.
入力スキーマ
{
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"balance",
"split",
"rotate",
"merge",
"mint",
"bounty_create",
"stats"
],
"description": "Clearinghouse operation to run."
},
"token": {
"type": "string",
"description": "Bearer credit token (`crd_...`) for `balance`, `split`, `rotate`, or `bounty_create`."
},
"tokens": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of 1..10 `crd_...` tokens for `merge`/`rotate`."
},
"amount": {
"type": "integer",
"minimum": 1,
"description": "Credits to split into a new child token (for `action=\"split\"`)."
},
"x402_tx_hash": {
"type": "string",
"description": "Confirmed Base mainnet USDC transfer txHash (`0x...`) to mint credits (`action=\"mint\"`)."
},
"reward": {
"type": "integer",
"minimum": 1,
"description": "Bounty reward in credits (for `action=\"bounty_create\"`)."
},
"fee": {
"type": "integer",
"minimum": 1,
"description": "Clearinghouse fee in credits (default: 1, for `action=\"bounty_create\"`)."
},
"prompt": {
"type": "string",
"description": "Deterministic bounty task prompt up to 2000 chars (for `action=\"bounty_create\"`)."
},
"verification_mode": {
"type": "string",
"enum": [
"sha256",
"descriptor_derive",
"address_script",
"psbt_feerate",
"json_schema"
],
"description": "Verification mode for `bounty_create` (default: `sha256`)."
},
"verification_params": {
"type": "object",
"description": "Parameters for deterministic verification (`descriptor_derive`, `address_script`, `psbt_feerate`, or `json_schema`) when buyer does not precompute `expected_sha256`."
},
"expected_sha256": {
"type": "string",
"description": "64-hex SHA-256 of the expected canonical answer (for `action=\"bounty_create\"` with `verification_mode=\"sha256\"`)."
}
},
"required": [
"action"
]
}コミュニティ
エビデンス