Skip to main content

Connectivity & Endpoints

Senticore exposes one public HTTP/WebSocket surface and three dedicated institutional lanes (FIX 4.4, BSL Direct TCP, and binary-FIX/FIXP). This page is the single source of truth for where you connect, on which port, and how TLS is terminated. Everything here is verified against the running gateway configuration. If a number differs from an older page, this page wins.

Machine-readable source of truth

The exact, live values (hosts, ports, SNIs, credential field names, frame sizes) are also served by the connectivity bundle: GET /api/v1/bsl/connectivity (aliases GET /api/v1/fix/connectivity and GET /api/v1/fixp/connectivity). Build your deployment config from that endpoint rather than hard-coding values. In particular, only enable FIXP clients when the returned fixp.enabled is true.

Endpoint matrix​

LaneHost (TLS SNI)PortProtocolTLS terminatesFor
Public REST + WebSocketapi.sentico-labs.xyz443HTTPS / WSSnginx (edge)Everyone: market data, account, retail order entry
FIX 4.4 (tag=value)fix.sentico-labs.xyz9878FIX 4.4 over TLSIn-process (rustls)Institutions with an existing FIX engine
BSL Direct TCP (binary)bsl.sentico-labs.xyz9001Senticore BSL v2 over TLSIn-process (rustls)Latency-sensitive MMs, per-order signed
Binary-FIX / FIXP (SBE)fixp.sentico-labs.xyz9879 when fixp.enabled=trueSBE + SOFH + FIXP over TLSIn-process (rustls)SBE/FIXP shops

Sandbox​

The sandbox (launching — see Status) is a separate off-chain deployment with the same lanes on the same ports. Only the hostname and the signing chain id differ.

LaneSandbox host (TLS SNI, launching)PortProduction equivalent
Public REST + WebSocketapi.sentico-sandbox.xyz443api.sentico-labs.xyz:443
FIX 4.4 (tag=value)fix.sentico-sandbox.xyz9878fix.sentico-labs.xyz:9878
BSL Direct TCP (binary)bsl.sentico-sandbox.xyz9001bsl.sentico-labs.xyz:9001
Binary-FIX / FIXP (SBE)fixp.sentico-sandbox.xyz9879fixp.sentico-labs.xyz:9879
Binary market datamd.sentico-sandbox.xyz9002, 9003Entitlement-issued per desk
Web appapp.sentico-sandbox.xyz443app.sentico-labs.xyz

Signed actions in the sandbox carry chain id 421614, not 42161. Read the chain binding from the connectivity bundle on the host you are connected to; a sandbox signature is rejected by production and a production signature is rejected by the sandbox.

All lanes terminate in-process on one host at Hetzner Online in Germany. As one reference point rather than a guarantee: one client measuring from Vienna on 2026-09-13 (network RTT 29.5 ms) saw FIX 4.4 order acks at 29.9 ms and cancels at 29.7 ms, FIXP acks at 35–40 ms, BSL Direct TCP CoreAck p50 of 30–38 ms with Ed25519 session keys, and BSL HTTPS compact submits at p50 about 74 ms. Your figures depend on your own network path; see the HFT Market-Maker Guide for how to measure them.

Measured from a host inside the same facility on 2026-09-21, TCP connection establishment is 0.44 ms to FIX, 0.47 ms to FIXP, 0.48 ms to BSL Direct TCP and 0.51 ms to the direct market-data route, against 21.67 ms to the CDN-fronted api. name. The Colocation Latency Benchmark states the clock discipline behind those figures and what they do not cover. It also reports a FIX 4.4 order acknowledgement measured from inside the facility: 6.22 ms p50, 183.78 ms p99.

Resolve these names through DNS at startup; do not copy a historical A record into a client configuration. The three institutional lanes are raw TCP ports with in-process TLS. They do not pass through a CDN or an HTTP reverse proxy. Only api.sentico-labs.xyz is behind the HTTP edge. Hostname, port, SNI, and enablement from the connectivity bundle override this dated page.

Keep the binary lanes DNS-only

FIX, BSL, and FIXP are TLS-over-TCP, not HTTP. A CDN/HTTP proxy such as Cloudflare orange-cloud will break the handshake. Keep these three records DNS-only. The connectivity bundle advertises cloudflareHttpsProxySupported: false for exactly this reason.

TLS, SNI, mTLS, and IP posture​

  • Present the correct SNI per lane. Each lane validates against its own subdomain (fix., bsl., fixp.), not api..
  • TLS is mandatory on every public lane. Production deployments fail closed if a binary lane would bind plaintext on a public interface.
  • mTLS is optional and recommended for dedicated institutional routes. When a client CA is configured the gateway requires a client certificate; otherwise it accepts any valid TLS client and relies on application-layer credentials.
  • Source-IP allowlisting is optional for desks with static egress IPs. The public FIX, BSL, and FIXP lanes do not require IP onboarding by default, but order entry still requires valid session or per-order credentials.

Which lane should I use?​

