Slip: TxODDS prediction markets and settlement
Core idea
Slip is a variable-stake parimutuel football market on Solana. A creator chooses a TxLINE fixture and writes a supported market in natural language. Slip compiles that Rulebook into one canonical TxLINE expression and two to five complete outcomes. Users stake six-decimal USDT; pool weights determine implied probabilities. After the match, a permissionless resolver submits TxLINE’s stat proof. The program independently walks the Merkle proof and compares the reconstructed root with TxLINE’sdaily_scores_roots PDA. It
then records the winning outcome and lets winners claim a proportional share of the net pool.
Business and user value
- one understandable market model instead of separate bet and pool products;
- no bookmaker or external market maker sets prices;
- markets cover result, goals, corners, cards, handicaps, totals, and period variants;
- the Rulebook exposes the exact keys and outcome bands before funds move;
- one-sided, winner-empty, and timeout paths return stakes;
- settlement is permissionless and deterministic.
Technical highlights
- Anchor 0.32.1 Solana program with market-owned SPL vaults;
- two-to-five outcomes and variable stakes;
- integer-only fee, tip, odds, and payout arithmetic;
- independently reconstructed TxLINE stat-to-daily-root proof path;
- terminal-phase and proof-timestamp enforcement;
- AI SDK structured-output Rulebook compiler followed by deterministic TxLINE validation;
- permissionless keeper with durable backoff and terminal-settlement priority;
- Framework Kit wallet simulation, signing, and confirmation in the web app;
- real Surfpool tests using SBF deployment and SPL token transfers.
TxLINE surfaces used
| Surface | Purpose |
|---|---|
POST /auth/guest/start | Guest JWT lifecycle. |
TxLINE subscribe instruction | Free World Cup data subscription. |
POST /api/token/activate | Activated API token. |
GET /api/fixtures/snapshot | Live fixture creation surface. |
GET /api/scores/snapshot/{fixtureId} | Latest sequence and terminal status. |
GET /api/scores/stat-validation | One- or two-stat settlement proof. |
daily_scores_roots PDA | On-chain root anchoring for the custom settlement verifier. |
Verification
The program checks SHA-256 stat leaves, positional proof nodes, the tagged fixture-summary leaf, the epoch-day PDA, the five-minute root slot, fixture identity, stat keys, optional second stat, terminal phase, and resolution timestamp. Invalid proofs revert. A valid proof cannot redirect escrow. The automated matrix drives the public SDK through Surfpool and covers five-outcome corners, 1X2, different stake sizes, deadlines, invalid Terms, fee and tip routing, proportional payout, losing and double claims, one-sided voids, and timeout refunds.Links required before submission
| Artifact | Link |
|---|---|
| Demo video, ≤5 minutes | Not supplied |
| Public GitHub repository | Not supplied |
| Hosted application or functional public endpoint | Not supplied |
| Program explorer | https://explorer.solana.com/address/8VNZ5VseAcFaYhAZxetgE5N8eiD17ZZNchGhoatYUUXw?cluster=devnet |