{"openapi":"3.1.0","info":{"title":"Moa API","version":"1.0.0","description":"Every token, trade and wallet Moa tracks on GIWA Sepolia, and the best swap across all venues. No key needed."},"servers":[{"url":"https://0.0.0.0:8080/api/v1"}],"paths":{"/tokens":{"get":{"summary":"List tokens","description":"Every token Moa tracks on GIWA Sepolia, with price, market cap, change and volume.","parameters":[{"name":"sort","in":"query","required":false,"description":"Ordering. Default volume.","schema":{"type":"string","enum":["volume","trending","gainers","mcap","new","trades"]}},{"name":"window","in":"query","required":false,"description":"Period for volume and change sorts. Default 24h.","schema":{"type":"string","enum":["1h","6h","24h"]}},{"name":"venue","in":"query","required":false,"description":"Only tokens from one venue (an id from /venues).","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"Search by name, ticker or exact address.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"1 to 100. Default 50.","schema":{"type":"string"}},{"name":"offset","in":"query","required":false,"description":"Use nextOffset from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"4XX":{"description":"{ error: { code, message } }"}}}},"/tokens/{address}":{"get":{"summary":"Get a token","description":"One token: everything in the list, plus its creator, holder count and the pools it trades in.","parameters":[{"name":"address","in":"path","required":true,"description":"Contract or wallet address (0x…).","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"4XX":{"description":"{ error: { code, message } }"}}}},"/tokens/{address}/candles":{"get":{"summary":"Price candles","description":"OHLC candles priced in ETH, with volume. Up to 600 candles, oldest first.","parameters":[{"name":"address","in":"path","required":true,"description":"Contract or wallet address (0x…).","schema":{"type":"string"}},{"name":"interval","in":"query","required":false,"description":"Candle size. Default 15m.","schema":{"type":"string","enum":["1m","5m","15m","1h","4h","1d"]}}],"responses":{"200":{"description":"OK"},"4XX":{"description":"{ error: { code, message } }"}}}},"/tokens/{address}/trades":{"get":{"summary":"Recent trades","description":"The latest trades of a token on every venue, newest first.","parameters":[{"name":"address","in":"path","required":true,"description":"Contract or wallet address (0x…).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"1 to 100. Default 50.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"4XX":{"description":"{ error: { code, message } }"}}}},"/tokens/{address}/holders":{"get":{"summary":"Top holders","description":"The largest holders with their share of the supply.","parameters":[{"name":"address","in":"path","required":true,"description":"Contract or wallet address (0x…).","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"4XX":{"description":"{ error: { code, message } }"}}}},"/wallets/{address}":{"get":{"summary":"Wallet portfolio","description":"Open positions and trading totals of a wallet, estimated from the trades Moa has indexed.","parameters":[{"name":"address","in":"path","required":true,"description":"Contract or wallet address (0x…).","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"4XX":{"description":"{ error: { code, message } }"}}}},"/wallets/{address}/trades":{"get":{"summary":"Wallet trades","description":"The latest 100 trades of a wallet, newest first.","parameters":[{"name":"address","in":"path","required":true,"description":"Contract or wallet address (0x…).","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"4XX":{"description":"{ error: { code, message } }"}}}},"/quote":{"get":{"summary":"Quote and build a swap","description":"The best price for a buy or sell across every venue. With recipient, also returns a transaction that wallet can sign and send as is.","parameters":[{"name":"token","in":"query","required":true,"description":"Token to buy or sell.","schema":{"type":"string"}},{"name":"side","in":"query","required":true,"description":"buy spends ETH, sell spends the token.","schema":{"type":"string","enum":["buy","sell"]}},{"name":"amount","in":"query","required":true,"description":"Amount in: wei of ETH for a buy, smallest token units for a sell.","schema":{"type":"string"}},{"name":"recipient","in":"query","required":false,"description":"Wallet that will send the transaction. Required for a sell.","schema":{"type":"string"}},{"name":"slippageBps","in":"query","required":false,"description":"10 to 5000. Default 100 (1%).","schema":{"type":"string"}},{"name":"ref","in":"query","required":false,"description":"Your Moa referral code, to earn on the trade.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"4XX":{"description":"{ error: { code, message } }"}}}},"/venues":{"get":{"summary":"List venues","description":"The launchpads and exchanges Moa reads, with the id used by the tokens filter.","parameters":[],"responses":{"200":{"description":"OK"},"4XX":{"description":"{ error: { code, message } }"}}}}}}