Account

Market data API.Base Sepolia testnet.

Every graduated Crux launch's market, its trades and its candles, read live from the chain. The same numbers the Crux terminal shows: its chart and tape decode trades with the same code.

Public · no keyAny origin (CORS)JSONTest tokens only

1. Overview

Base URL https://cruxprotocol.xyz. Every endpoint is a plain GET returning JSON, open to any origin and cached at the edge for a few seconds. Errors return { "error": "…" } with status 400 (bad parameter), 404 (unknown pair) or 503 (the chain couldn't be read; retry).

A market is identified by its pair: the launch token's Uniswap V2 pair with test USDC, whose LP tokens are burned. Every response carries chainId 84532, network "base-sepolia" and testnet true.

2. Pairs

GET/api/pairs· cached 30 s

Every graduated launch's market, newest launch first. Add ?pair=0x… for one.

venue
Where the liquidity trades now: "uniswap-v2", or "crux-batch-pool" during a launch's anti-sniper window (one 60-second batch at one price; the pair is empty and locked until the liquidity migrates).
batchOnlyUntil
Unix seconds the anti-sniper window ends, while it's on; otherwise null.
priceUsd
Mid price from the live reserves, in test USDC per whole token.
reserves
base (tokens) and quote (test USDC), as decimal strings.
liquidityUsd · marketCapUsd
2 × quote reserve; price × total supply.
antiSniperSeconds
The launch's batch-only window after graduation: 0 when the creator turned anti-sniper off (and for launches before V5).
creatorVestingDays
30, or 0 for an instant unlock.
urls
Terminal page, Basescan pair and token, and this pair's trades and candles.
curl https://cruxprotocol.xyz/api/pairs?pair=0xB345b312298ab90bf4b854982D20636EfDfe092D

{ "chainId": 84532, "network": "base-sepolia", "testnet": true,
  "pair": {
    "id": "0xB345b312298ab90bf4b854982D20636EfDfe092D", "dex": "uniswap-v2",
    "baseToken": { "address": "0x5182…B106", "symbol": "V6C", "decimals": 18 },
    "quoteToken": { "address": "0x036C…CF7e", "symbol": "USDC", "decimals": 6 },
    "venue": "uniswap-v2", "batchOnlyUntil": null,
    "priceUsd": 2.56e-9, "liquidityUsd": 1.24, "antiSniperSeconds": 60,
    "creatorVestingDays": 30, "lpBurned": true, … } }

3. Trades

GET/api/trades?pair=0x…· cached 10 s

A market's trades, newest first: Uniswap V2 swaps, and fills from the anti-sniper batch pool at their batch's uniform price.

pair
Required. The market's pair address.
limit
Trades per page: default 100, at most 500.
before
A block number: only trades in earlier blocks. Each response's next link pages back with it.
side
"buy" (USDC in, tokens out of the pool) or "sell".
priceUsd
This fill's price in test USDC per token, the 0.3% pool fee included.
baseAmount · quoteAmount
Tokens and test USDC traded, as decimal strings.
venue · batch
"uniswap-v2", or "batch-pool" with the batch it cleared in.
viaCruxSolver
True when the Crux solver traded it to fill a user's intent (the solver then delivers to the user).
time
Unix seconds of the trade's block.
curl "https://cruxprotocol.xyz/api/trades?pair=0xB345b312298ab90bf4b854982D20636EfDfe092D&limit=2"

{ "truncated": false, "next": null,
  "trades": [
    { "time": 1792833535, "side": "buy", "priceUsd": 2.49e-9,
      "baseAmount": "8020987.94…", "quoteAmount": "0.019939",
      "venue": "uniswap-v2", "viaCruxSolver": true, "txHash": "0x819b…", … },
    { "time": 1792826788, "side": "buy", "priceUsd": 2.01e-9,
      "baseAmount": "49874937.46…", "quoteAmount": "0.1",
      "venue": "batch-pool", "batch": 0, "viaCruxSolver": false, … } ] }

4. Candles

GET/api/candles?pair=0x…&interval=5m· cached 15 s

OHLCV candles, oldest first, built from the trades as the terminal's chart builds them: each candle opens at the previous close, and the first at the launch's auction clearing price. Quiet intervals have no candle.

pair
Required.
interval
1m, 5m (default), 15m, 1h, 4h or 1d.
limit
The most recent N candles: default 300, at most 1000.
curl "https://cruxprotocol.xyz/api/candles?pair=0xB345b312298ab90bf4b854982D20636EfDfe092D&interval=1h"

{ "interval": "1h", "intervalSeconds": 3600, "truncated": false,
  "candles": [ { "time": 1792825200, "open": 1.67e-9, "high": 2.01e-9,
                 "low": 1.67e-9, "close": 2.01e-9, "volumeUsd": 0.1, "trades": 1 }, … ] }

5. Launches & token list

GET/api/launches· cached 60 s

Every launch, including ones still in their auction, with its phase (?phase=graduated, open, scheduled, closed or cancelled), raise, clearing price, creator vesting and anti-sniper window.

GET/tokenlist.json· cached 60 s

Graduated launch tokens in the standard Uniswap token-list format, for wallets and swap interfaces.

6. Data notes

  • Everything is on Base Sepolia testnet: test tokens with no value, priced in test USDC.
  • Trades and candles cover at most the last three days of a market; truncated is true when older trades exist but aren't included.
  • Pairs report a mid price from reserves; trades report execution prices (fee included), so the two differ slightly.
  • Responses are cached at the edge for the times shown; poll no faster than that.

Launch a token

Home chain: Base Sepolia (testnet). The token, its auction and its pool all live there.

$

Launch from a Crux account: no gas, nothing needed on Base, and your creator earnings land in the account.

liquidity locked forever · you earn 0.7% of the raise in fees, plus your share, unlocked over 30 days

What happens next

  1. Opens soon

    Buy now to get in at the start

  2. Fair opening

    One minute, one price for everyone

  3. Live

    Buy and sell any time

You'll be asked to connect a wallet first.

Connect a wallet

One balance across every chain you hold.

Crux reads your test USDC on Base, Arbitrum, Ethereum, BNB Chain and Solana (testnets) to show your buying power. Robinhood Chain: Mainnet ready. Nothing is signed until you confirm an order.

Connect Solana

Pay for Base trades with USDC on Solana devnet, and see your Solana balances.