Bitswarm — Agent demos (evidence)
Public page (ELI5): /demos on the live site — three short stories (pay / seed-earn / agent CLI) with pictures from /media/.
Protocol v0.2.0 · allowlisted catalog only · no illegal index.
| # | Demo | Command / path | Evidence |
|---|---|---|---|
| A | Catalog JSON poll | seed_cli.py catalog | demos/catalog.json |
| B | Seed-to-earn | seed_cli.py seed --lud16 … | demos/seed_to_earn.json · peers/announces |
| C | Pay-per-piece invoice | seed_cli.py get --invoice-only / --pay | demos/pay_invoice_only.json · demos/pay_per_piece.json |
| D | Web Get / Seed / Stats / ToS | browser | docs/media/01_.png … 05_.png |
| E | CLI collage | — | docs/media/06_cli_evidence.png |
| F | Demo tour video | — | docs/media/07_demo_tour.webm |
Live URL: see ../PUBLIC_URL.txt or ../STATUS.md.
A — Catalog poll ✅
cd /workspace/bitswarm && source .venv/bin/activate
python thick-client/seed_cli.py catalog --api http://127.0.0.1:8765 \
| tee demos/catalog.json | jq '{ok,count,allowlist}'
Result: count=10, full SPDX allowlist present.
B — Seed-to-earn ✅
python thick-client/seed_cli.py seed \
--fixture legal-torrent-seed \
--lud16 erudite-jellyfish@lexe.app \
--seconds 12 --json | tee demos/seed_to_earn.json
Result: payee=erudite-jellyfish@lexe.app, license_spdx=MIT, BT announces≥1.
Web UI WebTorrent proof: peers=1, uploaded=1014 B, progress=100% (02c_seed_wt_stats.png).
C — Pay-per-piece (tiny-lm-demo) ⚠️ invoice OK / claim blocked by wallet balance
# Invoice only (always safe)
python thick-client/seed_cli.py get --fixture tiny-lm-demo --piece 0 --invoice-only --json \
| tee demos/pay_invoice_only.json
# Pay + claim (needs NWC with ≥21 sats)
python thick-client/seed_cli.py get --fixture tiny-lm-demo --piece 1 \
--nwc-file "$OPEN_SWARM_NWC_FILE" --pay --save demos/piece1.bin --json \
| tee demos/pay_per_piece.json
Result: Real LN invoice 21 sats to erudite-jellyfish@lexe.app; memo infohash|0|piece_hash|nonce.
NWC pay returned Insufficient funds ⚡️19 / 21 — claim awaits top-up. No secrets in evidence JSON.
Whole-file memo proven: demos/pay_whole_invoice.json → infohash|ALL|6|file_hash|nonce.
D — Web paths ✅
| Shot | File |
|---|---|
| Home | docs/media/01_home.png |
| Seed pick / active / WT stats | 02_seed_pick.png 02b_seed_active.png 02c_seed_wt_stats.png |
| Get pay choices / QR | 03_get_pay_choices.png 03b_get_invoice_qr.png |
| Stats | 04_stats.png |
| ToS | 05_tos.png |
Tour video: docs/media/07_demo_tour.webm
Legal
- Hosted index: allowlisted only;
POST /api/magnet→ 403 (demos/magnet_403.json,demos/seed_local_blocked.json). - Clients MAY seed user magnets locally (
seed-local). - No public Nostr announce in these demos.