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
ECOSYSTEM10 min read

Prediction Markets Without a Seed Phrase: How Sui zkLogin Works

Sui zkLogin turns a Google sign-in into a real on-chain address, and sponsored transactions remove the need to hold SUI for gas. How the mechanism works, what the zero-knowledge proof hides, what it does not solve, and what is live on Predict Bay today.

Predict Bay · July 30, 2026

Signing in with Google on Predict Bay produces a real Sui address, and there is no seed phrase anywhere in that flow. That is zkLogin, a signature scheme built into Sui itself: your address is derived from your Google account plus a private salt, and every transaction you send carries a zero-knowledge proof that you hold a valid Google credential for that address. The proof, together with that salt, is what makes it work in both directions — the chain verifies you without learning your Google identity, and Google sees an ordinary OAuth login without learning which Sui address it unlocked.

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

The other half of the friction is gas. A brand-new address holds no SUI, so a wallet that works perfectly still cannot send its first transaction. Sui supports sponsored transactions natively — the account that pays for gas can be different from the account that sends the transaction — and Predict Bay's Sui integration is built on that, so a first on-chain trade does not require acquiring SUI first. This post covers the mechanism, what the proof actually hides, what trust assumptions remain, what is and is not live on Predict Bay today, and where it all sits in our DeepBook Predict integration.

The friction is account creation, not cryptography

Prediction markets ask something unusual of a new user. The interesting participants are people with a strong view on a specific question — whether BTC closes above a level in the next hour, where ETH lands by the end of the day. That view has a shelf life measured in hours, sometimes minutes, and any onboarding step that outlasts the conviction destroys the trade.

Count the steps a conventional on-chain market asks for before the first position: install a browser extension, generate a wallet, write twelve words onto paper, confirm them, acquire the chain's gas token from somewhere, bridge or buy the settlement stablecoin, approve a spending allowance, then sign. Each of those is a place to abandon, and several of them are irreversible mistakes rather than mere delays. A seed phrase written down badly is a loss that surfaces months later.

None of that is a question about the market itself. It is an account-creation problem that happens to be denominated in cryptography. zkLogin attacks it at the protocol layer rather than papering over it with a custodial account — the address is a genuine Sui address, on-chain, and transactions from it are signed on your device rather than by Predict Bay on your behalf.

How a Google login becomes a Sui address

A zkLogin address is not stored somewhere and handed to you. It is derived, deterministically, from four inputs. Given the same four, the same address comes back every time; change any one and you get a different, unrelated address. Two further session-scoped artifacts carry it on-chain.

iss (issuer)
The OAuth provider that signed your credential — for Predict Bay, Google.
aud (audience)
The OAuth client ID the credential was issued to. A different app gets a different address for the same user.
sub (subject)
Your stable per-provider account identifier. Not your email address, and it does not change when your email does.
user salt
A secret value that breaks the link between the public OAuth claims and the on-chain address.
Ephemeral key scope
A throwaway Ed25519 keypair, valid only up to a chosen Sui epoch. Predict Bay's production configuration requests two epochs beyond the current one.
On-chain artifact
A zkLogin signature: a Groth16 proof plus an ordinary signature from the ephemeral key.

The sequence below runs once per session. Everything before the last step happens in your browser or against Enoki, Mysten Labs' zkLogin service, which Predict Bay uses for nonce generation, salt custody and proving; nothing in it requires you to hold a long-lived private key.

  1. Generate an ephemeral keypair

    The browser creates a fresh Ed25519 keypair. This is the key that will actually sign transactions, and it is deliberately short-lived — Predict Bay keeps it in sessionStorage, not localStorage, so it does not outlive the tab.

  2. Commit to it in a nonce

    The ephemeral public key, a maximum Sui epoch and a random value are hashed into a single nonce — Predict Bay obtains it by sending the ephemeral public key to Enoki, which returns the nonce along with the randomness and the epoch bound it committed to. That nonce is the commitment: it binds the OAuth login you are about to perform to this specific key and this specific expiry.

  3. Do a normal OAuth round trip

    The nonce is passed to Google as the standard OpenID Connect nonce parameter. You see the ordinary Google consent screen. Google returns a signed JWT (id_token) containing iss, aud, sub and — echoed back verbatim — your nonce.

  4. Derive the address

    An address seed is computed from sub, aud and the user salt; the address itself is a hash over that seed and the issuer. This is pure computation over values that already exist. No transaction is needed, and an address that has never transacted costs nothing to hold.

  5. Prove it in zero knowledge

    A proving service takes the JWT and the salt and emits a Groth16 proof asserting: this JWT was signed by the named provider, its claims derive to this address, and its nonce commits to this ephemeral public key. The JWT itself is never published on-chain.

  6. Sign and submit

    Each transaction is signed by the ephemeral key. The proof is attached alongside. Sui validators verify the proof against the provider's public keys, which the network maintains on-chain and refreshes through consensus, then check the ephemeral signature and the epoch bound.

What the proof hides, in both directions

