Kubrai for AndroidDownload APK
Kubraibet on Seeker's dApps

How Kubrai works

Kubrai runs parimutuel pools on the numbers of the apps in the Solana dApp Store: how much Jupiter trades and earns, what Phantom and the pump.fun app make, how much SOL is staked with Jito, JupSOL and Sanctum, what ORE miners deploy, how many Seekers get activated. You bet SKR on a range, winners split the losing pools, and every settlement is backed by hourly snapshots whose hashes sit on-chain.

Why bet on Seeker's dApps

Seeker owners use these apps every day and already have a view on how they are doing: is Jupiter busier this week, did the pump.fun app cool off, is staking with Jito growing? Kubrai turns that view into a position: pick the range you believe in, put SKR behind it, and get paid from the people who believed otherwise. No order book, no market maker, no spread: one pot per range, and the pools decide the odds.

A market, step by step

  1. One metric, 2 to 8 ranges. A yes/no market is two ranges around one threshold; a multi-range market is cut at the quantiles of the metric's own recent history, so every range starts out roughly equally likely.
  2. Betting stops halfway through the day. A market opens 13 hours before the day it counts and stops taking bets 12 hours into it, so nobody bets having seen more than half of the day. The next day's market opens an hour before that, so there is always one open.
  3. Three kinds. Counters (Seekers activated, SOL deployed in ORE) resolve on the increase between the hourly snapshots at the start and the end of the day. Levels (staked SOL, SKR staked, prices, reserves) resolve on the median of every hourly snapshot of the day, so a last-minute move cannot swing them. Figures a source publishes once a day (fees, revenue, volume) are read at a fixed hour after the day ends: between 6 hours and 2 days later, depending on how long that source keeps adjusting the figure, and each market's page says when. What the source shows at that hour settles the market, and later revisions do not count; if the source moves the figure into another range before the result is final, the market is voided and every stake is refunded.
  4. The server proposes a number, never a winner. The observed value and the hash of the snapshots it came from go on-chain; the program derives the winning range from the market's own thresholds.
  5. Six hours to dispute, then payout. Anyone can dispute a proposal inside the window. After it, a permissionless crank pays every winner and refunds every loser's rent. Nobody has to claim.

Every market page shows this as a timeline in your own time zone, with a countdown to the next step, and lists the exact snapshots behind the result with their hashes and memo transactions.

How the money works

Discounts

Where the numbers come from

Every hour the server reads each metric, writes the bundle to disk with its SHA-256, and records that hash in a memo transaction on Solana. A market resolves only from bundles whose bytes still match both the sidecar hash and the on-chain memo. Sources are labelled on every market:

Open any market and expand “Snapshots” to see the opening and closing readings, their hashes and the memo transactions. That is the whole evidence; there is nothing else to trust.

Trust model, stated plainly

Points and invites

Build on it

Everything the site shows is public, free and needs no key. Bets are transactions your own wallet signs; there is no server-side bet endpoint, so nobody can bet with your tokens but you.

GET  /markets                 every market (cached 15 s)         GET /markets/:id
GET  /config                  fees, dispute window, discounts    GET /evidence?metric&open&close&baseline&id
GET  /snapshots               hourly slots                       GET /snapshots/:slot  (bundle + sha256 + memo tx)
GET  /leaderboard?window=7d   points ranking                     GET /positions/:wallet  settled history
GET  /referral/:wallet        invite link and earnings           POST /faucet {"address"}  (devnet)

Base URL https://api-devnet.kubrai.xyz. The program IDL is in the repository; examples/automate.mjs lists markets, places a bet and reads results from a script. Source, program and tests: github.com/kubraixyz/kubrai.