Skip to main content

BSL Compact Order Entry

Compact order entry submits signed actions to the same sequencer path as REST and FIX. The native market-maker transport is BSL Direct TCP. The HTTP compact body is byte-encoded JSON for SDK compatibility and onboarding.

Direct TCP submit

Discover the native endpoint through:

GET /api/v1/bsl/connectivity

Use bslTcp.host, bslTcp.port, and bslTcp.tlsSni, then open a persistent TCP/TLS session and send compact action frames. The current frame contract is:

HandshakeHello: 48 bytes
HandshakeAck: 48 bytes
MessageHeader: u32_le kind + u32_le payload_len
CompactActionFrame: 192 bytes

See BSL Direct TCP for the full protocol.

HTTP compact submit

POST /api/order-entry/binary
Content-Type: application/x-senticore-order-entry-batch
Accept: application/x-senticore-mm-batch-response, application/json
X-BSL-Result-Mode: ack
X-Senticore-Response-Mode: detailed
Idempotency-Key: quote-refresh-1
X-Senticore-Order-Entry-Key: <optional provisioned lane key>

POST /api/v1/mm/orders/batch.bin is the direct compatibility route. POST /api/v1/bsl/orders/compact is the canonical BSL route. Use an institutional_agent HMAC credential with quote scope, or a dedicated lane key when the connectivity bundle provisions one.

Supported Actions

Useful order-entry actions include:

ActionUse
SpotPlaceOrderSingle spot order
PlaceOrderSingle prediction-market order on compact BSL surfaces
CancelCancel by order id
AmendOrderQuantity reduction while keeping priority
SpotQuoteReplaceSpot quote refresh
QuoteReplacePrediction-market quote refresh
PlaceConditionalOrderConditional order where enabled
PlaceAlgoOrderAlgo order where enabled

Internal actions such as deposit credits, settlement credits, market creation, and resolution are rejected on the BSL order-entry path.

OutcomePlaceOrder is a public/delegated JSON input alias. Compact BSL batches use the canonical signed action variant PlaceOrder with book: "YES" or book: "NO".

Acknowledgement Model

The beta detailed response contains acceptance metadata such as ok, seqs, derivedOrderIds, acceptedActions, ackMode, durability metadata, and raw errors. Use it as an order-entry acknowledgement.

For terminal order state, use private streams, FIX drop-copy, account reads, or gap-fill where provisioned.

Failure Model

Rejects may include machine-readable reason codes and raw error strings during private beta. Preserve the full response body and x-request-id in client logs.