Vordium LabsDocs

REST

Every public REST read and write — network, markets, accounts, orders, agents, bridge and records — with examples in Python, TypeScript and cURL.

The base address is https://rpc.vordium.com. Examples use the testnet.

Network

RouteAnswers
GET /statuschain id, chain head, genesis, sync state, whether trading and deposits are open, oracle and reserve health
GET /truth/v1facts several validators agree on (ok: false with a reason when they cannot)
GET /network-spec.jsonthe whole network description
GET /releases.jsonthe signed list of node releases
Python
import requests
s = requests.get("https://testnet.vordex.xyz/chain/status", timeout=10).json()
print("chain", s["chain_id"], "head", s["chain_head"], "genesis", s["genesis_sha256"][:16], "trading open:", s["trading_open"])

Markets

RouteAnswers
GET /api/pairs/perpsthe perpetual markets
GET /markets/specsevery market's rules: step sizes, maintenance margin, liquidation fee, price band, order limits
GET /oracle/{pair}oracle, mark and index prices of one market, as integers with 6 decimals
GET /oracle/pricesoracle and mark prices of every market, as decimal numbers
GET /orderbook/{pair}the book: bids and asks
GET /funding/{pair}the last funding rate, the next settlement and open interest
GET /trades/{pair}recent trades, with which kind of key signed each side
GET /stats/volume, GET /stats/oivolume and open interest
Python
import requests
API = "https://testnet.vordex.xyz/chain"
mark = requests.get(f"{API}/oracle/1", timeout=10).json()["mark_price"] / 1e6
book = requests.get(f"{API}/orderbook/1", timeout=10).json()
bids, asks = book.get("bids") or [], book.get("asks") or []
print(f"ETH mark {mark:.2f} · best bid {bids[0] if bids else '—'} · best ask {asks[0] if asks else '—'}")

Accounts

RouteAnswers
GET /account/equity/{address}USDC: total, free_balance (what a new order can use), held in positions and orders
GET /positions/{address}open positions with their exact liquidation_price
GET /orders/{address}open orders: id, side, type, price, filled_18dec, remaining_18dec
GET /orders/history/{address}closed orders, with which key signed each (signed_with)
GET /twaps/{address}running TWAP orders
GET /schedule-cancel/{address}the dead-man switch time, if armed
GET /markets/account/{address}open orders against the cap, request allowance used, market-maker tier, rebates
GET /session/get?owner=the session the account holds
GET /session/valid?owner=&session_key=whether a session key is valid and confirmed

Orders

All are signed POST requests (Signing).

RouteSigned byBody
POST /order/placeaccount or sessionowner, sessionKey, pairId, side ("buy"/"sell"), orderType ("Market"/"Limit"), size_18dec, price, leverageBps, reduceOnly, post_only, trigger_price_8dec, trigger_dir, clientNonce, signature
POST /order/cancelaccount or sessionorder_id, owner, session_key, signature
POST /order/cancel-allaccount or sessionowner, pairId (0 = every market), nonce, signature
POST /order/modifyaccount or sessiona signed ModifyOrderV2
POST /order/batch-signedaccount or sessiona signed BatchOrders: places (any time in force), cancels
POST /tpsl/setaccount or sessiona signed SetTpSl for an open position
POST /twap/place, POST /twap/cancelthe account onlya signed PlaceTwap / CancelTwap
POST /schedule-cancelaccount or sessiona signed ScheduleCancel
POST /account/mmpaccount or sessiona signed SetMmp

A full worked example — sign, send, read back, cancel — is the Python quickstart.

Sessions

RouteSigned byBody
POST /session/createthe accountowner, session_key, expires_at, nonce, signature (a signed SessionCreate)
POST /session/revokethe accountowner, session_key, nonce, signature (a signed SessionRevoke)

Agents

RouteAnswers
GET /agents/{account}the account's agents
GET /agents/{account}/{agent}one agent: status, name, expiry, policy, market limits, lock, raise clock
GET /events/agent/{agent}what the agent did and what was refused, with the reason
POST /submita signed agent operation (Agents)

Bridge

RouteAnswers
GET /bridge/v4/vaultsthe vault, its handler, whether deposits are open per chain, minimums, routes, fees
GET /bridge/v4/deposits/{address}the account's deposits and their status
GET /bridge/v4/deposit/tx/{hash}one deposit by its transaction on the source chain
GET /bridge/v4/withdraw-nonce/{account}the next withdrawal nonce
POST /bridge/v4/withdrawa signed WithdrawIntentV4
GET /bridge/v4/withdrawals/{account}the account's withdrawals: pending or paid
GET /bridge/v4/withdrawal/{account}/{nonce}/callthe exact vault call for a ready payout
GET /reservesthe vault's balance against what Vordium owes

Records

RouteAnswers
GET /events/account/{address}the account's trading records
GET /events/range?from=&to=every record in a range of heights
GET /events/coveragewhich heights this node's records cover
GET /block/{n}/eventsthe records of one block
GET /batch/{n}, GET /batchesbatches and the votes that agreed them

See State and records for how to read records without mistaking a gap for nothing.

Validators

RouteAnswers
GET /registry/setthe validator set: seated, others, rules, epoch, voting power
GET /registry/entry/{address}one validator

Network facts last checked against the network 2026-10-22 13:00:37 UTC · mainnet spec v28 · testnet spec v8

On this page