Some functionality will be degraded until the official mainnet launch on the 9th.
Documentation
Reference

API

The Tartarus API serves everything the site shows: indexed tokens, trades, candles, quotes and balances. Base URL:

https://api.tartarus.world/v1

Responses are JSON. Amounts in whole units are JSON numbers, for display. Fields ending in Raw are strings in raw units, for transactions. See Decimals.

Protocol#

EndpointReturns
GET /protocolAddresses, launch configs with floor prices, approved quotes, fee policy, launch-and-buy and holder-rewards wiring, wsOrigin
GET /bridgeThe HyperEVM Inbox and Outbox, whether deposits are paused, the estimated withdrawal wait
GET /bridge/withdrawals/:addressHYPE withdrawn to an address, newest first, at most 50: status is pending, ready or claimed, with the Outbox.executeTransaction arguments in claim when ready
GET /statusIndexer and keeper health
GET /healthLiveness
GET /platformThe platform token, buybacks, burns and protocol analytics

Read addresses and the fee policy from GET /protocol rather than hard-coding them.

Tokens#

EndpointReturns
GET /tokensA page of tokens. Filter with tab, category, q, mcMin, mcMax, volMin, volMax; page with page, perPage
GET /tokens/boundsFilter ranges for the board
GET /tokens/searchSearch by name, symbol or address
GET /tokens/:idOne token, including fees, hypercoreStatus, bridgeWallet, creatorFeeRecipientPending
GET /tokens/:id/quoteA trade quote. side, amount in whole units, slippageBps (default 100, at most 5000)
GET /tokens/:id/tradesRecent trades
GET /tokens/:id/candlesOHLC candles
GET /tokens/:id/holdersHolders

:id is the token address. Quotes are limited to 20 per second per IP. Details are in Trading.

Users#

EndpointReturns
GET /users/:addressPositions and claimable: escrow balances, unswept fees, holder-reward proofs
GET /me, PUT /meThe signed-in profile. Session required

Launching#

EndpointReturns
GET /launch/symbol?symbol=available, and reason: ok, invalid, reserved or taken
POST /launch/predictThe token address, pool key, floor price, expectedEconomics and fee recipient for a launch. Session required
POST /launch-draftsStores a draft launch. Session required
PUT /tokens/:id/metaSets off-chain metadata such as the category. Session required
POST /uploads/sign, POST /uploads/finalizeUpload a token image. Session required

POST /launch/predict answers 409 with a reason when a launch cannot go ahead: taken, reserved, rewardsNotWired or saltUsed. Pick a new salt on saltUsed.

Sessions#

Sessions use Sign-In with Ethereum. POST /auth/nonce issues a nonce, and POST /auth/verify exchanges the signed message for a session token. Send that token as authorization: Bearer <token>.

JSON-RPC#

POST /rpc is the Elysium RPC proxy. See Elysium network.

WebSocket#

Live updates come from wss://ws.tartarus.world. Use wsOrigin from GET /protocol rather than hard-coding it. Server messages share one envelope:

$ json
{ "v": 1, "type": "trade", "room": "token:0x…", "data": {}, "ts": 1793921370041 }

ts is in milliseconds. HTTP responses report now in seconds.

Subscribe to up to 32 rooms in one message:

$ ts
const ws = new WebSocket(protocol.wsOrigin);
ws.onopen = () => ws.send(JSON.stringify({ type: "subscribe", rooms: ["board", `token:${address}`] }));
ws.onmessage = (e) => handle(JSON.parse(e.data));
RoomCarries
boardNew launches and token updates, for lists
token:<address>Trades, candles and updates for one token. Lowercase the address
headThe latest indexed block

A join starts with a snapshot message, followed by deltas. Other message types are:

TypeWhat to do
resyncThe feed restarted. Discard state and refetch over HTTP
closingThe server is draining. Reconnect after reconnectAfterMs
errorA bad room or request. data has code and message
pongThe answer to { "type": "ping" }

Frames carry the same shapes as the HTTP endpoints, so one parser handles both.

POLLINGElysium · 99901 · Mainnet
--:--:-- UTC