Reference

API

Read-only JSON endpoints with short shared caches. Nothing here signs or relays transactions.

Endpoints

  • GET /api/economics: Pons launch fee, launch switch, maximum creator tax, launch configuration, fee policy and economics fingerprint, plus fetchedAt and stale.
  • GET /api/assets?q=: asset search over the GeckoTerminal index for Robinhood; an address query is answered from the chain instead.
  • GET /api/projects?cursor=&creator=&q=: coins from the Link factory, newest first, 24 per page with a nextCursor.
  • GET /api/stats: coins launched, ETH routed to liquidity and $LINK burned (only when the factory is deployed).
curl http://localhost:3000/api/economics
curl "http://localhost:3000/api/assets?q=usdg"
curl "http://localhost:3000/api/projects?creator=0x..."

Image upload

POST /api/upload takes multipart form data with a file field: PNG, JPEG or WebP, under 4 MB, validated by magic bytes. Files are stored as logos/<sha256>.<ext>. Without blob storage configured the endpoint replies 503 and the form falls back to an https URL field.

Caching behaviour

Economics, the directory and stats refresh at most once a minute; asset search every five minutes. If an upstream fails, the last good snapshot is returned with stale: true for up to 5 minutes (30 for assets); after that the endpoint errors rather than pretending the answer is empty. Simultaneous refreshes share a single upstream request, and nothing refreshes unless someone asks.

Limits and error codes

Queries are capped at 64 characters. Clients are rate limited; on 429 wait for the Retry-After interval. 503 means an upstream service or configuration is missing. 422 from asset search means the address is not an ERC-20 contract.

Wallets

Wallet connection is handled in the browser by wagmi: injected wallets, Coinbase Wallet and, if a project ID is set, WalletConnect. There are no server sessions.