Predict Bay™

Sub-second event trading on Sui, powered by DeepBook Predict. Practice mode live today.

XTelegramDiscord
ProductMarketsDeepBook PredictHow to Buy $PBAYRoadmapTeamFAQBlog
ComparePrediction Market on SuiKalshi Alternative on SuiPolymarket Alternative on Sui
LegalTerms of ServicePrivacy PolicyDisclaimerSupport
© 2026 PredictBay Pte. Ltd.Practice platform · no real funds at risk · rounds settle against on-chain price feeds
strike
← Research
ECOSYSTEM11 min read

The Sui Prediction Market Stack: Move, DeepBook, Pyth, zkLogin

Bottom-up through the layers an on-chain prediction market actually runs on — the object model, parallel execution, the order book, the options protocol, the oracle and the login — and the mechanism-level case for why they fit.

Predict Bay · July 30, 2026

A prediction market needs four things it must not itself control: somewhere to hold positions nobody can quietly rewrite, a venue where entering and exiting is not itself the trade, a settlement price the venue does not choose, and an account a person can obtain without becoming a key-management expert. Sui supplies those as four separable layers — Move's object model, DeepBook's native central limit order book, Pyth's price feeds, and zkLogin — and DeepBook Predict is the binary-options protocol assembled on top of them. Predict Bay is an interface over that stack rather than a re-implementation of any part of it.

LIVEBTC/USD · 3-MIN ROUND

ROUND CLOSES IN

--:--

LAST PRICE

—

STRIKE

—

NO POSITIONS YET THIS ROUND — BE THE FIRST

▲ ABOVE
▼ BELOW
Start trading now→

Practice mode · no wallet, no deposit, free to start

This post walks the stack bottom-up: how Move represents a position, why parallel execution changes what an on-chain order book costs to run, what DeepBook contributes as shared infrastructure, what the Predict layer adds, how Pyth turns an expiry into a number, and how zkLogin removes the seed phrase from the path. The argument is mechanical throughout — each layer removes a specific failure mode that prediction markets on other stacks have to engineer around. Where a layer removes less than the marketing for it suggests, this post says so; that is the more useful half of the document.

The stack in one pass

Read the third column first. It is the only one that justifies the other two.

LayerWhat it isWhat it removes
Move + object modelPositions and coins are typed objects with owners, not rows in a contract-owned mappingA single contract-owned ledger that every holder's balance lives inside
Sui executionTransactions touching disjoint objects run in parallel; owned-object transactions skip consensus orderingUnrelated chain activity pricing a maker out of a cancel
DeepBookSui's native on-chain CLOB — resting limit orders, price-time priority, pools as shared objectsEvery venue bootstrapping its own private book
DeepBook PredictBinary and range options defined by an expiry and a strike expressed as a price tickPayout logic living inside an off-chain risk engine
PythSigned price updates posted on-chain on demand, carrying a confidence interval and a publish timeThe venue being the source of its own settlement price
zkLoginA native Sui address derived from an OAuth identity plus a salt, authorised by a zero-knowledge proofA seed phrase standing between a new user and a first trade
Predict BayInterface: builds the transaction, submits it, reads positions back from chain, renders oddsNothing. It is deliberately the thinnest layer here
The Sui prediction market stack, layer by layer

Status

What is not live

Predict Bay's DeepBook Predict integration targets the protocol's Sui testnet deployment and is switched off for real funds — selecting the Sui tab on a market page shows a coming-soon panel in place of the trading controls. Real-money trading on Polygon is paused as well, so practice mode is what is actually tradeable here today. $PBAY is a pre-launch token concept: there is no price, supply, listing or date to quote. Everything below describes how the stack works, not a live money path.

Move and the object model

Sui does not keep a global key-value map that contracts index by user address. State is a set of objects, each with a unique ID, a version and an owner — an address, another object, shared, or immutable. A Move struct becomes an object by carrying the key ability, and Move's type system is linear: a value with neither copy nor drop cannot be duplicated and cannot be silently discarded. It has to be consumed, stored inside another object, or transferred. Asset conservation is enforced by the type checker rather than by a convention every function has to remember to follow.

For a prediction market the consequence is concrete. Your position is an object you own, carrying its own market, strike and expiry, sitting at an address in your account. It is not a number in a mapping(address => uint256) inside a contract that also holds everybody else's. Nothing can move or dilute it without a transaction you sign, and redemption is a function that consumes your object rather than a request to debit a ledger somebody else maintains.

