Developers
Build on Aethra
A typed TypeScript SDK with ABIs and addresses for every network, and a public read-only REST API served by the indexer.
SDK · addresses and ABIs
@aethra/sdk ships chain definitions, proxy addresses per network, full ABIs generated from the contracts, and price and route helpers.
import { createPublicClient, http } from "viem";
import { chainsByNetwork, getDeployment, aethraRouterAbi } from "@aethra/sdk";
const chain = chainsByNetwork.testnet;
const d = getDeployment("testnet");
const client = createPublicClient({ chain, transport: http() });SDK · quote a route
Quotes run through router.quote over eth_call. Each hop names a venue (1 v4, 2 DLMM, 3 DAMM), a pool and venue-specific data.
const { result: [amountOut] } = await client.simulateContract({
address: d.router!,
abi: aethraRouterAbi,
functionName: "quote",
args: [hops, 10n ** 18n],
});REST API
Base URL https://zqbnyshzgxhkfxoyrogq.supabase.co/functions/v1/api. Responses are JSON shaped as { data }. No key needed.
GET /healthIndexer status and head block per chain
GET /chains/46630/dashboardStats plus trending, most traded, highest volume and fresh pool lists
GET /chains/46630/poolsEvery pool across v4, DLMM and DAMM
GET /chains/46630/pools/{poolId}One pool with price series and oracle state
GET /chains/46630/events?type=&pool=&limit=Event feed (swap, liquidity, order)
GET /chains/46630/tokensKnown tokens with kind (canonical, stock, test)
GET /chains/46630/analytics?range=7dTVL, volume and fee series plus venue breakdown
GET /chains/46630/positions/{owner}An account's v4, DLMM and DAMM positions
GET /chains/46630/orders/{owner}An account's DLMM limit orders
curl https://zqbnyshzgxhkfxoyrogq.supabase.co/functions/v1/api/chains/46630/dashboard