Read the protocol directly
Everything this website displays comes from a public read API and from events the contract emits. There is no privileged data path — you can rebuild every page here from the same sources.
No API keys, no allowlist, no partnership call. The pool is a shared object on Sui and your interface calls the same entry points ours does.
Nine things nobody has built yet
A prize pool is a primitive, not a product. Here is what that actually means — none of these is the vault we run, and all of them are possible with what is published today.
Want one of these designed properly rather than named? That is what the blueprint series is for — one complete system per week, mathematics included.
A weekend
Read-only. The public API and the event stream are all you need.A pool for one community
Your country, your DAO, your group chat. Same pool underneath, an interface that speaks their language and shows their currency.
Odds and analytics
Show people what their real chance is, how it changed, and what the pool has paid. Nobody has built this yet.
A draw bot
Announce every settlement to Telegram, Discord or Farcaster the moment the transaction lands.
A bigger build
A wallet connection and the transaction-building calls.A mini app
Deposit from inside a social feed. The whole flow is two calls and sponsored gas means a first-timer needs no SUI.
A savings goal app
Round-ups, recurring deposits, a target. The prize becomes the reason people keep going rather than the product itself.
A team pool
A group deposits together and agrees up front how a win is split. All the coordination is yours; the odds are the protocol’s.
A protocol
Move. You are extending the system, not consuming it.A pool in another coin
The pool is generic over its prize coin. Launch one that pays in whatever your users actually hold.
A second settlement venue
The DEX sits behind an adapter in its own package. Write another and the pool gains a route it did not have.
A charity pool
Same no-loss guarantee, prize routed to a cause instead of a winner. Depositors give up interest, never principal.
Building one of these?
What you get, and what’s coming
Enough exists today to build a complete interface. The rest is about making it take an afternoon instead of a fortnight.
Planned items are labelled planned. Nothing on this page is available unless it says it is.
- Live
Read API
Pool state, settlements, treasury and events over plain HTTP. No key, no allowlist.
- Live
On-chain events
Every deposit, draw, fee and payout is emitted. Index it and depend on nothing of ours.
- Live
Published addresses
Package, pool, treasury, adapter, price feed and validator — all listed below.
- Planned
TypeScript client
A typed library that builds the deposit, withdrawal and funding transactions for you, so an interface is a UI problem rather than a PTB problem.
- Planned
Interface starter
A working Next.js front end with wallet connection, sponsored gas and the whole deposit flow already wired. Fork it and change the paint.
- Planned
Adapter SDK
The seam the DEX sits behind, documented and templated, so a new settlement venue is a separate package rather than a fork of the pool.
- Planned
Pool factory
The pool is generic over its prize coin. The factory turns that into a product: launch a pool that pays in the coin your community actually uses.
- Planned
Indexer
A drop-in indexer for the event stream, so an analytics site or a leaderboard does not start with three days of plumbing.
- Planned
Brand kit
Marks, colours and the interface design system, licensed for anyone building on the protocol.
Need one of these sooner?
Five endpoints
JSON over HTTP. Amounts are decimal strings of base units — mist for SUI, six-decimal units for USDC — so nothing is lost to floating point in transit.
- GET
/api/v1/poolPool state: epoch, phase, depositor count, total / staked / liquid principal, the prize pot, and the full configuration including every fee in basis points.
- GET
/api/v1/pool/treasuryRevenue: available and lifetime totals for both streams — staking fee in SUI, conversion spread in USDC.
- GET
/api/v1/pool/history?limit=nSettled epochs, newest first: winner, SUI converted, gross out, spread taken, realised slippage, payout and transaction digest.
- GET
/api/v1/pool/yield-breakdownThe current oracle reading and the conversion it implies, including the effective rate after the spread. Display data — settlement performs its own stricter read.
- GET
/api/v1/pool/activity?limit=nA live tail of protocol events read from the chain: deposits, withdrawals, prize funding, staking requests and settlements.
A note on units
Every amount is a base-unit string. Convert with a big-integer type, not a float — 1 SUI is 109 mist, prizes are quoted in USDC at 6 decimals, and a protocol that runs long enough will produce values a double rounds.
Events and entry points
If you would rather not depend on our API at all, index the package directly. The events below carry everything the API reports.
Emitted events
- Deposited
- Principal entered the pool and a receipt was issued.
- Withdrawn
- Principal left the pool, 1:1, with any early-exit fee itemised.
- PrizeFunded
- The prize pot for an epoch increased, with the resulting balance.
- WinnerSelected
- A draw completed and pinned the winner for settlement.
- PrizeSettled
- The prize was converted and paid, with the realised rate.
Calling the package
The pool is generic over its prize coin type. Every call must supply the prize coin as a type argument — omitting it is the single most common reason a correct-looking transaction fails to resolve.
--type-args 0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDCSeparately deployed pieces
The DEX adapter is its own package so a vendor upgrade can be re-pinned without touching the pool. If you fork or extend this design, keep that seam — pin dependencies by tag rather than branch, and the cost of a breaking upstream change stays local.
Everything you need to index it yourself
Package, pool, treasury, adapter, price feed, DEX pool and validator.
- Packagepackage
The published Move package. Every protocol function a depositor can call lives here.
0x9e54a04d…db972d - Poolobject
The shared pool object. Holds principal, the stake ladder and the prize balance.
0x0742576b…4766c9 - Treasuryobject
Protocol revenue. Structurally separate from the pool — it cannot reach principal.
0x590d6b9d…a08f53 - DEX adapterpackage
Cetus CLMM adapter, deployed separately so it can be re-pinned without touching the pool.
0x9b63717b…1c4007 - Price feedobject
Switchboard on-demand aggregator. Bounds the conversion rate at settlement.
0x1fa7566f…a08b7e - Cetus poolobject
The SUI/USDC liquidity pool the prize is converted through.
0xb8d7d9e6…c90105 - Validatoraddress
OKXEarn, 0% commission. Principal is delegated here and returned 1:1 on withdrawal.
0x00ae78d3…187407