Skip to main content
Three commands, in order. Migrations create the schema, seeding populates the catalogue, then the server runs.
1

Create the schema

Safe to re-run, and a no-op when already up to date. Migrations live in internal/storage/postgres/migrations and are embedded into the binary, so migrate needs only POSTGRES_DSN: no source tree and no separate migration tool on the target machine.
2

Seed the catalogue

Populates blockchains, tokens, DEXes and pools. This step makes live RPC calls across every configured chain, so it takes a while and logs non-fatal warnings for endpoints that don’t respond.
Run seed against a clean database. Only the blockchains insert upserts; the other tables can produce duplicate-key errors on a re-run.
3

Start the API server

Listens on PORT. Confirm it’s up by hitting the catalogue:

Building binaries

Repository layout

Domain models (Chain, Token, Dex, Pool, Quote) live in the root uatu package.

The API spec

Swagger UI is served at /swagger/ and the raw spec at /swagger/doc.json. Regenerate the spec after changing any handler annotation:
The spec in swagger/ is generated and committed, so don’t hand-edit it. The API reference on this site is built from that same spec.