{"name":"Aether API","version":"0.5.2","mode":"read-only","routes":[{"method":"GET","path":"/api/v1/integrations","description":"Latest sanitized read-only RPC observations; never live approval"},{"method":"POST","path":"/api/v1/admin/integrations/check","description":"Run configured read-only network/mint/code checks; operator only"},{"method":"GET","path":"/api/v1/readiness","description":"Actual launch blockers; deployment alone is insufficient"},{"method":"GET","path":"/api/v1/launches/{id}/markets","description":"Sandbox pool depth, fee budgets and liquidity batches"},{"method":"POST","path":"/api/v1/routes/quote","description":"Expiring sandbox pool quote; unsupported conversions fail closed"},{"method":"GET","path":"/api/v1/me/product?launchId=...","description":"Own linked-chain token/quote balances and trades"},{"method":"POST","path":"/api/v1/me/evm/challenge","description":"Session-bound EIP-191 EVM wallet link challenge"},{"method":"POST","path":"/api/v1/me/evm/verify","description":"Verify EOA ownership before reverse sandbox transfers"},{"method":"POST","path":"/api/v1/me/trades","description":"Execute an unused sandbox quote with minimum output"},{"method":"POST","path":"/api/v1/me/launches/{id}/test-credit","description":"Once-per-wallet/pool sandbox quote credit"},{"method":"POST","path":"/api/v1/me/launches/{id}/prepare-markets","description":"Owner prepares pool models for a legacy sandbox launch"},{"method":"POST","path":"/api/v1/me/launches/{id}/batches","description":"Reserve unspent fee allocation; owner only"},{"method":"POST","path":"/api/v1/me/batches/{id}/advance","description":"Advance sandbox capital delivery and swap-and-add placement"},{"method":"POST","path":"/api/v1/me/batches/{id}/cancel","description":"Release a reservation only before source commitment"},{"method":"GET","path":"/api/v1/overview","description":"Aggregate sandbox counts and funding totals separated by asset"},{"method":"POST","path":"/api/v1/me/launches/{id}/scenario","description":"Owner-only guided sandbox funding, activation and test allocation"},{"method":"GET","path":"/api/v1/me/transfers/{id}","description":"Own sandbox transfer status"},{"method":"POST","path":"/api/v1/me/transfers/{id}/cancel","description":"Cancel own requested transfer before source debit"},{"method":"POST","path":"/api/v1/auth/challenge","description":"Create a browser-bound Solana sign-in challenge"},{"method":"POST","path":"/api/v1/auth/verify","description":"Verify Ed25519 signature and set an HttpOnly session"},{"method":"GET","path":"/api/v1/auth/me","description":"Current wallet session"},{"method":"POST","path":"/api/v1/auth/logout","description":"Revoke current session; CSRF protected"},{"method":"GET","path":"/api/v1/me/workspace","description":"Signed-in wallet launches, balances and transfers"},{"method":"POST","path":"/api/v1/me/launches","description":"Create own sandbox launch; session and CSRF required"},{"method":"POST","path":"/api/v1/me/launches/{id}/transfers","description":"Bridge from own Solana sandbox balance; session and CSRF required"},{"method":"GET","path":"/healthz","description":"Database readiness"},{"method":"GET","path":"/api/v1/config","description":"Mode, fee policy and disabled live integrations"},{"method":"GET","path":"/api/v1/launches","description":"Up to 100 launch records"},{"method":"GET","path":"/api/v1/launches/{id}","description":"Launch details"},{"method":"GET","path":"/api/v1/launches/{id}/supply","description":"Sandbox supply reconciliation"},{"method":"POST","path":"/api/v1/fees/quote","description":"Stateless fee calculator; public"},{"method":"POST","path":"/api/v1/sandbox/launches","description":"Create sandbox launch; admin"},{"method":"POST","path":"/api/v1/sandbox/launches/{id}/fees","description":"Record simulated trade fee; admin"},{"method":"POST","path":"/api/v1/sandbox/launches/{id}/allocations","description":"Move sandbox curve inventory to a wallet; admin"},{"method":"POST","path":"/api/v1/sandbox/launches/{id}/activate","description":"Open sandbox HYPE market after funding; admin"},{"method":"POST","path":"/api/v1/sandbox/launches/{id}/transfers","description":"Request sandbox bridge transfer; admin"},{"method":"POST","path":"/api/v1/sandbox/transfers/{id}/advance","description":"Advance sandbox transfer one state; admin"},{"method":"GET","path":"/api/v1/admin/transfers/{id}","description":"Transfer record; admin"},{"method":"GET","path":"/api/v1/admin/launches/{id}/balances?chain=solana&address=...","description":"Sandbox wallet balance; admin"},{"method":"GET","path":"/api/v1/admin/audit/{id}","description":"Launch or transfer audit history; admin"}],"writeAuthentication":"Operator routes: Bearer ADMIN_API_KEY (server-to-server only). Wallet routes: HttpOnly session, exact Origin, X-CSRF-Token and Idempotency-Key.","idempotency":"Every sandbox mutation requires Idempotency-Key (8–120 safe characters). Reusing a key with a different body returns 409."}