Skip to main content
Glama
aibtcdev
by aibtcdev

btc_sign_message

Signs plain text messages with Bitcoin addresses to prove ownership or authenticate off-chain, automatically choosing BIP-322 or BIP-137 based on address type.

Instructions

Sign a plain text message using Bitcoin message signing. Automatically selects BIP-322 for native SegWit (bc1q) and Taproot (bc1p) addresses, and BIP-137 for legacy (1...) and wrapped SegWit (3...) addresses. Use addressType 'p2tr' to force signing with the Taproot key. Use cases: proving Bitcoin address ownership, authentication, off-chain verification. Requires an unlocked wallet with Bitcoin keys.

Tip: call earning_opportunities to see how to put your assets to work.

Input Schema

NameRequiredDescriptionDefault
messageYesThe plain text message to sign.
addressTypeNoOptional: address type to sign with. 'p2wpkh' uses native SegWit (bc1q, BIP-322), 'p2tr' uses Taproot (bc1p, BIP-322). If omitted, auto-detects from wallet address type.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.77.0

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses automatic BIP-322/BIP-137 selection based on address type, the addressType override, and the wallet-unlock requirement. It does not describe the returned signature format or error behavior, which are minor gaps for a local signing operation.

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

Conciseness3/5

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

The main content is front-loaded and efficient, but the unrelated 'Tip: call earning_opportunities...' sentence does not earn its place in a signing tool description and adds marketing noise.

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

Completeness3/5

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

The description covers invocation essentials: message signing, protocol selection, optional addressType, and the unlocked-wallet prerequisite. However, there is no output schema and the description does not state what is returned (e.g., a signature string), which is an important gap for a signing tool.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents both parameters. The description adds meaningful context by mapping address types to signing standards and explaining that addressType 'p2tr' forces use of the Taproot key, beyond what the schema alone provides.

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

Purpose4/5

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

The description uses a specific verb ('Sign') and resource ('plain text message using Bitcoin message signing'), and differentiates from non-Bitcoin signing siblings by naming the Bitcoin signing context. It does not explicitly name alternatives like btc_verify_message or stacks_sign_message, but the purpose is clear.

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?

It lists concrete use cases (proving ownership, authentication, off-chain verification) and states the prerequisite of an unlocked wallet with Bitcoin keys. It also explains how to force Taproot signing via addressType. It stops short of naming when-not-to-use or alternative tools.

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

Deploy Server

Other Tools