Skip to main content
Glama

register_btc_multisig_wallet

Idempotent

Registers a multisig Bitcoin wallet policy with a Ledger device. Constructs a descriptor from cosigners, verifies one matches the Ledger, and persists the policy for future signing.

Instructions

One-time registration of a multi-sig Bitcoin wallet policy with the Ledger BTC app (BIP-388 wallet policies). REQUIREMENTS: Ledger plugged in over USB, device unlocked, the 'Bitcoin' app open on-screen. Constructs a wsh(sortedmulti(M,@0/**,@1/**,...)) descriptor from the supplied cosigners, verifies the connected Ledger's master fingerprint matches exactly one cosigner slot, calls Ledger's registerWallet (the device walks every cosigner xpub fingerprint on-screen for verification — the user MUST confirm each fingerprint matches what they expect, since this is the moment that anchors the policy), and persists the descriptor + 32-byte HMAC. The HMAC is reused on every subsequent sign_btc_multisig_psbt call so the user only walks the descriptor approval flow once per setup. Phase 2 scope: P2WSH (wsh) only. Hard-validates every cosigner xpub via @scure/bip32 round-trip — typos that would silently register a wallet we can never sign with are refused up-front.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesUser-chosen label for the multi-sig setup, e.g. "Family vault". Must be printable ASCII, ≤ 16 bytes (Ledger BTC app caps wallet-policy names at 16 bytes). Surfaces on-device during the registration approval flow and is the lookup key for `sign_btc_multisig_psbt`. Must be unique within the registered wallet set.
thresholdYesM in M-of-N. Must be ≥ 1 and ≤ cosigner count. Phase 2 hard-caps at 15 (the Ledger BTC app's wallet-policy limit).
cosignersYesCosigner slots in the order they should appear in the descriptor's `@N` slots. Slot order is part of the descriptor identity — every cosigner must agree on the same ordering or they'll register different wallets. Exactly one entry's fingerprint+xpub must match the connected Ledger; the device flags it `isOurs` and uses it for signing. Phase 2 requires ≥ 2 cosigners (1-of-1 is single-sig).
scriptTypeYesScript type for the multi-sig wrapper. Phase 2 supports "wsh" only (P2WSH native segwit, `bc1q...`-style addresses). Taproot multi-sig and P2SH-wrapped multi-sig are deferred.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses detailed behavior: descriptor construction, fingerprint verification, on-device confirmation process, HMAC persistence, and xpub validation. Annotations already provide idempotentHint, and the description adds rich behavioral context without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is thorough and front-loaded with core purpose and requirements. While a bit lengthy, every sentence adds value. Could be slightly tighter but is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity and lack of output schema, the description covers prerequisites, process steps, limitations (Phase 2), and mentions related tools. It is complete for an agent to understand usage and expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema descriptions are already comprehensive. The tool description adds context (e.g., BIP-388, HMAC reuse) but does not significantly enhance per-parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool registers a multi-sig Bitcoin wallet policy with the Ledger BTC app (BIP-388). It uses specific verbs and resource, distinguishing it from siblings like sign_btc_multisig_psbt and unregister_btc_multisig_wallet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists requirements (Ledger connected, unlocked, Bitcoin app open) and scope (Phase 2, P2WSH only). It implies this is a one-time setup before signing, but does not explicitly state when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/szhygulin/recon-crypto-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server