One API.
Data & actions
across DeFi.

Swaps, memecoins, perps, prediction markets and RWAs. Six sectors, six chains and fifteen venues behind one contract. Every action comes back as steps[] your wallet signs. We build, you sign, and the API never touches funds.

Open API, no key required. ultra-api.deserialize.xyz
POST /v1/swaps/quote
curl https://ultra-api.deserialize.xyz/v1/swaps/quote \
  -H "content-type: application/json" \
  -d '{
    "chain": "solana",
    "inputToken": "So1111…111112",
    "outputToken": "EPjFW…TDt1v",
    "amountIn": "1000000000"
  }'
// 200: meta-aggregated, best of every provider on the chain
{
  "best": {
    "provider": "jupiter",
    "output": { "amount": "76427536" }
  },
  "all": [ … ], "failed": [] 
}
6
Sectors
6
Chains
15
Venues
$0
Custody, always
01

Six sectors, one interface

Token Swaps

We query every aggregator on the chain at once and return the best route, with all the alternatives so you can compare.

Jupiter, KyberSwap, LiFi

Memecoins

Bonding-curve buys and sells through the same steps[] contract as everything else. Once a token graduates it routes through the swap engine on its own.

Pump.fun, Four.meme

Perpetuals

Markets, funding, orderbooks and positions. Build orders with TP/SL legs, and manage collateral and leverage.

Hyperliquid, GMX, Drift, Avantis, Jupiter Perps

Prediction Markets

Live odds and volumes. The full order flow comes back as ordered steps: allowances, credential derivation, then the signed CLOB order.

Polymarket, Limitless

Real-World Assets

Tokenized treasuries, credit, commodities and equities with issuer NAV and live yield. Access rules are explicit, so permissioned assets tell you they are permissioned.

Ondo, Maple, Backed xStocks, Paxos

NFTs

Coming soon

Collections, listings and holdings, with buy and list actions resolved to signable transactions.

Magic Eden, OpenSea
02

How steps[] works

Every action endpoint returns an ordered array of things to sign. The API builds; your wallet signs and sends. It never sees a key.

01 BUILD
Ultra returns steps[]
Unsigned txs, typed data and venue orders, in the exact order you run them. Each one carries a precondition, so any step that is already satisfied gets skipped.
02 SIGN
Your wallet signs
Keys never leave the user. The trust boundary sits with them, never with us.
03 SEND
Broadcast and confirm
Submit to the chain, or post to the venue's own endpoint. We never relay it for you.
sign-transaction  raw unsigned tx, EVM or Solana
sign-typed-data  EIP-712 or message signature
post-to-endpoint  signed order, posted to the venue
03

Three ways to consume it

REST
/v1
Request and response for every sector. Versioned and schema-validated, with one envelope and a closed set of error codes.
WEBSOCKET
/v1/ws
Live streams for token prices, memecoin launches, perps marks and funding, and prediction odds. Subscribe with a JSON frame.
MCP, AGENT-NATIVEHEADLINE
/mcp
AI agents call every endpoint as a native tool, no glue code. Whatever action an agent proposes still comes back as steps[] for a human to sign.
LIVE, COUNTED FROM THE API
361
Perp markets
46
RWA assets
13
Live integrations
6
Chains
45
Endpoints
04

Pricing

Free
$0forever

Everything works with no signup, no key and no card.

  • 10 requests per second
  • All six sectors, all six chains
  • REST, WebSocket and MCP
  • Full steps[] action building
  • Community support
Start building
Enterprise
Custominvoiced

Higher throughput and a direct line to the team.

  • No rate limit
  • Dedicated API key
  • Priority support and an SLA
  • Partner fee routing
  • Early access to new sectors
Contact sales

For enterprise, email sales@deserialize.xyz. We send an invoice, and your API key is issued once it is paid.

05

Quickstart

Install the SDK, build an action, hand the steps to your signer. No key, no waitlist.

  1. Install @deserialize/ultra-agg-sdk
  2. Call any sector endpoint
  3. Sign & send the returned steps[]
npmpnpmbun
npm i @deserialize/ultra-agg-sdk

import {
  UltraAggClient, executeSteps,
} from '@deserialize/ultra-agg-sdk'

const ultra = new UltraAggClient()
const action = await ultra.swapBuild({
  chain: 'base',
  inputToken: WETH,
  outputToken: USDC,
  amountIn: '1000000000000000000',
  taker: wallet.address,
})

// each step is signed by YOUR wallet
await executeSteps(action, wallet)