One surface, not many
The same calls third-party builders use — no vendor-specific glue, no bespoke contract wiring to maintain.
One SDK for the entire protocol surface. @symmio/trading-core and trading-react wrap contracts, solvers, prices, and Muon behind a simple, correct, reliable API — so you build the interface, not the plumbing.
1import { useMarket } from "@symmio/trading-react";23export function Ticket() {4 const { market, mark } = useMarket("BTC-PERP");56 return (7 <OrderTicket8 symbol={market.symbol}9 price={mark}10 maxLeverage={market.maxLeverage}11 />12 );13}trading-core holds every contract call, GraphQL query, and calculation with no framework assumptions. trading-react is a thin layer of hooks and providers on top. Keep core reusable and a Vue or Solid layer slots in later without a rewrite.
The same calls third-party builders use — no vendor-specific glue, no bespoke contract wiring to maintain.
Typed errors, input validation, and calculations verified against the perps-core contracts, cited in the docs.
Realtime feeds, quote reconciliation, retries, and reconnection live inside the SDK — your UI just reads state.
Each is published, typed, and documented on its own. Install the core, add the React layer, reach for signing and utils as you go.
Our own surfaces consume trading-core and trading-react exactly the way a third-party integrator would — the console is the reference implementation.
Install the packages, wrap your app in the provider once, then read positions, quotes, balances, and prices with hooks. Bring your own wagmi and TanStack Query setup — the SDK bridges to it.
MIT licensed · works with wagmi + TanStack Query · TypeScript-native