Be precise about what that buys and what it does not, because this is where writing about Sui usually overreaches. It is custody, not immunity from protocol rules. Ownership means no contract can reassign your position, and it means a protocol does not automatically hold a list of everyone exposed to an instrument — there is no such list unless the authors deliberately build one. It does not mean a protocol has no administrative controls: a redemption still touches shared protocol state, and if that state carries a pause capability, owning your position object does not override it. What the object model removes is the failure class where a balance you thought you held turns out to be an entry in a table someone else can rewrite. What you still have to read is the Move source.

Owned, shared, and what each costs

The owner field decides how a transaction gets ordered. A transaction touching only objects owned by the sender has a single writer by construction, so there is no ordering question to resolve and Sui can execute it on a fast path without full consensus sequencing. A transaction touching a shared object — an order book pool, a market — needs consensus to agree the order of writers. Protocol authors therefore choose shared state deliberately: what must be shared is shared, and what does not need to be (your position, your coins) stays owned. That distinction is not an implementation detail on Sui; it is the main design lever you have.

Parallel execution and why order books care

Sui's scheduler reads each transaction's object inputs up front and executes transactions with disjoint input sets concurrently. Contention is scoped to objects, not to the chain as a whole. An order book is a contention point by construction — every order touches the book — but that is the only thing it contends with. Two effects follow, and both matter more for prediction markets than for spot trading.

The first is cross-market isolation. Prediction market flow is bursty and clock-aligned: hourly rounds mean everyone acts in the last seconds before an expiry, then again in the first seconds of the next round. When the BTC hourly market and the SUI daily market are separate objects, the BTC expiry crush does not sit in front of an unrelated SUI order. On a runtime with a single global execution lane it does — and so does an unrelated mint elsewhere on the chain that has nothing to do with either.

The second is the price of cancelling. A maker quoting a two-sided spread around a probability re-quotes constantly, and every re-quote is a cancel plus a place. If cancels are priced by a per-block auction that unrelated demand can win, the maker's inventory risk silently includes the risk of not being able to afford to get out of the way when the feed moves. On Sui the cost of a transaction is dominated by a reference gas price set per epoch — validators survey and publish a price rather than users bidding each other up for the next block — which turns staying at the top of the book into a largely budgeted cost rather than a variable one.

State the caveat, because it is the honest version of the argument: Sui applies congestion control per object, so a single sustained-hot shared object can have transactions deferred to a later commit rather than executed immediately. That is a queue, not an auction, and it is bounded by traffic on that one object — which for a maker is the book they are already quoting on, not the rest of the chain. Predictable cancels are what a quoted book is made of; DeepBook, CLOB liquidity and prediction markets works through the liquidity side in detail.

DeepBook as shared liquidity infrastructure

DeepBook is a central limit order book implemented in Move and deployed as a package on Sui: limit and market orders, price-time priority, tick and lot sizes, orders resting in a pool that is itself a shared object. It matters less as an application than as infrastructure. Anything on Sui that needs a book can route into the same pools instead of bootstrapping private liquidity and hoping market makers turn up a second time for a second venue.

For binary instruments a book is the right shape and an automated market maker is the wrong one. A binary contract's price is a probability bounded in [0, 1] that converges to exactly 0 or 1 at expiry. A constant-function curve spreads inventory across a price range the instrument will never revisit, and it cannot express the view a prediction-market maker actually holds — not "more or less of this asset" but "this outcome is worth 38 cents, I will show 36 at 40 and pull the quote if the feed gaps". Price-time priority also gives an informed taker a clean way to act on information, which is the mechanism by which a market price moves toward the truth instead of leaking to whoever arbitrages a stale curve.

Because the pools are shared objects rather than a venue's private database, a second interface quoting the same instrument adds depth to the same book instead of fragmenting it into a competing one. That is what makes "shared liquidity infrastructure" a mechanical statement here rather than a marketing one: the book is addressable state on a public chain, and no interface owns it. Whether depth actually shows up is a separate question that no amount of architecture answers — an open book with nobody quoting is still an empty book.

DeepBook Predict as the options layer

