REST API
Envelope, endpoint catalog, filters, pagination, units, and error behavior.
Response envelope
Successful JSON endpoints return:
{
"ok": true,
"data": {},
"meta": {
"chainId": 11155111,
"latestBlock": 0,
"indexedToBlock": 0,
"stale": false,
"generatedAt": "2026-01-01T00:00:00.000Z"
}
}Clients must validate meta.chainId. Contract-unit amounts are decimal strings so JavaScript does not lose integer precision. Timestamps are Unix seconds unless a field explicitly says otherwise.
Successful JSON endpoints contain ok, data, and meta. Errors use ok: false and a human-readable error; some failures also include meta, detail in explicit development mode, or retryAfterSeconds for limits.
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | /api/health | Index, source, storage, WebSocket, and public RPC-usage health |
| GET | /api/deployer/schema | Chain identity, factories, createLaunch ABI, limits, policies |
| GET | /api/deploy/schema | Back-compatible alias of deployer schema |
| GET | /api/launches | Canonical launch list with hydrated detail |
| GET | /api/launches/:launch | One launch, rounds, config, tokenomics, pool, lockers, phase |
| GET | /api/launches/:launch/metadata | Parsed on-chain metadata or null |
| GET | /api/launches/:launch/phase | Time-derived current phase snapshot |
| GET | /api/launches/:launch/activity | Filtered, cursor-paginated protocol events |
| GET | /api/launches/:launch/lockers | Locker summaries for one launch |
| GET | /api/launches/:launch/lockers/:locker | One launch-scoped locker with balances/events |
| GET | /api/assets/logos/:token.svg | Sanitized on-chain SVG materialization |
| GET | /api/prices/eth-usd | Optional display-only Chainlink mainnet reference |
| GET | /api/stream | SSE notifications, optionally launch-filtered |
| WS | /api/ws | Application WebSocket notifications |
Activity parameters
/activity accepts:
limit: 1–500, default 100;cursor: the previous page'snextCursorevent ID;locker: one valid locker address;includeoreventTypes: comma-separated event names to include; andexcludeorexcludeTypes: comma-separated event names to omit.
Activity returns { items, nextCursor }. Mirrored launch/locker events are deduplicated. Ingestion-excluded noisy events cannot be recovered through an API filter because they were never stored.
Logos
The logo route accepts an exact 20-byte token address and serves only SVG sourced from the launch metadata data URI. The backend rejects oversized files and SVG containing scripts, JavaScript URLs, or inline event handlers. Responses carry a restrictive SVG content security policy.
Price reference
When enabled, the price response contains a decimal price, integer priceScaled, decimals, Chainlink round/timestamps, observed time, freshness flag, source, reference network, and feed address. It is display-only and never enters contract math or a transaction.
A disabled collector returns 503. Frontends should hide USD when the endpoint fails, is malformed, or reports stale data; ETH remains canonical.