{"slug": "conduit-self-hosted-bitcoin-lightning-payments-for-ai-agents", "title": "Conduit – Self-hosted Bitcoin Lightning payments for AI agents", "summary": "Conduit released v0.8.4 of its self-hosted Bitcoin Lightning payment infrastructure for AI agents, enabling operators to run their own LND node with virtual sub-balances, spending policies, and a platform fee mechanism. The software is live on testnet and mainnet, with a full audit pass and operator console, allowing developers to programmatically send, receive, and account for Bitcoin payments without a SaaS dependency.", "body_md": "**Self-hosted Bitcoin Lightning payment infrastructure for autonomous AI agents.**\n\nConduit is software tooling you run on **your own** infrastructure, in front of\n**your own** LND node, with **your own** keys. It gives any AI agent a virtual\nLightning wallet, a spending policy, and an API to send, receive, and account\nfor Bitcoin payments — programmatically, with hard guardrails the agent cannot\noverride.\n\nThere is no Conduit SaaS: you host it, Conduit never holds your funds and never\nphones home. At the operator level it's self-hosted — your node, your keys, your\nrules. The agents you create are **virtual sub-balances** in a ledger that you,\nthe operator, control: they hold a scoped API key, not a signing key, and you\ncan credit, debit, or sweep them at any time.\n\nStatus: **v0.8.4 — running live on testnet and mainnet** (testnet/regtest plus\na live mainnet node; the first real mainnet payment has settled end-to-end —\nstill early and small, single-operator, not production-at-scale). The operator\ntreasury (added in 0.8.3) lets you see accrued platform-fee revenue and withdraw\naccrued BTC on-chain, gated by a solvency guard (node assets can never drop below\nwhat you owe agents). 0.8.4 adds a full audit/red-team pass, the complete\noperator console, and an agent-pays-over-Lightning demo (see `DEMO.md`\n\n).\n\n- Website:\n[https://conduit.energy](https://conduit.energy) - Hosted demo API:\n[https://api.conduit.energy](https://api.conduit.energy)(testnet) ·[https://api-mainnet.conduit.energy](https://api-mainnet.conduit.energy)(mainnet) - Docs:\n[https://docs.conduit.energy](https://docs.conduit.energy)\n\nYou deploy Conduit (a 5-minute Docker bring-up) against your LND node. Conduit sits in front of LND as a policy + accounting layer:\n\n**You** hold the LND seed and macaroon. Conduit only ever talks to LND over the macaroon**you** mount into it.**You** are the operator. The bootstrap API key is**your** master key to**your own** system — it mints the scoped keys you hand to your agents.**You** credit and debit the virtual sub-balances of the agents running on**your** node — Conduit is custodial*for the agents by construction*: the agent balances are operator-controlled IOUs in Conduit's ledger, and the underlying sats stay in your channels under your keys.**You** set a per-transaction**platform fee**(in sats) that Conduit adds on top of each payment and keeps on settlement — that fee is** your**revenue, configured by you, never a Conduit cut.\n\nConduit's built-in monetization is a small, usage-based **platform fee in\nsatoshis** that the operator who deploys Conduit configures. It is charged on\ntop of each payment, kept when the payment settles, and refunded in full if the\npayment fails. Sats only — no fiat, no cards, no subscription.\n\n| env var | default | meaning |\n|---|---|---|\n`PLATFORM_FEE_PERCENT` |\n`0.5` |\nplatform fee, as a percent of the payment amount (0.5 = 0.5%) |\n`PLATFORM_FEE_MIN_SATS` |\n`1` |\nfloor for the per-transaction platform fee |\n`PLATFORM_FEE_MAX_SATS` |\n`1000` |\nceiling for the per-transaction platform fee |\n\nCollected fees are reported at `GET /v1/fees`\n\n(admin) and surfaced in\n`GET /v1/metrics`\n\n. Set `PLATFORM_FEE_PERCENT=0`\n\nto run Conduit with no fee.\n\n```\n.\n├── website/         Landing page (deployed to conduit.energy)\n├── core/            Conduit Core API — FastAPI server you run in front of your LND\n├── sdk-python/      Python SDK (`conduit-btc` on PyPI; import `conduit`)\n├── sdk-js/          TypeScript SDK (`@conduit-btc/sdk` on npm)\n├── mcp-server/      MCP server (`conduit-btc-mcp` on PyPI; `conduit-mcp` command)\n├── infra/           Bitcoin Core / LND configs, systemd units, install scripts\n├── docs/            MkDocs documentation site\n├── docker-compose.yml\n└── Conduit_Whitepaper_v1.pdf\n```\n\n| # | Component | Status | Path |\n|---|---|---|---|\n| 1 | Bitcoin Core + LND nodes | install scripts — you run them on your own host | `infra/` |\n| 2 | Conduit Core API | FastAPI app, runs with mock-LND for local dev | `core/` |\n| 3 | Python SDK | matches the website code panel | `sdk-python/` |\n| 4 | TypeScript SDK | mirrors the Python interface | `sdk-js/` |\n| 5 | MCP server | exposes Conduit as MCP tools | `mcp-server/` |\n\n```\n# 1. Bring up the API in mock mode (LND_MOCK=true, SQLite, bootstrap key preset)\ndocker compose -f docker-compose.dev.yml up --build\n\n# 2. Hit the API\ncurl http://localhost:8000/v1/health\n\n# 3. Use the Python SDK\ncd sdk-python && pip install -e .\nexport CONDUIT_API_KEY=ck_test_dev_root\npython examples/quickstart.py\n```\n\nThe dev container ships with `LND_MOCK=true`\n\n, an auto-created `admin`\n\n-scoped\nbootstrap key `ck_test_dev_root`\n\n(your master key in dev), and SQLite at\n`/app/data/conduit.db`\n\n. No real Bitcoin moves until you point Conduit at a real\nLND node of your own.\n\nConduit is self-hostable today on **testnet**, **regtest**, and **mainnet** —\nall three run live. Mainnet is now real: a neutrino LND node with a real channel\nis up and the first real-money payment has settled end-to-end. It is still\nearly and small, so treat a mainnet bring-up as new territory and test on\ntestnet first. The order of operations against your own Lightning\ninfrastructure:\n\n- Install Bitcoin Core (pruned) on your host —\n`infra/scripts/install_bitcoind.sh`\n\n- Install LND (testnet today; mainnet supported) —\n`infra/scripts/install_lnd.sh`\n\n- Configure UFW —\n`infra/scripts/setup_firewall.sh`\n\n- Wait for chain sync (1–3 days)\n- Open channels —\n`infra/scripts/setup_channels.sh`\n\n- Point the Core API at\n**your** LND macaroon and TLS cert (`LND_MOCK=false`\n\n) - Set your\n`PLATFORM_FEE_*`\n\nvalues to whatever revenue you want to charge - Deploy with\n`docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d`\n\nMainnet is live but early and small. The deployment today is a single neutrino\nLND node with one ~20k-sat channel. The first real-money payment has settled\nend-to-end: 2000 sats sent via Lightning keysend, a 10-sat platform fee (0.5%)\ncollected, 1-sat routing fee, settled in ~15s — with the full lifecycle\nverified (debit → route → settle → platform-fee capture → refund-on-failure →\nexact ledger reconciliation). This is a first real-money validation, **not**\nproduction-at-scale; do not assume throughput or battle-testing. The live\nmainnet API is at [https://api-mainnet.conduit.energy](https://api-mainnet.conduit.energy).\n\nFull runbook: `infra/README.md`\n\n.\n\nConduit is **self-hosted by construction** — it is software you operate, not a\nservice that holds your money. Be clear about who custodies what:\n\n**At the operator level you are self-hosted.** There is no Conduit SaaS; Conduit never holds your funds and never phones home. The LND seed phrase is**yours** and is**never** stored on the VPS by Conduit; the sats stay in channels under your keys.**At the agent level Conduit is custodial.** Agent balances are virtual IOUs in Conduit's ledger that you, the operator, credit, debit, and can sweep. Agents hold a scoped API key, not a signing key — they never touch a Bitcoin private key.- LND gRPC / REST is\n**never** exposed publicly — only your Conduit API is - The Conduit policy engine evaluates every payment\n**before** it reaches your LND and**fails closed** on any error - API keys are bcrypt-hashed at rest and shown to you, the operator, exactly once\n- The bootstrap API key is your master key — guard it like the macaroon\n- All transit is HTTPS; webhook deliveries are HMAC-signed\n\nConduit is the policy + accounting layer in front of a node you control. If you turn Conduit off, your sats are still in your channels.\n\nSee `infra/README.md`\n\n→ \"Security checklist\".\n\nAuthorization in Conduit is **scope-based, not per-agent**. An API key carries\none of three scopes — `read`\n\n< `write`\n\n< `admin`\n\n— and that scope is the *only*\nboundary:\n\n- A\n`read`\n\nkey can read the**entire fleet**— every agent, balance, and transaction. - A\n`write`\n\nkey can act on**any agent**— send a payment from, or create an invoice for, any agent in the ledger. - An\n`admin`\n\nkey can create/delete agents, move balances, manage policies and webhooks, and mint keys across the whole instance.\n\nThere is **no per-agent boundary**: a key is not tied to a specific agent, and\nno route filters by which key created or \"owns\" an agent. Agents are an\naccounting and policy unit, **not a security boundary between mutually\ndistrusting parties**.\n\nConcretely: **Conduit today is a single-operator tool.** Hand scoped keys to\nagents *you* run, not to third parties you don't trust with each other. If you\nneed hard isolation between tenants, run a separate Conduit instance (and node)\nper tenant.\n\nRoadmap:multi-tenant, per-agent scoping — where a key is bound to one agent (or set of agents) and cannot read or act on the rest of the fleet — is a planned enhancement. As a first step toward it,`create_agent`\n\nnow records the minting key on`Agent.api_key_id`\n\nfor provenance. This isprovenance only: it does not yet change or enforce any authorization.\n\nMIT.", "url": "https://wpnews.pro/news/conduit-self-hosted-bitcoin-lightning-payments-for-ai-agents", "canonical_source": "https://github.com/Jake1848/conduit", "published_at": "2026-06-21 20:48:15+00:00", "updated_at": "2026-06-21 20:55:49.932182+00:00", "lang": "en", "topics": ["ai-agents", "ai-infrastructure", "ai-tools", "developer-tools"], "entities": ["Conduit", "LND", "Bitcoin", "Lightning Network", "FastAPI", "Docker"], "alternates": {"html": "https://wpnews.pro/news/conduit-self-hosted-bitcoin-lightning-payments-for-ai-agents", "markdown": "https://wpnews.pro/news/conduit-self-hosted-bitcoin-lightning-payments-for-ai-agents.md", "text": "https://wpnews.pro/news/conduit-self-hosted-bitcoin-lightning-payments-for-ai-agents.txt", "jsonld": "https://wpnews.pro/news/conduit-self-hosted-bitcoin-lightning-payments-for-ai-agents.jsonld"}}