Skip to main content

Institutional Lane Parity

Senticore runs one matching engine and several entry lanes. The lane changes the wire protocol, latency profile, and operational contract; it must not change the economic semantics of an order. Use this page as the high-level certification matrix before onboarding a market maker or publishing a lane as production ready.

Product Contract

All institutional lanes share these invariants:

  • one canonical account and risk model,
  • the same market registry and lifecycle policy,
  • the same price-time priority and self-trade-prevention modes,
  • the same nonce, replay, idempotency, and backpressure posture for the lane's transport model,
  • the same final state source of truth: private streams, drop-copy, gap-fill, account/order reads, and persisted receipts.

The lane-specific difference is only the client protocol:

LaneBest useAuth modelLatency posture
HTTP signed tradingWallet/app order entry and broad action coveragePer-action wallet/delegated signatureHighest overhead, broadest compatibility
BSL compact HTTPMM onboarding and compact batch fallbackLocal action signature plus HMAC/lane credentialStable fallback, CDN/HTTP overhead
BSL Direct TCPNative quote-loop hot pathPer-action AuthSidecar; session-key AuthSidecarV2 for fast signingLowest Senticore-native live path
FIX 4.4OMS and desks with existing FIX enginesSession HMAC credentialMature institutional compatibility
FIXP/SBEBinary-FIX shops and SBE stacksFIXP session credentialBinary session, codec-certifiable

Functional Matrix

CapabilityHTTP signed / BSL HTTPBSL Direct TCPFIX 4.4FIXP/SBE
Spot limit/market placeSpotPlaceOrderSpotPlaceOrder compact frameD NewOrderSingle, spot marketTemplate 1 NewOrderSingle
Prediction YES/NO placePlaceOrder / public OutcomePlaceOrder aliasPlaceOrder compact frameD with Book(9100)Template 1 with book
Cancel by order idCancelCancel with routingMarketF OrderCancelRequestTemplate 2 OrderCancelRequest
Cancel by ClOrdIDRoute helper / client lookupClient must resolve to order idF with OrigClOrdID(41)Template 2 with origClOrdId
Quantity amendAmendOrderAmendOrder with routingMarketUse atomic replaceUse atomic replace
Atomic cancel/replaceSpotQuoteReplace / QuoteReplaceCompact frame groupG OrderCancelReplaceRequestTemplate 3 OrderCancelReplaceRequest
Mass cancelProtected helper / quote-replace fanoutUse quote-replace fanout or control helperq OrderMassCancelRequestTemplate 4 OrderMassCancelRequest
Order statusAccount/order reads and receiptsPrivate streams/gap-fill/read APIsH OrderStatusRequest and AF MassStatusTemplate 5 OrderStatusRequest
Drop-copy / executionsPrivate WS/SSE/gap-fillPrivate streams/gap-fillDrop-copy sessionExecutionReport stream
Cancel-on-disconnectAgent/control-plane sweepSession-key scoped COD via TCP disconnect noticeCredential-level CODCredential-level COD

Important Non-Parity By Design

Some differences are intentional and must stay documented:

  • Funding, withdrawals, settlement, market creation, asset administration, and internal credit actions are not low-latency order-entry lane features.
  • FIX and FIXP do not accept arbitrary signed action JSON; they expose an OMS order-entry subset with status, drop-copy, mass-cancel, and COD.
  • BSL Direct TCP is a compact frame hot path. Standalone cancel/amend signed actions carry only order_id, so clients must supply routingMarket. The sequencer treats it as routing context and rejects known mismatches.
  • BSL session keys can be temporarily narrowed with BSL_SESSION_KEY_CANARY_ACCOUNTS, but the production lane is open to all active registered session-key accounts when that list is empty. Market-scoped session-key cancel/amend is accepted only when the hot path can prove the referenced live order belongs to the same account and routed market. Session-key cancel-on-disconnect is scoped to orders admitted through that session key, not every account order.

Certification Checklist

Before a lane is called institutional-grade for an account:

  1. Fetch GET /api/v1/bsl/connectivity and verify advertised hosts, ports, SNI, schema URLs, compact account index, compact market indexes, chain ID, and verifying contract.
  2. Prove codec compatibility:
    • TypeScript SDK tests for signing, BSL Direct TCP, FIX, and FIXP.
    • Rust FIXP golden vectors and SBE/SOFH roundtrips.
  3. Run order lifecycle:
    • place resting bid/ask,
    • marketable IOC,
    • cancel by order id,
    • replace/cancel-replace,
    • mass cancel where the lane supports it,
    • status/drop-copy reconciliation.
  4. Run failure cases:
    • stale nonce,
    • duplicate ClOrdID,
    • wrong account in payload/session,
    • unknown market,
    • invalid routingMarket,
    • backpressure and reconnect.
  5. Run operations cases:
    • DB restart,
    • gateway restart,
    • TCP reconnect/resume where supported,
    • signer/session credential revocation,
    • COD sweep for BSL session keys and FIX/FIXP credentials with cancelOnDisconnect=true.

Implementation Notes For Market Makers

BSL Direct TCP quote engines should keep one persistent TLS session per strategy shard, cache the connectivity bundle at startup, and sign locally. Do not call the HTTP hash endpoint in a quote loop.

FIX/FIXP clients should treat session establishment as account authority. Every order message still carries the account, and the gateway rejects cross-account payloads.

For final state, always reconcile from streams/drop-copy/gap-fill. Fast acks mean admission or sequencing progress, not fill truth.

Current Gaps To Track

These are not hidden; they are the remaining maturity gates:

GapCurrent posture
BSL session-key Direct TCPImplemented and generally enabled when BSL_SESSION_KEY_AUTH_ENABLED=true and the optional canary list is empty
BSL session-key cancel-on-disconnectSupported via gateway SessionDisconnect notice and sequencer policy recheck; certify teardown drills per account
BSL market-scoped session-key cancel/amendSupported for live known orders with account, order-id hash, routed-market, and allowed-market verification
FIXP cross-connection resume registryServer-side bounded resume is wired; certify client reconnect/retransmit drills per account
Broad HTTP-only actionsKeep out of low-latency order-entry lanes unless they become true OMS functions