Trading Risks#
Every trade on Seesaw carries the risks described below. Read this page before putting capital at risk. Each risk explains what it is, how likely and how serious it is in plain words, and what you can do about it.
External and mirror-market disclosure#
Some Seesaw markets mirror an event or resolved result from an external provider or source. The provider or source is shown for identification and attribution only. Unless Seesaw explicitly says otherwise, it is not affiliated with, sponsored by, endorsed by, operated by, or responsible for the Seesaw market, and its name or data should not be read as an endorsement or guarantee.
Seesaw lifecycle transitions are permissionless. Independent keepers, crankers, or users may submit eligible transactions and pay the transaction fees. The Seesaw on-chain program validates the applicable oracle data, witness attestations, market rules, and account state before advancing or settling a market. Pyth Pull markets require an acceptable authenticated oracle update; zkTLS-based markets through Reclaim Protocol require a valid witness-signed package and quorum. Keepers submit eligible transactions but do not choose outcomes.
Read the market's displayed rules and source link before trading. Settlement is determined by the authenticated resolver/oracle path and the on-chain market state, not by a provider's branding, a source link, or a promise that an external event will be available or resolved on a particular schedule.
This disclosure is informational and is not legal, financial, or tax advice. Source names, marks, and data may be subject to separate permissions and terms of use.
The single most important thing on this page: claim your money within 7 days of a market resolving. Everything else is secondary.
The headline risk: abandoning your money#
What it is#
Seesaw never auto-deposits winnings into your wallet. After a market resolves, you trigger the payout (the app's Claim button, which runs the on-chain redeem). That claim pays out everything at once:
- your winning shares at $1 each, and
- any USDT still locked under buy orders that never filled.
While trading is open you can cancel an unfilled order at any time for an instant refund. After resolution, that locked money comes back only through claiming.
Here is the verified timeline (from the on-chain program — Redeem,
MarkPositionSettled, ReclaimExpiredOrder, CloseMarket):
In words:
- Days 0–7 after resolution: this window is reserved for you. Only you can settle your own position. Claim now and you receive everything you are owed.
- After day 7: the market becomes eligible for permissionless
cleanup. A cleanup crank (
MarkPositionSettled) pays abandoned positions to their owners — if it runs, your value still lands in your wallet. But it is run by volunteers and keepers, not guaranteed by the protocol. - Separately, after day 7 the collateral locked under your never-filled resting buy orders can be terminally removed without a refund as part of cleanup. That value then sits in the market vault.
- When the market is finally torn down (
CloseMarket), whatever remains in the vault — rounding dust plus any abandoned, forfeited value — is swept to the market creator. At that point it is gone for good.
Likelihood and severity#
Entirely under your control. If you claim within 7 days, this risk is zero. If you abandon a position with real value past the grace window, the loss can be total for that value.
How to protect yourself#
- Claim promptly. Treat the moment a market resolves as the moment to collect. The app shows claimable positions in the Portfolio tab.
- Cancel orders you no longer want while trading is open — refunds are instant before resolution.
- Don't park resting buy orders in markets you won't come back to. An unfilled limit buy is locked money with a 7-day post-resolution fuse.
- If you run bots, automate the claim step too, not just order placement.
Oracle outage: the Expired 50/50 fallback#
What it is#
Seesaw resolves markets from Pyth oracle prices. If no acceptable price is available at the market's end (for example an extended Pyth outage for that feed), the market cannot resolve UP or DOWN. After an additional waiting window (set in protocol configuration; the protocol's built-in default is 7 days past the market's end), anyone can flip the market to Expired. The expire crank first tries a late resolution from an acceptable oracle price — only if none exists does it fall back to Expired.
In an Expired market nobody wins or loses:
- Every share — YES or NO — redeems at $0.50.
- Unfilled buy-order collateral is refundable to its owner (via claim, or
the permissionless
ForceCloseescape hatch for stuck markets).
Likelihood and severity#
Rare. Pyth aggregates 90+ publishers and updates sub-second; major feeds going silent for an extended period is unusual. Severity is moderate: you don't lose your collateral, but a winning position pays $0.50 per share instead of $1.
How to protect yourself#
- Nothing to do in advance — this is the protocol's built-in safety net.
- The 7-day claim deadline still applies after expiry. An Expired market stamps its resolution time and runs on the same teardown clock. Claim your 50/50 refund promptly.
Admin powers: pause and post-only — and what they can NOT do#
What it is#
The protocol has governance-controlled trading restrictions:
- Pause: blocks new orders, deposits, withdrawals of free balances, and share minting, protocol-wide or per-market.
- Post-only mode: per-market, new orders may only rest on the book — nothing can execute against existing orders (taking is disabled).
- ForceCancelOnly: blocks new orders and lets the authority or configured nonzero pauser unwind individual resting orders. It does not cancel the whole book in one call or select a settlement outcome.
What those powers can not do (verified in the program — settlement instructions do not check the pause flag):
- They cannot stop a market from resolving. Lifecycle cranks (end-snapshot, resolve, expire) are permissionless and pause-exempt.
- They cannot block you from claiming.
RedeemandForceClosework during a pause — by design, so an admin pause can never strand user funds in a resolved market. - They cannot block you from cancelling your resting orders.
- They cannot redirect your payout: every settlement path pays the recorded position owner only.
Likelihood and severity#
Pauses restrict trading, while lifecycle operations remain pause-exempt. That does not guarantee settlement at the end of the trading window: a usable oracle update, eligible transition, and submitted transaction are still needed. External markets can also have longer horizons than native price windows.
How to protect yourself#
- If a market is paused, don't panic — wait for resolution and claim normally.
- Review the protocol's published governance/authority disclosures before treating a deployment as production-grade (upgrade authority, config authority, timelocks).
Nobody cranks my market#
A countdown reaching zero does not execute a transaction. If no funded operator submits the eligible snapshot, resolution, expiry, or cleanup transaction, the market can remain in an intermediate state. Do not assume that a keeper is running for every market or that permissionless means automatic.
The public cranking guide and pull-keeper guide describe the operator path. Users with the required accounts and oracle input can submit eligible lifecycle instructions themselves. Keepers pay transaction costs and must satisfy the same on-chain checks; they cannot invent an outcome.
ForceClose is a permissionless, state- and time-gated escape path for eligible
unresolved positions. It is not a general instant cash-out, and large cleanup
can require repeated bounded calls. Once an outcome is terminal, use normal
redemption and settlement cleanup. Read the current account state before
choosing a recovery instruction.
Market-creator trust#
What it is#
Anyone can create a market. Creators have no settlement power — they can't pick the outcome, change parameters after creation, or redirect payouts. But you should know two things:
<!-- src: program/src/logic/fee.rs:168 FeeSplit4::TARGET --> <!-- F-01: update with builder fee allocation -->- The shipped creator allocation is 5% of each taker fee, rounded down. The other legs fund protocol, eligible referrals and eligible maker rebates; see fee allocations.
- The creator receives the teardown sweep: rounding dust and any funds abandoned past the 7-day grace window go to the creator when the market is closed (see the headline risk above).
This means a creator profits from abandoned funds — they cannot cause your funds to be abandoned, but they are the beneficiary if you do.
Likelihood and severity#
The creator-sweep only matters if you abandon value (see headline risk). A subtler issue is duplicate or confusing markets: several markets can cover the same asset and window.
How to protect yourself#
- Claim on time — then the creator sweep contains only dust.
- Prefer the canonical market the app surfaces for an asset/window.
Feed selection and market hours#
What it is#
Any Pyth price feed can back a native market, and creators choose the feed freely — feeds are not curated or endorsed on-chain. A market's feed name or symbol is shown for identification only. Resolution uses Sampling Rule A: the first authenticated Pyth print at or after each boundary. For a feed that updates infrequently, or that pauses outside its trading hours (equities, commodities, and similar), the resolving print can lag the boundary, look stale, or be predictable well before it is sampled, and settlement can be delayed until the feed next publishes.
The on-chain program still validates feed identity, freshness bounds, confidence, and first-print ordering, and it rejects a substituted feed, a pre-boundary print, or a stale update. What it does not do is judge whether a feed is liquid, continuous, or suitable for a binary price-direction market.
Likelihood and severity#
No funds can be stolen and the oracle cannot be forged — the on-chain gates hold. The practical risks are a resolution that is predictable ahead of time (so an informed counterparty has an edge) and a settlement that is delayed until a paused feed reopens. Both are most likely on illiquid, exotic, or market-hours feeds, and least likely on continuous high-liquidity crypto feeds.
How to protect yourself#
- Prefer markets on continuous, high-liquidity feeds; be cautious with equities, commodities, or thinly-traded symbols, especially near their market close.
- Check the feed's update cadence and trading hours before trading a market whose boundary falls in or near a closed window.
- Prefer the canonical market the app surfaces for an asset/window.
Fee parameter changes#
What it is#
Fee settings (the taker-fee cap and curve) are admin-tunable within hard on-chain bounds: the fee cap can never exceed 5%, and updates are rate-limited on-chain (at most one change per hour). Changes are prospective only — a fee change affects future fills, not trades that already executed, and resting orders are charged nothing as makers regardless.
Likelihood and severity#
Low impact. Worst case, the taker fee on your future fills is higher than when you planned the trade, bounded at 5%.
How to protect yourself#
- The app shows the fee in the order preview before you sign — check it.
- See Referrals and Fees for the current defaults.
Stablecoin risk#
What it is#
Markets settle in a stablecoin (USDT on mainnet). Shares pay out in that token at face value: a winning share pays 1 token, which is only worth $1 if the stablecoin holds its peg. A depeg, freeze, or issuer action on the settlement token affects every payout in that market, and is entirely outside the protocol's control.
Likelihood and severity#
Historically rare for major stablecoins but not zero. Severity scales with the depeg — your payout's dollar value moves one-for-one with it.
How to protect yourself#
- Understand you hold stablecoin exposure for the life of every position.
- Size positions accordingly; don't treat "1 share = $1" as a guarantee of dollars, only of tokens.
Smart-contract risk#
What it is#
Bugs or vulnerabilities in the on-chain program itself.
The Seesaw program has not undergone a human third-party security audit. Security measures in place (from the repo's published status):
| Safeguard | Description |
|---|---|
| Test suites | Extensive unit, integration, and property tests |
| Fuzz testing | Dozens of continuous fuzz targets |
| Formal verification | Kani proofs over core math and state transitions |
| Runtime invariant checks | Solvency, no-crossed-book, conservation assertions |
| Checked arithmetic | All math uses overflow-checked operations |
| Open source | Code is publicly verifiable |
These reduce risk; they do not eliminate it. No audit, however thorough, makes a smart contract risk-free — and this one hasn't had an external human audit yet.
Likelihood and severity#
Unknown likelihood by nature; potential severity is total loss of funds held by the protocol. This is the standard, honest caveat for any unaudited DeFi protocol.
How to protect yourself#
- Only deposit what you can afford to lose.
- Use official frontends and SDKs; verify transaction contents before signing.
- Watch for the audit status to change (the project publishes it).
Price-band rejections#
What it is#
To stop spam and fat-finger quotes, resting orders must price near the current market: when both sides of the book have live orders, your order must rest within ±10% of the midpoint. With a thin or one-sided book, a wide static band of 1%–99% applies instead. Orders outside the band are rejected with an "order price out of band" error — nothing is lost; the order simply doesn't go on the book.
Immediate-or-cancel orders are exempt (they never rest), and the band can bite honest traders in fast markets: if the mid moves while your transaction is in flight, a previously-fine price can land outside the band and be rejected.
Likelihood and severity#
Common as a minor annoyance in volatile moments; severity is negligible — a rejected order costs you nothing but the transaction fee and a retry.
How to protect yourself#
- Quote near the visible market; re-check the book if you get rejected.
- Use IOC when you just want to take liquidity now.
- See the price band explained.
Market risk (you can just be wrong)#
The basic risk: your prediction doesn't come true and your shares expire worthless. A 100% loss on the stake of any single trade is a normal outcome, not a malfunction.
| Position | Outcome against you | Maximum loss |
|---|---|---|
| 100 YES @ 6000 bps | DOWN | 60 USDT (100%) |
| 100 NO @ 4000 bps | UP | 40 USDT (100%) |
Protect yourself: size positions so a total loss is acceptable, spread across markets, hedge by holding both sides, or sell early to cut losses — you never have to hold to resolution.
Liquidity risk#
Order books can be thin: wide spreads raise your costs, shallow depth means big orders move the price, and an empty book means no exit until resolution. Each side also has a configured resting-order capacity.
Protect yourself: check the book and the app's fill preview before trading, use limit orders to control your price, and size orders to the visible depth.
Risk summary#
| Risk | Severity | Likelihood | Your best defense |
|---|---|---|---|
| Abandoning funds past 7d | Total (for abandoned value) | Fully in your hands | Claim within 7 days of resolution |
| Market risk | Total stake per trade | High | Position sizing, early exit |
| Oracle outage → Expired | Moderate (50/50, not loss) | Rare | None needed; still claim within 7 days |
| Admin pause / post-only | Bounded delay, never funds | Rare | Wait; settlement is always available |
| Creator trust | Low (sweep needs abandonment) | Low | Claim on time; use canonical markets |
| Fee changes | Low (capped 5%, prospective) | Occasional | Check fee in the order preview |
| Stablecoin depeg | Tracks the depeg | Rare | Size for stablecoin exposure |
| Smart-contract bug | Up to total | Unknown — no audit | Only risk what you can afford to lose |
| Price-band rejection | Negligible | Common when volatile | Re-quote near the market; use IOC to take |
Risk disclosure#
Important: trading binary prediction markets involves substantial risk of loss.
- You can lose your entire stake on any single trade.
- Claim within 7 days of resolution — abandoned funds can be permanently forfeited to the market creator.
- The smart contracts have not had a human third-party audit and may contain undiscovered vulnerabilities.
- The protocol has no control over oracle prices or market outcomes.
- On-chain markets depend on Pyth, wallet/RPC infrastructure, available order-book depth, and the disclosed governance authorities.
- Past performance does not guarantee future results. Only trade with funds you can afford to lose.
Next steps#
- Claiming Winnings — the claim flow and deadlines
- Settlement — payout rules, the 7-day deadline, and the full on-chain mechanics
- How funds move through the protocol
- Market Making and Automation for advanced strategies