DeepBook Predict is the options protocol on that stack. Instead of exchanging one asset for another, you mint a position that resolves to a fixed payout depending on where an underlying price lands at a stated expiry. A position is defined by an expiry and a strike expressed as a price tick. Sentinel tick values express one-sided contracts — above X, below X — while a bounded pair of ticks expresses a range contract. One representation covers both "BTC above the strike at 15:00" and "BTC between two strikes at 15:00", which is why the same mint path serves a simple up/down market and a range market without a second instrument type.

Instrument
Binary or range option — a fixed payout if the underlying settles inside the strike bounds, nothing otherwise
Strike representation
A price tick; sentinel values for one-sided contracts, a bounded pair for ranges
Settlement
Against the protocol's on-chain oracle price at expiry
Settlement asset
dUSDC on the testnet deployment
Pricing inputs
Spot, forward and volatility-surface feeds published on Sui, plus Pyth price feeds for the underlying
Custody
The position is an on-chain object held by the account that minted it, until it is redeemed

Why an options protocol needs a volatility surface

A binary is not priced by opinion; it is priced off the same surface that prices vanillas. The value of a digital paying one unit above strike K is the negative derivative of the vanilla call price with respect to K, which — undiscounted — is the risk-neutral probability of finishing above K. Two things fall out of that identity. First, a quote is a function of the forward, the time to expiry and the implied volatility at that strike, so any protocol quoting binaries continuously needs all three available on-chain.

Second, and less often stated: because implied volatility itself varies with strike, differentiating the call price with respect to K picks up a skew term. A digital is not simply the textbook probability factor computed off one volatility number — it is that factor adjusted by the slope of the smile at K. A protocol that stored a single at-the-money volatility per expiry would misprice precisely the out-of-the-money contracts prediction-market users are most drawn to, and it would misprice them asymmetrically between the up side and the down side. That is why the Predict layer reads a forward curve and a volatility surface rather than a spot price alone: spot cannot tell you what a one-hour, two-percent-out-of-the-money contract is worth.

The fee schedule follows from the same view

On the deployment Predict Bay integrates against, the trading fee is charged per unit of position rather than as a percentage of notional, and the per-unit rate scales with the square root of p(1-p), subject to a floor. In absolute terms that is largest near even odds — where a contract carries the most variance — and it bottoms out at the floor as a contract approaches certainty.

The consequence is worth spelling out, because it is the opposite of how a percentage fee behaves. Since the premium per unit is roughly p, the fee as a fraction of what you actually stake is roughly the square root of (1-p)/p in the region where the variance term binds, and roughly floor/p once the floor takes over. Both diverge as p goes to zero: long-shot contracts cost proportionally far more to trade than coin-flips. Sizing therefore has to be fee-aware — the quantity a given stake buys is governed by 1/(p + fee_rate), not 1/p — and that is a real cost of carrying deep out-of-the-money exposure. Here it is a parameter you can read off the market object on-chain rather than something buried in a spread quoted at you.

  1. Round opens

    The market's reference price for the round is fixed on-chain and snapped to the tick grid. Until that baseline exists there is no strike to mint against, so a market can legitimately be open and not yet mintable.

  2. Side selected

    You choose above or below the strike, or a bounded range. Either way the choice is expressed as the tick bounds of the position you are about to mint.

  3. Mint

    The transaction pays premium plus fee in the settlement asset and produces a position object owned by your account. Size is constrained on-chain by a lot size and a minimum net premium, so dust positions are rejected by the contract rather than by the interface.

  4. Hold

    The position is an on-chain object in your account until expiry. Nothing about it depends on the interface that minted it staying online.

  5. Expiry

    The protocol settles against its on-chain oracle price for that expiry. No party to the trade supplies the settlement value.

  6. Redeem

    A redemption transaction consumes the position object and returns the payout — the full fixed amount if it settled in range, nothing if it did not.

Pyth and the settlement price

Pyth is a pull oracle. Publishers — exchanges and trading firms — sign price updates off-chain; those are aggregated into a feed carrying an aggregate price, a confidence interval and a publish timestamp; and a consumer that needs the price posts the latest signed update on-chain as part of its own transaction, then reads the freshly updated feed. The chain pays for freshness only when someone actually needs it, which is how a feed can update far faster than it could if every tick had to be pushed on-chain and paid for by the oracle.

Two properties of that payload matter for settlement. The confidence interval travels with the price, so a contract can decline to settle on a number it does not trust instead of settling on a figure with no error bar attached. And the publish timestamp lets a contract enforce a staleness bound — a settlement that reads a feed can assert the feed is recent enough for the expiry it is settling, rather than silently using whatever was last written. Both are checks the consuming contract has to actually perform; the feed makes them possible, it does not make them automatic.

