About
Anyone with a node can sell.
Anyone who runs a Lightning node should be able to sell a service to the network (a film, an AI model, hashrate, an API, software of their own) and be paid for it piece by piece as it is delivered, by people and by AI agents alike.
What it is
Lightning Stream is one self-hosted app for buying and selling services over XBT Lightning, paid as they are used. It runs on Umbrel, StartOS and Linux, beside your own Knots-BLAKE2b node and Lightning Fork. XBT is Bitcoin on BLAKE2b proof of work.
The buyer pays a small ticket ahead, about 900 sat, and the seller counts what it delivers to the millisatoshi and signs a receipt for every answer. A shop is paid no more than its listing shows. It runs on ordinary XBT Lightning nodes, and never holds anyone's money: each person pays from, and is paid to, their own node. There are no accounts.
Pay as you use it, in small tickets the seller draws down exactly with a signed receipt for every answer.
Status
- Released
- Version 0.2.0, a public test release: in a community store for Umbrel, in a registry for StartOS, and as a Linux package. The changelog has every version.
- On XBT mainnet, between our own nodes
- Since 26 October 2026 a fresh install from the published packages has bought films and AI answers from a shop of ours, a node box of ours has bought from a second shop, and a rental of hashrate has been paid, every charge matching the meter to the millisatoshi. On StartOS, the app's access to the node through Lightning Fork's grant was tested on mainnet; a paid buy on StartOS has not run yet. Nobody outside the project has used it yet. An invited test is next.
- Reviewed, not audited
- Chris Guida reviewed the design and the published code twice in October 2026. Kyle Santiago read the design. Machine-assisted reviews of the payment code found further faults; all are fixed in version 0.1.15. Nobody outside the project has reviewed the fixes, and there has been no independent audit. Treat it as unaudited software and use amounts you can afford to lose.
Progress and status and Tests and numbers have the detail.
Known limits
- Money moves a ticket at a time, and a dishonest shop can keep a ticket or two per answer it is sending, plus a small allowance per request, before it is caught and blocked. One that cheats inside that bound is not caught, which is why each shop has a daily cap.
- A web app over a relay on a slow path starts slowly: 15 to 25 s for a 4K film in our lab.
- Unused held tickets are locked until cancelled or expired, for hours if a seller vanishes. Unspent prepaid credit stays with a seller until the buyer returns.
- A seller needs an lnd-family Lightning node with room to receive, online while it serves; a Core Lightning node cannot sell held tickets today.
- Paid by lottery, income and cost are uneven in the short run.
- The Lightning nodes on both sides hold hot keys.
- XBT's Lightning network is young and small, so a route may not exist; a direct channel to the shop always works.
- Nothing on the chain ties a buyer to a seller, but nodes along a route see a run of similar payments to one seller.
- No review or audit has covered the packaging and container images, the wallet's web interface, the seller gateway, the ticket book, or the lottery, among others.
LIMITS.md lists every stated limit, the open items, and what nobody has reviewed.
Coming next
None of this is released. The order is the agreed one; each item ships when it is built and checked.
- Paid relays, in an update: a shop pays the relays that carry its traffic, by the GB. Relays stay free until then.
- Paying over Nostr Wallet Connect: buying from a wallet the buyer controls, instead of a Lightning node of one's own.
- AI sellers that are data vending machines on Nostr (NIP-90), as another source for the box's AI address.
- Blossom: media on a Blossom server, sold per MiB through a Stream gateway in front of it.
Later ideas, not yet ordered: ranking and search on Browse; a guard that stops a hashrate rental whose work stops following the public chain; local links for TV and phone apps; remote miners reaching a DATUM Gateway without a port forward; ticket sizes that follow how fast a buyer spends; paid torrent seeding; and files checked piece by piece as they download.
Not built: the win that pays itself (not before a cryptographer has reviewed it), fair exchange on held tickets, and a seller on Core Lightning.
Credits
Lightning Stream is a small addition to other people's work. XBT runs on Bitcoin Knots, maintained by Luke Dashjr, who wrote the BLAKE2b proof of work; the signature hash that keeps a payment from being replayed on the SHA-256 chain is Kyle Santiago's. Lightning on XBT is Paul Lamb's Lightning Fork, a fork of Lightning Labs' lnd, and PrivKey's Core Lightning fork. Paul also packages Knots-BLAKE2b and Lightning Fork for Umbrel and StartOS, and built the access grant the StartOS package uses. Hashrate rental is built around OCEAN's DATUM, and the Stream Gateway is CONVOY's datum_gateway (MIT) with a masking patch.
Chris Guida's two reviews are why Lightning Stream is built on Lightning, and they narrowed what it claims. Kyle Santiago pointed out the slot and dust limits the ticket defaults are built around. Kilombino named the hashmaker and the hashtaker and runs a relay the app uses. The mistakes that remain are ours.
Ideas and prior work, with references, are in REFERENCES.md and the whitepaper; code and libraries from others in THIRD_PARTY_NOTICES.md.
The project
Lightning Stream is developed in the open on GitHub, licensed under either the Apache License 2.0 or the MIT license, at your option. Bugs and confusing screens go to its issues.
This site reads public data only: sellers' signed listings from Nostr relays, and a snapshot of the public XBT Lightning channel graph. It sets no cookies and loads nothing from other sites. It is set in Inter (Rasmus Andersson), under the SIL Open Font License.