You are...UseWhy
A retail / programmatic traderREST + WebSocket (api.)Simplest: one HTTPS host, JSON, signed actions, /feed/public for market data
An MM that already runs a FIX engineFIX 4.4 (fix.)Drop-in tag=value; session auth, order status, drop-copy, cancel-on-disconnect
A latency-sensitive MM wanting a lean binary wireBSL Direct TCP (bsl.)192-byte fixed-layout order frames, recoverable session, per-order signed frames (Ed25519 session keys on production)
A shop with an SBE/FIXP stackBinary-FIX / FIXP (fixp.)Standards-interoperable SBE+FIXP; session auth; cancel-on-disconnect + mass-cancel
Same engine, lane-specific capabilities

All lanes feed the same deterministic matching engine and books, but they do not expose an identical action set. Signed HTTP has the broadest action coverage. BSL, FIX, and FIXP expose narrower OMS subsets and their own session, nonce, and recovery contracts. Use the capability matrix in each lane's guide instead of assuming transport-only parity.

Public REST + WebSocket base URLs​

SurfaceProduction URLSandbox URL (launching)
RESThttps://api.sentico-labs.xyz/api/v1/...https://api.sentico-sandbox.xyz/api/v1/...
Multiplexed WebSocketwss://api.sentico-labs.xyz/api/v1/ws/public and .../api/v1/ws/private/{account}wss://api.sentico-sandbox.xyz/api/v1/ws/public and .../api/v1/ws/private/{account}
Snapshot+delta market feedwss://api.sentico-labs.xyz/api/v1/feed/public plus /feed/public/a and /feed/public/bwss://api.sentico-sandbox.xyz/api/v1/feed/public plus /feed/public/a and /feed/public/b
Direct market data (no CDN, authenticated)wss://md.sentico-labs.xyz:9002/api/v1/ws/public and :9003wss://md.sentico-sandbox.xyz:9002/api/v1/ws/public and :9003
Server-Sent Eventshttps://api.sentico-labs.xyz/api/stream/market and .../api/stream/account/{account}https://api.sentico-sandbox.xyz/api/stream/market and .../api/stream/account/{account}

For market data, MMs and HFT should use /api/v1/feed/public/a + /b: two redundant lines carrying a sequenced snapshot+delta stream with per-frame integrity checksums and gap recovery. The multiplexed /api/v1/ws/public is best for charts and lightweight clients. See WebSocket Overview. Latency-sensitive clients should also read Direct Market Data: the same stream without a CDN in front, authenticated with a read-scoped credential.

Per-lane summary​

FIX 4.4 - fix.sentico-labs.xyz:9878​

Standard FIX.4.4 tag=value over TLS. Logon (35=A) carries your API key in Username(553), secret:passphrase in Password(554), and the engine account in Account(1). Supports NewOrderSingle, Cancel, atomic CancelReplace, MassCancel, OrderStatus, drop-copy (TargetSubID(57)=drop_copy), and cancel-on-disconnect. No per-order signing: the session is the authenticated identity. See FIX API.

BSL Direct TCP - bsl.sentico-labs.xyz:9001​

Senticore's lean binary lane (protocol id senticore-bsl-tcp-v2): a 48-byte handshake, an 8-byte [kind][len] message header, and a 192-byte fixed-layout CompactActionFrame decoded zero-copy. The v2 session is recoverable: sequenced acknowledgements, heartbeats, retransmit, token-based resume, and bounded backpressure.

BSL does not authenticate once and then trust the socket. For each single order, send:

AuthSidecar(kind=4, cold AuthSidecar payload)
CompactActionFrame(kind=1, 192-byte frame)

For atomic groups, use CompactFrameGroup(kind=10) where every item embeds its own sidecar. The AuthSidecar carries auth_binding, secp256k1 signature, 20-byte signer_id, and mandatory cold-encoded SignedAction payload_bytes. The sequencer verifies the v2 chain-bound action hash, signer authorization, account mapping, compact frame fields, replay/nonce state, and rate limits. See BSL Direct TCP for the full wire order and failure modes.

Production status of the two sidecar versions (re-checked 2026-09-13)

Wallet-signed AuthSidecar V1 frames are accepted by the gateway but still not applied on production (reason 202). The path that works is an Ed25519 session key with AuthSidecarV2 (senticore_session_key_v1). Register the key over HTTP with Origin: https://app.sentico-labs.xyz, wallet-auth appName "Sentico", and no SC-* machine-auth headers; include "cancel" in the policy's allowedActions if you will arm the dead-man switch. A session without client heartbeats ends after about 4 s (sessionEnded); resting orders stay unless cancelOnDisconnect is set. See BSL Session Keys.

Binary-FIX / FIXP - fixp.sentico-labs.xyz:9879​

An SBE/FIXP stack: SBE message encoding + SOFH framing + FIXP Recoverable session. Authenticate once at Negotiate with apiKeyId:apiSecret:apiPassphrase:accountHex; thereafter the session is the identity (no per-order signing). Cancel-on-disconnect, mass-cancel, ClOrdID dedup, OrderStatusRequest replies, account-bound cross-connection resume, and a published SBE schema + golden vectors are used for codec certification. The public lane is reachable without IP onboarding, like FIX 4.4; invalid credentials are rejected during FIXP negotiation. Check GET /api/v1/fixp/connectivity before startup and fail closed if fixp.enabled is false. See Binary-FIX Conformance.