Order Types
Senticore is designed for professional order handling across spot, binary options, and prediction markets.
Every order type below has dedicated behavior test coverage and is included in continuous integration coverage gating. Randomized sequence fuzzing across supported order types runs regularly, asserting deterministic state across independent engine instances.
Time-in-force
| Type | Behavior |
|---|---|
| GTC | Rests on the book until filled, cancelled, or expired |
| IOC | Fills immediately against available liquidity and cancels the remainder |
| FOK | Fills the entire quantity immediately or rejects |
| Post-only | Rests as maker liquidity; rejects if it would cross the spread |
Modifiers
| Modifier | Behavior |
|---|---|
is_market | Market order; takes available liquidity |
reduce_only | Can only reduce an existing position |
stp_mode | Self-trade prevention behavior |
expires_at | Auto-cancel timestamp for eligible orders |
Conditional orders
Conditional orders trigger child orders based on market conditions.
The TypeScript SDK high-level local-signing helpers currently cover
SpotPlaceOrder, OutcomePlaceOrder, Cancel, AmendOrder,
SpotQuoteReplace, and QuoteReplace. Advanced algo and conditional actions
are available as raw signed HTTP/BSL actions where enabled; construct and sign
the raw action payload shown in Raw actions
instead of calling non-existent sdk.placeAlgoOrder or
sdk.placeConditionalOrder helpers.
Stop loss
{
"PlaceConditionalOrder": {
"market": 10,
"book": "YES",
"side": "Ask",
"qty": 100000,
"limit_price": 600000,
"trigger_price": 610000,
"trigger_direction": "at_or_below",
"conditional_kind": "stop_loss",
"reduce_only": true,
"signed_trigger_order": {
"payload": { "...": "pre-signed child order payload" },
"signature": { "scheme": "EcdsaSecp256k1", "bytes": [1, 2, 3] }
}
}
}
| Direction | Use case |
|---|---|
at_or_below | Sell-side stop for downside protection |
at_or_above | Buy-side stop or short-position protection |
Take profit
{
"PlaceConditionalOrder": {
"market": 10,
"book": "YES",
"side": "Ask",
"qty": 100000,
"limit_price": 795000,
"trigger_price": 800000,
"trigger_direction": "at_or_above",
"conditional_kind": "take_profit",
"reduce_only": true,
"signed_trigger_order": {
"payload": { "...": "pre-signed child order payload" },
"signature": { "scheme": "EcdsaSecp256k1", "bytes": [1, 2, 3] }
}
}
}
OCO
One-cancels-other links a take-profit and stop-loss path. Submit the first
conditional order, then submit the second with linked_conditional_id set to
the returned conditional id. When one triggers, the linked order is cancelled.
Algorithmic orders
Algorithmic orders execute over time according to a strategy.
Iceberg
{
"PlaceAlgoOrder": {
"market": 10,
"book": "YES",
"side": "Bid",
"total_qty": 1000000,
"limit_price": 510000,
"strategy": {
"kind": "iceberg",
"display_qty": 100000
}
}
}
Behavior:
- Only the display quantity is visible at a time.
- A new slice posts as the visible slice fills.
- Cancelling the parent releases remaining reserved collateral.
TWAP
{
"PlaceAlgoOrder": {
"market": 10,
"book": "YES",
"side": "Bid",
"total_qty": 1000000,
"limit_price": 510000,
"strategy": {
"kind": "twap",
"slice_qty": 100000,
"interval_ms": 60000,
"start_at": 1781190000000
}
}
}
Behavior:
- Slices are submitted on a fixed interval.
- The last slice is capped to remaining quantity.
- A stale or blocked child order prevents uncontrolled order spam.
VWAP
{
"PlaceAlgoOrder": {
"market": 10,
"book": "YES",
"side": "Bid",
"total_qty": 1000000,
"limit_price": 510000,
"strategy": {
"kind": "vwap",
"participation_bps": 1000,
"min_slice_qty": 100000
}
}
}
Behavior:
- Child size follows recent market volume.
participationBpscontrols the target share of market volume.- Execution pauses when observed volume is zero.
Validation rules
| Rule | Behavior |
|---|---|
| Price tick | Price must align to the market tick size |
| Lot size | Quantity must align to lot size |
| Max quantity | Per-market cap is enforced |
| Open order cap | Per-account cap is enforced |
| Book depth cap | Prevents unbounded price-level growth |
| Minimum notional | Rejects dust orders |
Representative pre-launch market parameters are documented on the Markets page. Final production values can change before closed beta and public mainnet.
| Market | Tick size | Lot size | Minimum notional |
|---|---|---|---|
| BTC-USDC | 0.01 USDC | 0.0001 BTC | 10 USDC |
| ETH-USDC | 0.01 USDC | 0.001 ETH | 10 USDC |
| SOL-USDC | 0.001 USDC | 0.01 SOL | 5 USDC |
| YES/NO markets | 0.001 USDC | 1 contract | 5 USDC |
Common rejection reasons
| Error | Meaning |
|---|---|
PostOnlyRequiresPassiveLimitOrder | Post-only order would take liquidity or is not a passive limit |
InsufficientCollateral | Account lacks free collateral |
OrderbookFull | Price-level cap reached |
WouldCrossSpread | Post-only order would cross the spread |
ReduceOnlyExceedsPosition | Reduce-only order would increase exposure |