Skip to content
ProjectX
Builders

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.

Ideas

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?

Tell us and it goes on the interfaces page under your name. Want the mechanism and the mathematics worked through first? That is what the blueprint series is for.
Toolkit

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.

Available now
  • 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
  • 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?

The order is not fixed. A builder who is actually blocked on something moves it up the list faster than any roadmap does.
Read API

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/pool

    Pool 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/treasury

    Revenue: available and lifetime totals for both streams — staking fee in SUI, conversion spread in USDC.

  • GET/api/v1/pool/history?limit=n

    Settled epochs, newest first: winner, SUI converted, gross out, spread taken, realised slippage, payout and transaction digest.

  • GET/api/v1/pool/yield-breakdown

    The 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=n

    A 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.

On chain

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::USDC

Separately 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.

Addresses

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

Permissionless by construction

No API keys, no allowlist, no partnership call. The pool is a shared object and your integration needs nobody’s approval.