TTornaLine

On-chain prediction markets · settled on TxLINE proofs

Call the match. Settle on the proof.

TornaLine is an on-chain prediction market for live World Cup football. Trade outcome shares on a parallel order book; when the match ends, anyone settles the market trustlessly — TxLINE’s oracle verifies a Merkle proof of the result on-chain, with no admin and no trusted relayer.

TxODDS World Cup Hackathon · live on devnet · built on Torna ↗, the parallel on-chain order book

Prediction markets, and settlement

Settled by proof, not by trust

The hard part of a sports market isn't the trading — it's who decides the result. TornaLine settles it on-chain, from a cryptographic proof of TxLINE's match data.

1

Trade the outcome

Buy or sell a YES share on the parallel order book. Its price is the implied probability of the outcome.

2

Anyone settles on the proof

When the match ends, anyone triggers settlement — the program verifies a TxLINE Merkle proof of the result on-chain. No admin, no oracle you have to trust.

3

Winners redeem

The winning side redeems each share from the vault, one-for-one — and the whole outcome stays re-checkable on-chain.

Under the hood

A real order book, live on devnet

TornaLine trades on a central limit order book with real SPL-token escrow; place, take, cancel, and match are real on-chain transactions, read straight from the on-chain B+ tree — no indexer. Every price level is its own account, so a burst of orders on a goal commits in parallel — the write concurrency a live football market needs. (That engine is Torna ↗.)

TornaDEX, live on devnetsyncing
Best bid
-
Best ask
-
Spread
-
Resting orders
-
Open the trading terminal
The moat

Why the writes run in parallel

The usual on-chain book keeps each side in one slab account, so every order on a side takes the same write lock and serializes, one per slot. Torna puts each B+ tree node in its own account, so orders that fall in different leaves touch different accounts and Solana commits them in the same slot. A deep book spreads its price levels across many leaves.

The usual bookone slab account per side$100$180$260one slabone account, one lockslot 1slot 2slot 33 orders, 3 slotsone shared account serializes themTornaprices that fall in different leaves$100$180$260leafaccount Aleafaccount Bleafaccount Cslot 13 orders, 1 slotdisjoint accounts run in parallel
Three makers whose prices fall in different leaves. Left, the side's one slab serializes them across three slots; right, Torna gives each leaf its own account, so they commit in one slot. Adjacent prices in a sparse book share a leaf and still serialize, and matching itself is always serial.
4.6-7.1xmore committed tx/slot when maker writes
land in different leaves vs. one shared leaf

Measured on a single-node solana-test-validator, the real Agave banking stage, via torna/bench. Devnet is shared and noisy, so the controlled number is the honest one. This parallelizes book maintenance, not matching: top-of-book is price-time serial by definition, and nothing can change that.

Explore & verify