The result is that resolution becomes an assertion about a public artifact. "Was the BTC/USD feed above the strike at 15:00" has an answer anyone can reproduce from data the venue did not produce and cannot revise. That is a categorically different dispute surface from a market on an event whose truth requires human judgement, which is why those markets need committees, dispute windows and bonded challengers instead. It narrows the trust question rather than deleting it: you are now trusting the publisher set and the aggregation, which is a smaller and much more legible thing to check. Oracle resolution and on-chain settlement compares the two models properly.

zkLogin and the identity layer

zkLogin decides who gets to be a user, which for a prediction market is as much a design decision as the matching engine. It lets an OAuth identity — a Google sign-in, in Predict Bay's case — authorise a native Sui address, with no seed phrase and without publishing the identity on-chain.

The mechanism, briefly. The client generates an ephemeral keypair valid only up to a stated epoch. It begins the OAuth flow with a nonce that commits to that ephemeral public key, the maximum epoch and some randomness. The provider returns a signed JWT containing that nonce. The client then produces a zero-knowledge proof that it holds a valid, provider-signed JWT whose nonce commits to this ephemeral key — without revealing the JWT itself. The Sui address is derived from the identity claim together with a user salt that the provider does not hold, so the OAuth provider alone cannot compute the on-chain address or link it back to the identity it issued. Transactions are signed by the ephemeral key and carry the proof; validators verify both.

Three consequences are worth stating plainly, and one of them cuts against the pitch. The resulting address is an ordinary Sui address rather than a smart-contract wallet emulating one, so it owns objects and pays gas like any other account. And because the ephemeral key expires by epoch, a stolen session key has a bounded blast radius rather than an indefinite one.

The third: the salt is not a second factor that you hold. In a managed deployment — which is what Predict Bay runs — the salt sits with a salt service that will return it on presentation of a valid, provider-signed JWT. So the accurate statement is that the salt stops the identity provider from linking your Google identity to your Sui address; it does not stop someone who has fully compromised your Google account from reaching your Sui account. Sign-in security reduces to your OAuth account security plus the salt service's. That is a genuine trade against a seed phrase — different failure modes, not strictly fewer — and anyone telling you otherwise is selling the convenience without the cost. Pair it with sponsored transactions, where a separate sponsor supplies and signs the gas payment for a transaction the user signs, and a brand-new account can place its first trade while holding zero SUI. Prediction markets without a seed phrase covers what you are trusting in exchange.

Where Predict Bay sits

Predict Bay is the interface layer, and deliberately the thinnest thing in this document. In Sui mode the DeepBook Predict integration builds the mint transaction, submits it, and reads positions and balances back from the chain. It does not custody positions, does not operate a matching engine on that path, and does not decide outcomes. When that path is switched on, a position minted through it stays an on-chain object settling against the same oracle at the same expiry even if Predict Bay went dark. Today it is not switched on: the integration points at the protocol's Sui testnet deployment, and the Sui tab renders a coming-soon panel where the trading controls would be.

Every market page carries a mode switch. With EVM real-money trading paused, that switch renders two options: Practice and Sui. The markets themselves are short-duration price markets on BTC, ETH, SOL, SUI, DOGE and XRP, in hourly and daily rounds — a strike is set at the open, you pick whether the asset finishes above or below it, and the market resolves against an on-chain price feed. Practice mode mirrors those markets exactly: same assets, same rounds, same feed, no money at risk. The SUI market page is a reasonable place to start, and how it works walks the mechanics end to end.

Signing in is Google via zkLogin, transactions can be sponsored so no SUI is needed for gas, and connecting a Sui wallet directly is also supported.

$PBAY is the token concept for the platform, and it is pre-launch. Anything described on the token page is intended utility rather than shipped utility, and there is no price, supply figure, exchange listing or date to report. If you see one quoted somewhere, it did not come from us.

