Skip to main content

Placing Orders

This guide covers how to place orders on the Seesaw order book.

Order Types

Seesaw supports three order types:

TypeBehaviorBest For
LimitMatch what's possible, rest goes on bookMost trading
Post-OnlyReject if would match immediatelyMarket making
Immediate-or-Cancel (IOC)Match what's possible, cancel restTaking liquidity

Order Sides

You can express four different trading intentions:

How Orders Work

1. Canonical Conversion

All orders are converted to a single canonical form for matching:

Conversion Rules:

  • Buy YES @ p becomes BID @ p
  • Sell YES @ p becomes ASK @ p
  • Buy NO @ q becomes ASK @ (10000 - q)
  • Sell NO @ q becomes BID @ (10000 - q)

2. Tick Rounding

Prices are rounded to the nearest tick (default 100 bps = 1%):

SideRoundingReason
BidsRound DOWNConservative for buyer
AsksRound UPConservative for seller

Example (tick size = 100 bps):

OrderBeforeAfter
Buy YES @ 605060506000 (round down)
Sell YES @ 595059506000 (round up)

3. Matching

Orders match using price-time priority:

Placing a Buy Order

Requirements

RequirementDescription
Market StateMust be in TRADING state
Price1 to 9999 basis points
QuantityGreater than 0
CollateralSufficient USDC in wallet

Collateral Calculation

For a buy order:

Required Collateral = (price_bps × quantity) / 10000

Example: Buy 100 YES @ 6000 bps

Collateral = (6000 × 100) / 10000 = 60 USDC

Order Flow

Placing a Sell Order

Requirements

RequirementDescription
Market StateMust be in TRADING state
Share OwnershipMust own the shares you're selling
Price1 to 9999 basis points
QuantityLess than or equal to available shares

No Naked Shorts

You can only sell shares you own:

Order Flow

Self-Trade Prevention

Orders from the same user cannot match against each other. If your new order would match your existing order, it skips and matches the next best price.

Order Parameters

ParameterTypeDescription
sideOrderSideBuyYes, SellYes, BuyNo, SellNo
price_bpsu16Price in basis points [1, 9999]
quantityu64Number of shares
order_typeOrderTypeLimit, PostOnly, IOC

Fee Structure

FeeRateRecipient
Taker Fee30 bps (0.3%)Protocol
Maker Rebate10 bps (0.1%)Order placer

Taker: Order that matches immediately Maker: Order that rests on the book

Order Book Visualization

Market: BTC/USD (15-min duration)
         BIDS                    ASKS
Price    Qty     Total  |  Price    Qty     Total
-------------------------------------
5500     1,000   1,000  |  5600     500     500    <- Spread: 100 bps
5400     2,500   3,500  |  5700     1,200   1,700
5300     800     4,300  |  5800     3,000   4,700
5200     1,500   5,800  |  5900     750     5,450

Best Bid: 5500 bps (55%)
Best Ask: 5600 bps (56%)
Mid: 5550 bps

Trade Execution Example

Incoming Order: Buy YES @ 5700 bps, qty = 1,000

StepMatch PriceQuantityCost
15600 bps50028.00 USDC
25700 bps50028.50 USDC
Total5650 avg1,00056.50 USDC

Common Errors

ErrorCauseSolution
E_TRADING_NOT_STARTEDMarket not in TRADING stateWait for start snapshot
E_TRADING_ENDEDMarket past end timeCannot trade after t_end
E_INSUFFICIENT_COLLATERALNot enough USDCDeposit more USDC
E_INSUFFICIENT_SHARESSelling more than ownedReduce quantity
E_WOULD_CROSSPostOnly order would matchUse Limit type
E_ORDERBOOK_FULL64 orders per side limitWait for orders to fill

Best Practices

  1. Check the Spread: Wide spreads mean higher costs
  2. Use Limit Orders: More control than market orders
  3. Monitor Time: Orders are cancelled at market end
  4. Calculate P&L: Know your breakeven price
  5. Size Appropriately: Don't over-concentrate

Next Steps