Read-only mode · Transactions are temporarily disabled
Create
Oqto API · v1

Build on the same routes.

Connect a trading terminal to Oqto market data, live trades and Oqto-first execution. The terminal keeps its keys and signs locally.

01

Quote

Pass raw token amounts. Oqto compares direct, split and multi-hop liquidity before an allowed external route.

02

Approve

Use only the returned spender and amount. Skip the transaction when the existing allowance is sufficient.

03

Sign

Simulate, sign and broadcast the unsigned transaction from your own wallet, relayer or account-abstraction stack.

Terminal adapter

One venue contract.

/terminal/config is the machine-readable entry point. Its market quote automatically switches from bonding execution to DEX routing when a token graduates.

Venue
oqto
Feed
Finalized WebSocket + REST
Execution
Exact input
Keys
Local only
HTTP

Endpoints

/api/v1
GET/statusChain, contracts and enabled capabilities
GET/marketsSearch launches and graduated markets
GET/markets/{id}/{resource}Holders, trades, candles and bins
GET/poolsLaunch and permissionless pool discovery
GET/pools/{address}/{resource}Pool detail, candles and bin depth
GET/terminal/configVenue metadata and integration URLs
GET/terminal/token-listStandard EVM token list
GET/terminal/pairsNormalized pair discovery
GET/terminal/tradesCursor-based trade feed
POST/terminal/quoteOne quote across bonding and DEX
POST/swap/quoteBest price plus unsigned execution
POST/liquidity/addApprovals, preview and protected add
POST/liquidity/removeOperator approval, preview and protected removal
Exact input

Execute from a terminal

const quote = await fetch("https://oqto.fun/api/v1/swap/quote", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    tokenIn: "0x779Ded0c9e1022225f8E0630b35a9b54bE713736",
    tokenOut: TOKEN,
    amountIn: "1000000",
    slippageBps: 300,
    taker: account.address
  })
}).then(r => r.json());

// Check allowance, sign quote.data.execution.approval when required,
// then sign quote.data.execution.transaction locally.
Liquidity Book

Create a position

POST /api/v1/liquidity/add
{
  "taker": "0x…",
  "token": "0x…",
  "quoteToken": "0x…",
  "binStep": 25,
  "tokenAmount": "1000000000000000000000",
  "quoteAmount": "25000000",
  "binsBelow": 8,
  "binsAbove": 8,
  "shape": 1,
  "slippageBps": 50
}

Execution rules

Addresses are EIP-55 normalized. Amounts are decimal strings in base units. Slippage is 10–2,000 bps. Deadlines may be 15 seconds to 24 hours ahead.

Primary quote

Use the ERC-20 USDT0 contract. Native-value wrap and swap routes are disabled on this network.

LP preview

Approve first, then repeat the same request. Oqto simulates against the mined allowance and returns non-zero minimums. Offline clients can use the returned eth_call preview instead.

Errors and limits

Every response includes an API version and request ID. On a 429, retry only after the returned Retry-After interval.

Terminal listing

The adapter makes Oqto integration deterministic. A third-party terminal must still enable Stable and add Oqto as a venue in its own product.

Partner limits

Public access needs no key. High-volume terminal backends can request a keyed rate tier at hi@oqto.fun.