The privacy property is easy to state imprecisely. Two parties see two different halves of the picture, and neither sees enough to join them.

Google sees an OAuth login. It sees that you authenticated to a particular client ID and it sees the nonce it was handed. The nonce is a hash commitment over an ephemeral public key — it is not your Sui address, it is not derivable into your Sui address, and it is different on every login. Google cannot look at your account and enumerate the transactions it authorised.

The chain sees an address and a proof. Validators verify that some valid credential from the named provider derives to the address that sent the transaction. They learn which provider was used, but not sub, not your email, and they cannot run the derivation backwards, because the salt is missing. On-chain, a zkLogin address looks like any other Sui address.

The salt is the hinge. It is the input that stops anyone who knows your Google account from computing your address, and it is the input that stops anyone holding your address from computing your Google account. Without it, sub and aud are guessable enough that the mapping would be computable in both directions.

The salt, and the trust assumption it carries

Since the salt determines the address, whoever can produce your salt alongside a fresh Google credential can produce your address — and a proof for it. That is the real custody question in any zkLogin deployment, and it deserves a straight answer rather than a diagram.

Predict Bay uses Enoki, Mysten Labs' zkLogin infrastructure, as the salt service. The salt is held there and resolved server-side; Predict Bay's own sponsor route re-derives the address by calling Enoki with the user's verified id_token rather than trusting an address the browser claims, and rejects the request if the sender field does not match the address that derivation returns. That detail matters more than it sounds: the route verifies the JWT signature against Google's published JWKS before it does anything else, so a client cannot hand it a forged payload carrying someone else's subject and have it sponsor a transaction.

The honest framing is that zkLogin moves the recovery problem rather than deleting it. A seed phrase makes you the single point of failure; zkLogin makes your OAuth account plus a salt service the point of failure. For many people that is a trade worth taking knowingly, because account recovery with an OAuth provider is a supported, familiar process and recovering lost twelve words is not. If you would rather not make that trade, Predict Bay also supports connecting a Sui wallet directly, and the same markets are available either way.

Sponsored transactions and the gas problem

An address with a perfect signature scheme and no gas token cannot transact. This is the second wall, and on most chains the answer is "go buy the native token first" — which means an exchange account, a verification queue and a withdrawal, all before a trade whose thesis expires this afternoon.

Sui's transaction format separates the sender from the gas payer. A sponsored transaction is paid for with gas objects owned by a sponsor, and it carries two signatures: the sender's and the sponsor's, over the same complete transaction data. Because both parties sign the same bytes, the sponsor cannot alter what you agreed to and you cannot redirect the sponsor's gas to a different transaction. You remain the sender and the effects are attributed to your address.

  1. Build the transaction kind

    The client builds the Move calls only — the transaction body with no gas data attached, serialised as kind bytes.

  2. Ask for sponsorship

    Those bytes go to a Predict Bay server route, which verifies your Google credential against Google's JWKS, resolves your address through Enoki, and forwards the request. The sponsor's private key stays server-side and never reaches the browser.

  3. Get back a complete transaction

    The sponsor attaches its own gas coins and returns full transaction bytes plus a sponsorship digest.

  4. Sign as yourself

    The ephemeral key signs those bytes and the zkLogin proof is attached, producing a valid zkLogin signature over exactly the transaction the sponsor assembled.

  5. Execute

    The signature and digest go back to a second Predict Bay route, which submits them for execution. Gas is paid by the sponsor; the position is minted to you.

Sponsorship is an allowlist, not a blank cheque

A sponsor key that will pay for any transaction anyone hands it is a faucet for attackers. Predict Bay's sponsor route decodes the submitted kind bytes and checks every MoveCall target against an allowlist generated from the same module that builds the transactions — so the allowlist cannot drift from what the client actually sends — and rejects anything outside it, including bytes it cannot decode at all. The same allowlist is passed to Enoki, so the constraint is enforced twice. Requests are rate-limited per verified user, cross-origin posts are refused, and the sender address is derived server-side from the verified JWT rather than accepted from the request body. Sponsorship pays for the protocol calls the app makes and nothing else.

Seed phrase versus zkLogin, step by step

StageBrowser-extension walletzkLogin on Predict Bay
Account creationInstall extension, generate wallet, record and confirm a recovery phraseGoogle sign-in; address derived from the credential
Secret you must store12 or 24 words, permanently, offlineNone. An ephemeral key lives in the tab and expires by epoch
Gas for the first transactionAcquire the native token before anything can be sentSponsored for the allowlisted protocol calls — no SUI needed
What the identity provider learnsNothing (there is none)That you logged in, plus an opaque nonce. Not your address
What the chain learnsA public keyAn address, the provider name, and a proof. Not your account
Recovery pathThe phrase, or nothingYour OAuth account plus the salt service
SigningExtension popup per transactionEphemeral key signs; re-authentication when the epoch bound lapses
The same first trade, counted as user actions.

Status