The case for this stack, restated as mechanism rather than adjectives:

  • Custody is structural. A position is an object in your account carrying its own strike and expiry. Redemption consumes that object; it does not ask a contract's ledger for permission. Protocol-level controls still live in the Move source, and that is what you read.
  • Contention is scoped. Parallel execution over disjoint objects keeps an expiry crush in one market out of the way of an order in another, and an epoch reference gas price keeps unrelated chain activity from pricing a maker out of cancelling.
  • Liquidity is shared. DeepBook's pools are protocol infrastructure, so a second interface quoting an instrument deepens the same book instead of splitting it in two.
  • Pricing is legible. Binaries are quoted off a forward and a volatility surface published on-chain, and the fee scales with the variance of the contract rather than with whatever the venue can extract.
  • Settlement is external. A signed feed with a confidence interval and a timestamp decides the outcome, and anyone can check the same artifact afterwards.
  • Onboarding is not a filter. zkLogin plus sponsored gas means a first trade needs a Google account, not a seed phrase and a separate gas token — at the cost of making that Google account the thing you must protect.

None of that makes a prediction market good on its own. A stack with no liquidity is still a stack with no liquidity, and the honest position today is that Predict Bay's Sui path is a testnet integration with real-money trading switched off. What the stack does buy is a small, named set of things a user has to trust: the Move package, the oracle feed, the salt service, and their own key material. We keep a plain-language status of what is and is not live on the DeepBook Predict page, which is the only claim on this page that is about us rather than about the chain.

Common questions

What is the Sui prediction market stack?
It is the set of layers an on-chain prediction market on Sui runs on: Move and its object model for holding positions, Sui's parallel execution for ordering transactions, DeepBook as the native on-chain central limit order book, DeepBook Predict as the binary-options protocol on top of it, Pyth price feeds for settlement, and zkLogin for accounts. Each layer is a separate protocol, so an interface such as Predict Bay composes them rather than reimplementing them.
Why does parallel execution matter for an on-chain order book?
Sui reads each transaction's object inputs up front and executes transactions with disjoint inputs concurrently, so contention is scoped to individual objects instead of the whole chain. For prediction markets, whose flow clusters at hourly and daily expiries, that keeps one market's expiry rush from queuing in front of orders in an unrelated market. Fees are also dominated by a reference gas price set per epoch rather than a per-block bidding war, which is what a maker needs to keep cancelling and re-quoting affordable. Sui does apply congestion control per object, so a sustained-hot shared object can see transactions deferred to a later commit — a queue rather than an auction.
How does DeepBook Predict decide the settlement price?
Each position is defined against an expiry and a strike expressed as a price tick, with sentinel values for one-sided contracts such as above X or below X. At expiry the protocol settles against its on-chain oracle price and the holder redeems the position for the payout. Pricing reads spot, forward and volatility-surface feeds published on Sui, alongside Pyth price feeds for the underlying asset, so the settlement input is not produced by any interface.
Can I trade DeepBook Predict on Predict Bay right now?
Not with real funds. The integration targets the protocol's Sui testnet deployment and is switched off for real money, so selecting the Sui tab on a market page shows a coming-soon panel instead of the trading controls. Real-money trading on Polygon is paused as well, which makes practice mode the way to trade on Predict Bay today.
Does signing in with zkLogin mean Predict Bay holds my keys?
No. zkLogin derives a native Sui address from your OAuth identity claim plus a user salt, and transactions are signed by an epoch-bounded ephemeral key you generate locally, accompanied by a zero-knowledge proof. The identity provider alone cannot compute your address, and the resulting account is an ordinary Sui address rather than a custodial one. Be clear about the limit, though: in a managed setup the salt is held by a salt service that releases it against a valid provider-signed JWT, so the salt protects your privacy from the provider rather than acting as a second factor you hold. Practically, your Sui account is as safe as your Google account. Sponsored transactions can additionally cover gas, so a new account does not need to hold SUI to transact.

Risk notice

Prediction markets carry risk and you can lose the amount you commit to a position. Nothing on this page is financial advice. See the Terms of Service before trading.

Continue reading

  • MECHANICS

    DeepBook, CLOB Liquidity, and Why a Native On-Chain Order Book Changes Prediction Markets

  • ECOSYSTEM

    Prediction Markets Without a Seed Phrase: How Sui zkLogin Works

  • MECHANICS

    Oracle Resolution and On-Chain Settlement

Strikes

  1. The stack in one pass
  2. Move and the object model
  3. Parallel execution and why order books care
  4. DeepBook as shared liquidity infrastructure
  5. DeepBook Predict as the options layer
  6. Pyth and the settlement price
  7. zkLogin and the identity layer
  8. Where Predict Bay sits