Metadata
The registry the rest of the API validates against. Read it once at startup to populate a chain or protocol picker, rather than hard-coding a list that will disagree with us the day we enable something.
Both routes are unauthenticated and unmetered. They take no KC-APIKey header, and the pricing table lists them at free, unmetered — they are an in-process registry read, with no database and no fan-out behind them.
GET /v1/chains — free, unmetered
curl -s "https://api.tickwise.xyz/v1/chains"Returns a bare array — no data wrapper — of every registered chain, each with:
| Field | Meaning |
|---|---|
| chainId | The number. This is the value every other endpoint takes — as ?chainId= on a list, and as the first path segment on a detail or chart route. |
| slug, name, shortName | Display identifiers. None of them is accepted as a query parameter. |
| explorerUrl | Block-explorer base, for linking an address or transaction. |
| nativeToken, wrappedNativeToken | Symbols and addresses, for denominating gas and native-token amounts. |
| protocols | The field that matters. Which protocols are enabled on that chain in this deployment. A chain listed here with an empty array is registered but serves nothing — a request against it is a 400. |
That last row is the whole reason to call this endpoint rather than hard-code [1, 43114]. Registered and servable are different states, and only protocols distinguishes them.
GET /v1/protocols — free, unmetered
curl -s "https://api.tickwise.xyz/v1/protocols"A bare array of the protocols that are enabled somewhere, each with key (the value to send as ?protocol=), displayName, version, family, chains — the chain ids it is enabled on — and enabled.
A protocol that is configured but switched off does not appear at all, so the list is “what you may ask for” rather than “what exists in our config”. Today that is Uniswap v4 only.
Rendered coverage
The coverage page is this data, formatted — it is generated from GET /v1/chains at request time rather than written by hand, so a page and a request cannot disagree. Status adds live indexing lag per chain, which the registry does not carry.