Skip to content

Releases: gpu7/agent-bitcoin

Agent-to-Agent Lightning payment

Choose a tag to compare

@gpu7 gpu7 released this 17 Sep 18:49
c282c5b

Python SDK plus L402 merchant tools (Bitcoin / Lightning / Nostr JSON, typically 100 sats). 8081 stays allowlisted (/32); not a public catalog.

Remote client pack — Neutrino LND on the client, client-hello.json, private channel to AWS, setup.sh / client_pack.py, 100-sat smoke (mempool-feerate).

Swarms — 2-agent and 8-agent demos share one Mac payer; they choose who pays Aperture. Winner: hash, fee-sats puzzle, or optional Grok llm-gate (XAI_API_KEY, never committed). --no-llm remains the free path. Test hook: SWARM_LLM_FORCE_VOTE.

Agent-to-agent Lightning — two LND nodes (examples/a2a_ln_pay.md): AWS invoices, Mac (or Ubuntu) pays. Not the swarm.

Docs — channel close → on-chain Bitcoin; README features; Grok / Ollama examples.

Rebuild origin and restart Aperture if you need new paid routes. Details: CHANGELOG.md, docs/l402-tools.md, docs/l402-client-pack.md.

Eight-agent swarm demo

Choose a tag to compare

@gpu7 gpu7 released this 11 Sep 17:02
bdf0b7a

Eight autonomous agents (roles a1–a8) with Nostr ids share one Mac LND wallet and the existing private channel to AWS. They negotiate on a local file bus; the highest score pays one L402 call (typically GET /paid/finance/mempool-feerate at 100 sats).

Mock: --offline-bus on one host.

Live: all eight processes on the Mac; Aperture invoice on AWS; pay from agent-bitcoin-lnd-*. Do not pay from the AWS invoice node (self-pay). Set AGENT_BITCOIN_ALLOW_MAINNET=1 and AGENT_BITCOIN_ALLOW_AUTOPAY=1 for mainnet.

Launcher: ./examples/swarm_l402_8_all.sh (one terminal). Per-role: ./examples/swarm_l402_8.sh --role a1.

Guide: examples/swarm_l402_8.md.Python 3.12 + .venv-nostr. Clear .nostr-poc/bus/ before a run. Check Mac lncli listpayments for ~100 sat SUCCEEDED. The two-agent demo is unchanged.

What's Changed

  • Docs: wallets and chain backends by @gpu7 in #133
  • Examples: eight-agent swarm L402 by @gpu7 in #134
  • Docs: lab EIP 3.90.159.146 by @gpu7 in #135
  • Docs: eight-agent swarm setup like two-agent by @gpu7 in #136
  • Docs: swarm negotiate score by @gpu7 in #137
  • Release: 26.6.0 for PyPI / tag v.26.6.0 by @gpu7 in #138

Full Changelog: v.26.5.0...v.26.6.0

Two-agent swarm demo

Choose a tag to compare

@gpu7 gpu7 released this 10 Sep 19:02
ad71f6a

Example of two autonomous AI agents with Nostr ids that talk on a local file bus, pick who pays, and settle one L402 tool call.

Mock: --offline-bus on one host (including AWS). No Lightning. Good for ids + negotiate.

Live: both agent processes on the Mac, Aperture invoice on AWS, pay from Mac LND (agent-bitcoin-lnd-*). Typical call: GET /paid/finance/mempool-feerate at 100 sats. Paying from the AWS invoice node fails (self-payments not allowed).

Setup uses Python 3.12 and .venv-nostr (.[nostr]). Do not use uv run python on 3.14. Clear .nostr-poc/bus/ before a new run.

Engineer guide: examples/swarm_l402.md. Wrapper: examples/swarm_l402.sh.

Check a live pay on the Mac: lncli listpayments — expect ~100 sat SUCCEEDED.

Add agent tools

Choose a tag to compare

@gpu7 gpu7 released this 08 Sep 15:38
058bfdd

Notes:

