Self-custodial, policy-governed BTC ↔ stablecoin routing and automations for agents and busy humans. Install the SatRails MCP with any agent (Claude, ChatGPT, OpenClaw, Hermes) to allow it to stack sats on your behalf, schedule dollar-cost-average buys over time, buy the dip any time the BTC price drops, and manage cold or hot "pockets" of liquidity. Tech stack: Model Context Protocol, Lightning Network, Bitcoin Script / Miniscript, Taproot Assets, USDT, Tempo.
Keys and policy stay on-device (zone 1): BIP-86 Taproot flex/cold pockets, optional MuSig2 (BIP-327) 2-of-2 for flex spends, WebAuthn/passkey co-sign, and PKCS#11/HSM spend caps. Agents talk only via Model Context Protocol (propose → policy check → execute over stdio or Streamable HTTP); they never see key material. An FX router picks among rails—mock/onramp, Bitcoin L1, Lightning (BOLT hold invoices + Boltz submarine swaps, or Taproot Assets RFQ), Tempo EVM HTLCs for USDT, and experimental RGB—scoring fee, latency, and liquidity. Cross-rail settles with one SHA-256-locked HTLC pair and ordered timeouts (T₂ LN CLTV before T₁ Tempo refund) so failed legs refund; Miniscript/output descriptors register cold vault policy (recovery + family multi) without address reuse. Receipts are re-verified against chain data (Esplora or SQD). SQLite backs DCA schedules and cosign grants; Sat Stash is the same HTTP surface for non-agent onboarding.
| Command | What you see |
|---|---|
pnpm fund |
Create throwaway signet wallet; wait for faucet → flex pocket |
pnpm demo |
Narrated stack: propose → mock USD + real signet cold settle |
pnpm demo:pi:mcp |
Same flow over MCP stdio (no LLM) — tools an agent would call |
pnpm demo:pi |
Interactive Pi agent with /stack |
pnpm demo:tempo / demo:tempo:kill |
Tempo↔LN HTLC happy path or mid-swap kill |
pnpm demo:hsm |
SoftHSM refuses an oversized spend |
pnpm satstash |
Consumer UI on HTTP MCP (/api/*) |
