zeekayandHanzo Dev 2b4d82066f Serve the swap form's token list from the indexer that has it
exchange-api answered this, and exchange-api is a forwarder: four deployments,
one per brand per network, four image tags of a small TypeScript file whose
answer comes from the indexer this binary already is. A second copy of a list is
a second thing that can be wrong about it, and one was — the Lux copy served a
13.27B LUX supply for two days after the indexer had been corrected to the real
two trillion.

The response shape is exchange-api's, unchanged, because the client reads it
today and moving a service is not an occasion to break a client.

The chain identifies itself. eth_chainId is asked once at boot rather than
configured, because a flag or an env keyed by deployment is another copy of a
fact the node already holds — and two copies of "which chain is this" is exactly
how zoo.exchange came to serve Lux's tokens under a ZOO label. If the node will
not say, the route is not registered at all: the client keeps the endpoint it
has rather than being handed a list labelled with a guess.

Quote and the portfolio API are not here. Quote needs routing over pools and is
real work; the portfolio routes the client calls are answered by nothing at all
today — exchange-api returns 404 for every one of them — so that is a gap to
close, not a service to move.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-13 12:49:00 -07:00
2026-08-11 16:56:24 -07:00
2026-08-11 16:56:24 -07:00
S
Description
Single-binary GraphQL query layer for Lux blockchain — replaces The Graph's Graph Node
27 MiB
Languages
Go 99.9%
Dockerfile 0.1%