LCX Liberty. American DeFi. Your keys. Your assets. Your control.
Chains, stats & usage
Which chains are live, how fresh each index is, and where your own quota stands.
Chains
/v1/chainsSupported chains and per-chain index health. Never counts against your quota.
routerDeployed is the field to check before you offer a user a swap button. It is true on every chain we currently support. Read it from here rather than keeping your own list, so a chain added later needs no change on your side, for the same reason as wrappedNative below.
Each chain also carries nativeSymbol and defaultPair, the pair a UI should open on, as complete token rows rather than addresses. That exists so a client needs no hardcoded token to render its first frame: ours used to ship a per-chain token array and dereference its first element, which crashes the page the moment the array is empty.
wrappedNative is the chain's wrapped-native ERC-20. Price that contract when you want the native currency's USD value, because the native token has no address of its own. Pass it to /v1/price without decimals, since it is always one of the chain's routing hubs and we resolve those for you. Take it from here rather than keeping a table of WETH addresses. A table is one new chain away from being wrong, and it goes wrong silently.
Stats
/v1/statsIndex size and engine throughput, read live rather than published as a claim. Unlike the three above, /v1/stats does count against your quota.
pools and tokens are totals across every chain we index, not per-chain figures. The endpoint takes no chain parameter, and one passed is ignored rather than honored. For a single chain's token universe, page GET /v1/tokens?chain=…. tokens counts what we hold display metadata for, which is a subset of what appears in some pool somewhere: a token reaches this number by trading against one of the chain's routing hubs.
The benchmark is two numbers because one would flatter us. A small trade on a deep pair is mostly a lookup. A 500 WETH order that splits across several pools is the work.
{
"pools": 459689,
"tokens": 450210,
"venues": 46,
"chains": 4,
"swapFeeBps": 0,
"benchmark": {
"smallTrade": { "quotesPerSecond": 588, "medianQuoteMs": 10, "p95QuoteMs": 10.5 },
"largeSplitTrade": { "quotesPerSecond": 330, "medianQuoteMs": 19, "p95QuoteMs": 19.7 },
"measuredAt": 1785571239,
"measuredOn": { "threads": 12, "poolsLoaded": 120253, "pair": "WETH/USDC on Ethereum" },
"note": "Measured by this process on a warm index, not a recorded figure. ..."
}
}Usage
/v1/usageYour plan, calls used and remaining, plus both halves of the rate limit. Never counts against your quota. For an anonymous caller the quota fields are null: an IP has no account, and that is a different thing from an account with nothing left.