People selling compute to people, paid in QALS — running today · 07_compute_marketplace/P2P_COMPUTE_MARKET.md
P2P Compute Market — people selling compute to each other, paid in QALS
Date: 2026-09-06 · Answer to: "Can we use QALS as a means for people to sell compute to each other on the network?" → Yes — demonstrated, not just designed. (qmarket/ running today)
1. What exists RIGHT NOW (built & tested today)
qmarket/ — a working two-party compute marketplace gateway on superlocal:
| Component | Status |
|---|---|
| Provider registry (sellers list compute + price) | ✅ live (POST /providers, GET /providers) |
| Buyer job flow: escrow → execute → attest → settle → receipt | ✅ live (POST /jobs), via loopd money rails |
| Provider earnings accrual (redeemable AU$1:1) | ✅ live (GET /earnings/:id) |
| Provenance anchoring of every output on Qalnet | ✅ live (via qalpipe → qal_data on-chain) |
| Gateway fee economics (10% treasury) | ✅ modelled in every settlement |
Today's test (real transactions): Local Media Studio sold a 240-frame render to the tulpa app — est AU$28.80 held, actual AU$28.80 settled, provider netted AU$25.92. minirig sold 3,000 tokens of inference to tradez — provider netted AU$54.00. Output verified against the chain: PASS. (qmarket/test_market.sh reproduces it all.)
2. Why this beats existing compute markets (Akash, io.net, Golem)
| Them | Qals | |
|---|---|---|
| What sellers are paid in | Volatile tokens (AKT/IO/GLM) | B-QALS = AU$1, redeemable — zero price risk for sellers |
| Escrow | Varies, often optimistic | Chain-enforced Holds (petrol-card model), auto-expiring |
| Trust in provider telemetry | Mostly trusted | Attested + slashing (stake-backed), sampling verification |
| Provenance of results | None | Every output hash anchored on-chain — AI outputs carry receipts |
| Cold start | Classic chicken-egg | qalarc's apps are the anchor demand (tulpa, tradez, hub buy first) |
| Regulatory posture | Token-first | Prepaid-credit-first, public rails only after licensing |
The seller pitch is one sentence: "Sell your spare GPU hours, get paid in credit that's worth a dollar and redeems for a dollar — no token rollercoaster."
3. How a person joins (target UX)
Seller: register a provider (name, kind, price) → gateway runs your adapter (or you run our agent binary) → jobs arrive, escrowed → your earnings accrue → redeem to bank (Phase 2+) or spend on qalarc services (today).
Buyer: your app calls POST /jobs {provider, kind, spec} → the money, escrow, attestation and provenance all happen inside — you get a receipt and an anchor.
4. Trust ladder (how strangers become trusted sellers)
- Invite (now): gateway operator (qalarc) registers known providers (Local Media Studio, fleet machines). Reputation starts at 100.
- Accreditation: providers get Qal ID device DIDs +
can-run-jobscredentials — revocable in ~2s. - Stake: providers post G-QALS stake; proven faults (wrong results, fake telemetry) slash stake into the FloorVault (
07_compute_marketplace/§4). - Verification: high-value jobs get sampled re-runs on a second node; mismatches trigger dispute.
- Open registration (much later, post-VASP): anyone with stake + accreditation.
5. The upgrade path from today's paper demo
| Today (running) | Phase 1-2 (on-chain) |
|---|---|
loopd JSON ledger |
qal_credit on Qalnet (already written, 5/5 tests) — real Holds/settle txs |
| Provider earnings in gateway file | provider CreditAccounts credited on-chain (EARN side of the loop) |
| Gateway-held fee | treasury address |
| Mock adapters | real ollama/ffmpeg adapters on the fleet; Local Media Studio's real API behind the same interface |
qal_data anchor per output (already real) |
+ ComputeReceipt NFT per job |
Nothing gets thrown away — qmarket's HTTP contract is the same; the guts swap from paper to chain.
6. Money flows (who gets what)
buyer pays actual ──► 90% provider earnings (redeemable AU$1:1, or spend on qalarc services)
──► 10% gateway/treasury fee (funds Qal Pass gas sponsorship + FloorVault)
escrow : ~115% held during job, difference auto-refunded at settle
earn side: providers accumulate → the reserve-backed cash-out path (Phase 2+) or internal spend (now)
7. Run it
python3 loopd/loopd.py & # money rails :8823
python3 qmarket/qmarket.py & # market :8824 (chain must be up for anchors)
bash qmarket/test_market.sh # two-party sale, end to end