Paid HTTP tools for autonomous agents on the existing Aperture L402 gateway (typically 100 sats). After Lightning payment the origin returns a small JSON digest. Minimum invoice amount is 100 sats. These do not replace mempool.space, a Lightning node UI, or a Nostr client.

Bitcoin
GET /paid/finance/mempool-feerate — fast / medium / slow sat/vB
GET /paid/finance/mempool-backlog — how full the mempool is
GET /paid/finance/fee-for-vsize — total fee sats from vbytes
GET /paid/finance/confirm-target — wait window → sat/vB
GET /paid/finance/btc-usd — BTC/USD pass-through

Lightning
POST /paid/finance/ln-path-fee-hint — routing fee hint from AWS LND
POST /paid/finance/ln-invoice-decode — inspect a BOLT11
POST /paid/finance/ln-invoice-preflight — allow/reject before pay

Nostr
README documents existing identity / NWC
POST /paid/nostr/event-verify — id + signature check
POST /paid/nostr/npub-decode — bech32 → hex (nsec rejected)
POST /paid/nostr/zap-receipt-inspect — NIP-57 receipt inspect, not a wallet

Rebuild origin and restart Aperture to pick up new routes. Details: docs/l402-aperture.md and CHANGELOG.md.

Add mempool-feerate

Choose a tag to compare

@gpu7 gpu7 released this 07 Sep 14:57
21c402c

mempool-feerate is a small paid HTTP endpoint (GET /paid/finance/mempool-feerate, 100 sats via L402). After Lightning payment it returns JSON with three on-chain fee bands — fast / medium / slow — in sats per virtual byte, plus a timestamp and a short cache TTL.

It pulls public estimates from mempool.space’s recommended-fees API, digests them into those three integers, and caches the result for 15–60 seconds. It does not replace mempool.space, scrape the website, or help with Lightning-only invoice pays. It is for an agent that is about to send on-chain bitcoin (sweep, channel open/close, on-chain pay) and needs a current fee hint so it neither underpays nor overpays.

v.26.2.0

Choose a tag to compare

@github-actions github-actions released this 16 Aug 21:41
457d56c

What's Changed

  • Publish agent-bitcoin to PyPI and drop TestPyPI by @gpu7 in #91
  • Align package version 26.2.0 for PyPI by @gpu7 in #92

Full Changelog: v.26.2.0...v26.2.0

L402 gateway

Choose a tag to compare

@gpu7 gpu7 released this 16 Aug 16:09
50ffa3f

Add Aperture L402 paid gateway.

Remove transaction fee

Choose a tag to compare

@gpu7 gpu7 released this 15 Aug 17:29
3aa529a

Removed transaction fee (platform fee).

Cleanup project

Choose a tag to compare

@github-actions github-actions released this 13 Aug 15:54
c9d23fb

What's Changed

  • Add NIP-44 v2 and public-relay NWC (Mac/AWS) by @gpu7 in #71
  • Harden NWC public relay list (skip 503s) by @gpu7 in #72
  • Drop offchain.pub from default NWC relays by @gpu7 in #73
  • Stop NWC public-relay listen from hanging on connect by @gpu7 in #74
  • Keep NWC listen SUB alive across poll cycles by @gpu7 in #75
  • Set default platform fee to 21 sats by @gpu7 in #76
  • Bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #1
  • Bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #4
  • Bump actions/setup-python from 5 to 7 by @dependabot[bot] in #5
  • Bump astral-sh/setup-uv from 5 to 7 by @dependabot[bot] in #3
  • Bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #2
  • Bump aiohttp from 3.14.1 to 3.14.3 by @dependabot[bot] in #48
  • Bump setuptools from 82.0.1 to 83.0.0 by @dependabot[bot] in #45
  • Bump cryptography from 49.0.0 to 50.0.0 by @dependabot[bot] in #47
  • Pin trivy-action so Docker CI can resolve by @gpu7 in #77
  • Release v.26.0.0 by @gpu7 in #78

New Contributors

Full Changelog: v.25.0.0...v.26.0.0

Bitcoin mainnet

Choose a tag to compare

@gpu7 gpu7 released this 12 Aug 18:00
f8341db

Implementation on bitcoin mainnet.