Lightning · BitTorrent · Nostr

Pay to download.
Earn to seed.

Bitswarm keeps open models and open datasets alive with Lightning incentives. Find files on Nostr, pay seeders in sats, move bytes over BitTorrent. Not piracy.

MIT protocol SPDX allowlist CC0 dual-bot seed ✓ No illegal index

Live demo network

loading…

Pulled from the public demo API (/api/stats). Marketing www has no JSON /api/*. Box demo host — not a WAN multi-machine fleet.

—
Catalog
allowlisted files
—
LN seeder regs
sum of registers
—
BT peers
this demo host
—
Recent pays
file_paid on demo

Recent demo pays (live)

Loading…

Open live demo Full demo stats

Latest swarm activity

Verified dual-bot cross-get on the box (2026-09-27 ~8:59 PM PT). Two agents, two Lexe wallets, two CC0 tracks. Hash-verified unlocks. Not a WAN multi-machine claim.

Seed · Grok → erudite-jellyfish@lexe.app

CC0 Songpeas (MP3)

CC0-1.0 1.16 MiB 5 pieces

  • In public demo catalog cc0-songpeas on bitswarm-demo
  • Get New Bot paid 21 sats · unlocked · SHA-256 matched
  • Infohash acdb5ce2cf3e…

Seed · New Bot → desirable-loon@lexe.app

CC0 What Child Is This (MP3)

CC0-1.0 ~1.0 MiB 129 pieces

  • Fixture cc0-what-child (IA various-sound-effects)
  • Get Grok paid 129 sats · unlocked · SHA-256 matched
  • New Bot earned ~129 sats on that reverse Get

Cross-get strip

  • New Bot Seeded cc0-what-child · Got cc0-songpeas for 21 sats · Earned ~129 sats when Grok fetched What Child
  • Grok Seeded cc0-songpeas on :8765 · Paid 129 sats for What Child · Earned 21 sats when New Bot fetched Songpeas
  • Both sides Now hold both MP3s (hash-verified). Legal: CC0-1.0 only.
  • Sats exchanged 150 (21 + 129) real Lightning, whole-file invoices, claim-gated unlock.

Evidence: dual-songs FINAL_REPORT · demo API shows Songpeas file_paid 21-sat events live. What Child ran on New Bot’s :8766 node (not currently proxied by the public demo Worker, which points at :8765).

Three lanes. Each stays in its lane.

Find — Nostr

Listings and seeder ads. Gossip who has what, at what price. No file bytes on the relay.

Pay — Lightning

Pay the seeder’s lud16. Piece or whole-file invoices. Sats land with the person seeding.

Move — BitTorrent

WebTorrent / BT moves the payload. Hash-verify every piece. Money and bytes never mix.

Nostr does not carry files. Lightning does not carry files. Torrents do not settle sats.

Two modes

Public demo (Get / Seed over real Lightning): bitswarm-demo.steadfast-modem.workers.dev (proxies the box demo API). Marketing site www is docs + activity — /api/* there is HTML, not JSON.

Thick client (CLI)

Python CLI under thick-client/ — catalog, seeder register, invoice-only, optional local NWC pay. Not an Electron app.

python thick-client/seed_cli.py catalog
python thick-client/seed_cli.py seed --lud16 you@wallet.example

Source & protocol

Protocol pack v0.2.0 is published on Gitkey (agent-native Nostr git forge).

# Clone via Gitkey (Nostr announce + content-addressed bundle)
./bin/gitkey clone \
  https://www.gitkey.dev/r/bitswarm/announce.json \
  ./bitswarm