S

02 / 04 GIX · Jun 2026

A spot market for GPU inference.

GPU Inference Exchange: a decentralised spot-market exchange where owners of idle GPU capacity post asks, workloads post bids, and the market clears at the crossing. Second place at the Encode Hackathon.

Role
Sole author · Encode Hackathon
When
Jun 2026 · Encode Hackathon
Stack
TypeScript, [chain / runtime]
Result
2nd place, Encode Hackathon

01 — Problem

Idle GPUs on one side, queued jobs on the other.

Inference capacity is bought on long contracts and sits idle for much of the day, while small workloads queue or overpay for on-demand instances. A spot market lets both sides post a price and clears where they meet.

[Why decentralised: who holds the book, how settlement works, what the hackathon brief asked for.]

02 — Method

Post, match, clear, settle.

Order book. Asks carry a price per GPU-hour and a quantity; bids the same. The book is sorted, bids descending and asks ascending, and cleared at the largest quantity where a bid still meets an ask.

[Matching and settlement: how a matched job is dispatched to the GPU, how completion is verified, how payment moves.]

[What was built in the hackathon window and what was mocked.]

Fig. III bEight jobs to six GPUs: a greedy first-fit pass, then the optimal assignment by the Hungarian method. Both costs measured.

03 — Results

What it did on the day.

2ndEncode Hackathon
[0]orders matched in the demo
[0 s]time from bid to dispatch

[One paragraph on the demo and the judges' feedback.]

04 — Stack

What it is made of.

01 Interface 02 Market 03 Dispatch 04 Compute 05 Ledger 06 Serving BID · ASK CROSSING PRICE MATCHED JOBS COMPLETION RECORD WEB APP ORDER BOOK CLEARING SETTLEMENT SCHEDULER JOB RUNNER GPU WORKER GPU WORKER GPU WORKER CHAIN STATE CONTAINERS HOST 01 Interface 02 Market 03 Dispatch 04 Compute 05 Ledger 06 Serving WEB APP ORDER BOOK CLEARING SETTLEMENT SCHEDULER JOB RUNNER GPU WORKER GPU WORKER GPU WORKER CHAIN STATE CONTAINERS HOST

System design6 layers, 11 flows. Arrows are the data path; dashed ones are side channels. Hover a layer.