Aquest cap de setmana vaig reunir un servidor MCP per a una cartera Bitcoin: eines que els agents d'IA poden trucar mitjançant el protocol de context model. El [repo](https://github.com/markmhendrickson/mcp-server-bitcoin) exposa 93 eines a través de la capa 1 i la capa 2. Un mnemotècnic els condueix a tots dos.

Abans vaig ser director general de [Leather](https://leather.io), una cartera criptogràfica que també admet Bitcoin i Stacks. A Leather vaig veure que les carteres d'autocustodia orientades a humans arribaven principalment a persones disposades a absorbir l'atenció i la complexitat (per exemple, degens i desenvolupadors). Això significava la higiene clau, la consciència de les tarifes, els fluxos de confirmació i la resta. La càrrega cognitiva va mantenir estret el mercat adreçable real.

Les carteres agents canvien això. Quan la interfície principal són agents que raonen i executen dins de la política, l'usuari només aprova allò que importa. La fricció cau i creix el conjunt de persones que pràcticament poden aguantar les seves pròpies claus.

Les mateixes dues cadenes. Superfície diferent.

## Què exposa el servidor (L1 i L2 en una superfície)

El servidor és un únic procés MCP. Els clients envien noms d'eines i arguments JSON a través de stdio i obtenen resultats estructurats. Les accions destructives (enviaments, signatura i emissió, desplegament) admeten `dry_run` i no emeten per defecte. El servidor mai retorna claus ni mnemotècniques.

### Capa 1 (Bitcoin)

**Core Bitcoin:**

- Derivació d'adreces per a P2PKH, P2SH-P2WPKH, P2WPKH i P2TR amb claus públiques i camins.
- Comptes amb saldos per tipus d'adreça ([mempool.space](https://mempool.space) per a dades UTXO); saldo de la cartera i preus de BTC (USD, EUR).
- Enviaments únics i multidestinataris (import en BTC o EUR); previsualitza la transferència amb l'estimació de la tarifa abans de l'enviament.
- Escombrat (enviament màxim) i consolidació UTXO.
- Signe PSBT, descodificació i signe de lot; signar i verificar el missatge (herència ECDSA i BIP-322).
- Nivells de tarifes de mempool.space i estimació de tarifes per recompte d'entrada/sortida i tipus d'adreça.
- Llistat UTXO amb filtres (tipus d'adreça, valor mínim, només confirmat) i detalls per UTXO.

**Ordinals i inscripcions:**

- Llista d'inscripcions amb paginació; detalls de la inscripció (gènesi, tipus de contingut, ordinal sat, raresa, ubicació).
- Envia inscripcions (UTXO complet o dividit de manera que només el rang de sat de la inscripció va al destinatari).
- Extreu ordinals d'UTXO mixtes; recuperar BTC de l'adreça ordinals (escombrar UTXO sense inscripció); recuperar els ordinals que van arribar a l'adreça de pagament a l'adreça de l'arrel principal.
- Creeu inscripcions individuals o per lots amb estimacions de tarifes de confirmació/revelació.

**Gestió de transaccions i cartera:**

- Historial de transaccions per a BTC i Stacks; estat per a una sola tx.
- Accelera el BTC pendent mitjançant RBF; cancel·la BTC pendent (enviament RBF a un mateix).
- Configuració de xarxa i punts finals de l'API; canviar mainnet/testnet; afegir una xarxa personalitzada.
- Llista tots els noms i descripcions d'eines compatibles.

**Ledger (aplicació Bitcoin):**

- Obteniu adreces BTC des d'un dispositiu [Ledger](https://www.ledger.com) connectat.
- Signa PSBT amb l'aplicació Ledger Bitcoin.

### Capa 2 (piles)

El mateix mnemotècnic deriva les claus de Stacks (camí `m/44'/5757'/0'/0/0`). [Hiro](https://hiro.so) Stacks API per a dades en cadena i difusió.

**Piles:**

- Adreces i claus públiques; comptes amb saldo STX, imports bloquejats, noces.
- Balanç incloent fitxes fungibles i no fungibles.
- Transferència STX (micro-STX) amb nota opcional; previsualització de la transferència amb tarifa i comprovació del saldo.
- Transferències SIP-10 fungible i SIP-9 NFT mitjançant trucades de contracte.
- Claredat: trucada a funció pública, contracte de desplegament, trucada de només lectura.
- Signar Stacks tx serialitzat (SIP-30), signar missatge, signar dades estructurades SIP-018; noce i estimació de la quota.
- Actualització del perfil en cadena ([schema.org/Person](https://schema.org/Person)) per als noms BNS.
- Consultes de transaccions amb filtres (tipus, rang de blocs, no ancorats) i per contracte.
- Mempool: llista de transaccions pendents, estadístiques de mempool, transaccions abandonades.
- Explorador de blocs: blocs recents, bloc per alçada o hash, blocs d'apilament per a un bloc de Bitcoin determinat.
- Esdeveniments de contracte: esdeveniments per a un contracte o esdeveniments d'actiu per a una adreça.
- Metadades del testimoni: metadades i titulars SIP-10 i SIP-9.
- Informació de la xarxa i estat/estat de salut.

**Canvis, DeFi i pont:**

- Parells i protocols compatibles ([ALEX](https://alexlab.co/), [Bitflow](https://www.bitflow.finance), [Velar](https://www.velar.co)).
- Cotització d'intercanvi (producció estimada, tarifa, comissions) per als tres; executar l'intercanvi mitjançant ALEX DEX. Bitflow i Velar admeten quotes i descobriment de parells; podeu afegir l'execució mitjançant SDK de protocol (per exemple, l'SDK Velar retorna els paràmetres de trucada de contracte).
- Canviar l'historial de l'activitat en cadena.
- Saldo sBTC i informació de dipòsit/retirada de pont.
- Apilament: estat actual de PoX, informació del cicle (blocs restants, percentatge completat, temps estimat restant, taxa de participació), iniciar l'apilament en solitari, revocar la delegació.

**BNS i dades del mercat:**

- Cerca de [BNS](https://docs.stacks.co/docs/stacks-blockchain/bns) (nom a adreça), noms propietat de l'adreça, registre de nom BNS.
- Preus de diversos actius (per exemple, [CoinGecko](https://www.coingecko.com)); historial de preus per al gràfic.
- Resum de cartera (BTC + STX en USD); tots els actius i objectes de col·lecció (inscripcions, Stacks NFT).

**Ledger (aplicació Stacks):**

- Obteniu adreces de Stacks de Ledger.
- Signa la transacció de Stacks amb l'aplicació Ledger Stacks.

## Seguretat i disseny

⚠️ Aquest servidor MCP és experimental i no és segur per a fons significatius. Utilitzeu només amb carteres que esteu preparats per perdre. Ningú no ha provat ni auditat el codi. El tracte com un artefacte de recerca per explorar superfícies de carteres natives dels agents.

Les operacions destructives són per defecte `dry_run: true`. Existeixen eines de previsualització i estimació per a cada camí d'enviament. Les claus es mantenen fora del control de versions i de les respostes de l'eina. L'script d'execució carrega `.env` des de l'arrel del repo.

**Variables de la clau de la cartera (mantenir en secret, no comprometre's mai):**

- **`BTC_PRIVATE_KEY`** — Clau privada de Bitcoin codificada per WIF; si s'estableix, té prioritat sobre la mnemotècnica.
- **`BTC_MNEMONIC`** — Frase llavor BIP-39; el servidor l'utilitza per derivar les claus de Bitcoin i Stacks (mateixa mnemotècnica, camí `m/44'/5757'/0'/0/0` per a Stacks).
- **`BTC_MNEMONIC_PASSPHRASE`** — Frase de contrasenya BIP-39 opcional per utilitzar amb `BTC_MNEMONIC`.

**Seguretat i límits (env o .env):**

- **`BTC_NETWORK`** — `mainnet` o `testnet` (`testnet` per defecte).
- **`BTC_MAINNET_ENABLED`** — Establiu-ho per permetre enviaments a la xarxa principal (marcador de seguretat).
- **`BTC_DRY_RUN`** — Quan s'estableix (per defecte), les operacions destructives (enviaments, signatura i emissió, desplegament) no s'emeten; establiu-lo a "false" per permetre transaccions reals.
- **`BTC_MAX_SEND_BTC`** — Limitació opcional de l'import d'enviament en BTC; el servidor rebutja les sol·licituds superiors a aquesta.
- **`BTC_MAX_FEE_SATS`** — Limitació opcional de la tarifa en satoshis per transacció.
- **`STX_ACCOUNT_INDEX`** — Apila l'índex de compte de derivació (per defecte `0`).
- En cas contrari, la configuració impulsa el nivell de tarifa (tarifa fixa o nivell mempool.space: hora, mitja hora, més ràpid).

## Com s'adapta a la meva pila d'agents

Executo agents amb una arquitectura de tres capes. Les capes estan netament separades perquè la memòria, el raonament i l'acció es quedin al lloc correcte.

**Capa de veritat:** Aquest és el substrat de memòria. Conté dades mecanografiades i estructurades: fons, fluxos, transaccions, contactes, tasques i la resta. A la meva configuració, la botiga canònica és [Neotoma](/posts/truth-layer-agent-memory). Utilitza proveïment d'esdeveniments i reductors, amb una resolució completa de procedència i entitat. Els agents en van llegir. Mai escriuen la veritat directament. Totes les actualitzacions flueixen a través d'esdeveniments de domini produïts per la capa d'execució.

**Capa estratègica:** aquí és on viuen els objectius, les limitacions i les tàctiques. Aquí hi ha documents d'estratègia, llibres de jugades tàctiques i manuals d'operacions. Els agents utilitzen aquesta capa per raonar: llegeixen l'estat del món, avaluen les prioritats i el risc i produeixen decisions i ordres. L'estratègia és pura cognició. Sense efectes secundaris. Estat entrant, decisions fora.

**Capa d'execució:** aquí és on es produeixen les accions externes. Pren ordres de la capa d'estratègia i realitza efectes secundaris mitjançant adaptadors: correu electrònic, calendari, DNS i, en aquest cas, la cartera Bitcoin i Stacks MCP. El servidor de cartera és un adaptador d'execució entre molts. Mai muta la capa de veritat. Fa la cosa (enviar, signar, intercanviar) i la resta de la pila registra el que va passar mitjançant esdeveniments de domini. Comandes entrades, esdeveniments fora.

Defineixo i mantinc l'estratègia. Els agents llegeixen de la capa de veritat i criden a les eines MCP per executar-les. No faig servir interfícies d'usuari de criptografia d'apuntar i fer clic per a operacions rutinàries. Només intervinc per aprovar accions que superin els meus límits preestablerts.

A curt termini, els meus casos d'ús són puntuals: pagar serveis, reequilibrar carteres mitjançant indicacions manuals. A més llarg termini vull que aquests fluxos estiguin automatitzats. Els agents supervisarien, raonarien i executarien dins de la política. Miraria explicacions i aprovaria quan fos necessari.

## Com estic abordant la construcció

Primer estic provant el servidor en els meus propis flux de treball. Estic provant cada superfície (enviaments, PSBT, ordinals, transferències de piles, intercanvis) gradualment amb petites quantitats i tirades en sec.

L'he connectat a la mateixa pila on ja faig servir [capes de veritat i estratègia](/posts/agentic-search-and-the-truth-layer#where-ive-hit-limits). Els agents poden combinar accions de cartera amb calendari, correu electrònic i dades. Els usuaris externs encara no estan a l'abast.

El meu objectiu és validar la forma d'una superfície de cartera d'agent i fer que les meves operacions de Bitcoin i Stacks siguin gestionades per agents en lloc de manuals.

Per executar-lo: cloneu [mcp-server-bitcoin](https://github.com/markmhendrickson/mcp-server-bitcoin) (o afegiu-lo com a submòdul a `mcp/btc_wallet/`), afegiu el servidor a la vostra configuració MCP (utilitzeu `run_btc_wallet_mcp`), i feu servir un camí de prova de la paret en sec.