What is not live right now

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 instead of the trading controls. EVM/Polygon real-money trading is currently paused as well, so practice mode is what is actually tradeable on Predict Bay today. Google sign-in through zkLogin is live and is the account layer you get right now; the sponsored-transaction path described above is the one the Sui integration uses, and it is gated together with Sui trading. Nothing here is settling real money on Sui yet. $PBAY is a pre-launch token concept — see the token page for what that does and does not mean.

What zkLogin does not fix

Four limits worth stating plainly, because a page that only lists advantages is not describing a real system.

  • Sessions expire on an epoch boundary. The ephemeral key is only valid up to the maxEpoch committed in the nonce. Sui epochs run roughly a day, and Predict Bay's production configuration requests two beyond the current one, so a long-idle session eventually needs a fresh Google round trip. This is a feature — an unbounded session key would be a permanent bearer credential sitting in a browser — but it is a real interruption.
  • It inherits OAuth's availability. If your provider is unreachable, you cannot mint a new proof, and without a proof you cannot sign. Positions already on-chain are unaffected as objects and nothing about them expires because you are logged out, but acting on them — redeeming, closing — waits until you can authenticate again.
  • Losing the OAuth account is losing the derivation path. There is no phrase to fall back on. Anyone who wants self-custody in the traditional sense should connect a Sui wallet directly, which is supported.
  • It is an account layer, not a market layer. zkLogin makes reaching a market cheap. It says nothing about whether that market's odds are fair, its oracle is sound, or its book is deep — see how resolution and settlement actually work for that half.

Where this fits in the Predict Bay stack

The live markets are short-duration price markets on BTC, ETH, SOL, SUI, DOGE and XRP, on hourly and daily rounds. A strike is set at the open, you pick whether the asset finishes above or below it, and the round resolves against an on-chain price feed. Every market page carries a mode switch; with EVM paused it renders two options, Practice and Sui.

Practice mode mirrors the real markets exactly — same assets, same rounds, same strikes, same resolution source — which makes it a rehearsal rather than a toy, and it is what you can trade today. Combined with a Google sign-in, the distance between reading about a market and having a practice position in one is a single click and a strike direction. Start on the BTC market or the SUI market.

For the layer underneath — the on-chain binary options protocol, its tick-encoded strikes and its oracle inputs — see the Sui prediction market stack. How it works covers the trading mechanics end to end, and the FAQ answers the shorter questions. The account layer described here is deliberately the least interesting part of using Predict Bay, which is the point: the best onboarding is the kind you finish without noticing you were onboarded.

Common questions

Do I need a seed phrase to use Predict Bay?
No. Predict Bay supports signing in with Google through Sui's zkLogin, which derives an on-chain Sui address from your Google credential plus a private salt rather than from a recovery phrase you store. Transactions are signed by a short-lived ephemeral key held in the browser session, accompanied by a zero-knowledge proof. Connecting a Sui wallet directly is also supported if you prefer conventional key custody.
Does Google know my Sui address, or does the blockchain know my Google account?
Neither. Google sees an ordinary OAuth login plus a nonce, which is a hash commitment over a throwaway public key and differs on every sign-in, so it cannot be turned into your address. Sui validators see an address and a zero-knowledge proof that some valid Google credential derives to it — they learn which provider was used, but not your subject identifier or email. The private salt is the input that prevents the mapping from being computed in either direction.
Do I need SUI tokens to pay gas on Predict Bay?
No. Sui's transaction format allows the gas payer to be a different account from the sender, and Predict Bay's Sui integration is built on sponsored transactions so a new address can transact without first acquiring SUI. You still sign the transaction yourself and the effects are attributed to your address; the sponsor supplies the gas and signs the same transaction data. Sponsorship is restricted to an allowlist of the protocol calls the app builds. Note that the Sui trading path itself is currently gated — see the question below.
Can I trade DeepBook Predict on Sui with real funds today?
Not with real funds. Predict Bay's integration targets the protocol's Sui testnet deployment and is switched off for real money, so the Sui tab on a market page shows a coming-soon panel instead of trading controls. EVM/Polygon real-money trading is currently paused as well, which makes practice mode the tradeable option on Predict Bay right now. Google sign-in through zkLogin is live and is how you get an account today.
What happens to my funds if I lose access to my Google account?
A zkLogin address is derived from your OAuth account and a salt, so losing the account means losing the ability to generate new proofs for that address, and without a proof you cannot sign. There is no seed phrase to fall back on, which is the trade-off zkLogin makes in exchange for removing one. If you want traditional self-custody with an independent recovery path, connect a Sui wallet directly instead — the same markets are available either way.

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

  • ECOSYSTEM

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

  • PROTOCOL

    What Is DeepBook Predict?

  • COMPARISON

    Predict Bay vs Polymarket: Two Different Products

Strikes

  1. The friction is account creation, not cryptography
  2. How a Google login becomes a Sui address
  3. What the proof hides, in both directions
  4. The salt, and the trust assumption it carries
  5. Sponsored transactions and the gas problem
  6. Seed phrase versus zkLogin, step by step
  7. What zkLogin does not fix
  8. Where this fits in the Predict Bay stack