Documentation Index
Fetch the complete documentation index at: https://docs.numofx.com/llms.txt
Use this file to discover all available pages before exploring further.
System overview
Numo’s futures orderbook is split across four layers:markets-service
Public REST API for market discovery, orderbook reads, trades, order entry, and cancellation.
execution-service
Backend executor that validates crossed-order payloads and submits
verifyAndMatch(...).execution-contracts
Onchain matching and action-verification contracts used by the trusted backend executor.
risk-core
Margin engine, subaccounts, cash asset accounting, manager hooks, settlement, and liquidation.
End-to-end flow
1. Market discovery
Clients call
GET /v1/markets on markets-service to discover enabled instruments and retrieve the canonical asset_address and sub_id.2. Orderbook reads
Clients poll
GET /v1/book and GET /v1/trades on markets-service for top-of-book state, recent prints, and 24h stats.3. Signed order submission
Clients submit signed order payloads to
POST /v1/orders. The service validates that order metadata matches the embedded action payload before persisting the order.4. Matching
The matcher loop in
markets-service scans for crossed orders, computes fill amounts, and builds an executor payload for the market.5. Onchain execution
execution-service validates the payload, ABI-encodes TradeModule.OrderData, simulates Matching.verifyAndMatch(...), and broadcasts the transaction through execution-contracts.Deliverable cNGN future
The physically delivered FX future exposed by the backend is:market:USDCcNGN-APR30-2026contract_type:deliverable_fx_futuresettlement_type:physical_deliverydisplay_name:USDC/cNGN APR-30-2026 Future
Physically delivered on Base. Long pays cNGN and receives fixed USDC notional; short pays fixed USDC notional and receives cNGN.
What each repo is responsible for
markets-service
- stores active orders and trade fills
- exposes
GET /v1/markets,GET /v1/book,GET /v1/trades - accepts
POST /v1/ordersandPOST /v1/orders/cancel - resolves market metadata from exact
(asset_address, sub_id)
execution-service
- accepts
POST /execute - requires
actions.length === signatures.length - requires
actions[0].subaccount_id === order_data.taker_account - requires every
action.module === module_address
execution-contracts
- verifies signed actions
- owns the trusted
Matchingexecution path - executes matched transfers against the core account system
risk-core
- stores balances in
SubAccounts - lets managers validate final account state
- lets assets track transfer semantics and settlement inputs
- provides
CashAssetandPerpAssetprimitives used by managers during settlement

