Cambrian List DEXes API

By Cambrian Network base

GET /api/v1/evm/dexes

List DEXes

Overview

Returns the list of decentralized exchanges (DEXes) indexed on supported EVM-compatible chains. Each entry identifies a DEX by its factory/router address, human-readable name, and the pool algorithm it implements (e.g. Uniswap V3-style concentrated liquidity or Uniswap V2-style constant product).

Business Value

  • DEX Discovery: Easily discover all DEXes operating across different EVM chains in one request
  • Integration Planning: Get comprehensive DEX information needed for multi-chain DeFi integrations
  • Algorithm Analysis: Understand the distribution of different AMM algorithms (Uniswap V3, Algebra, etc.) across chains
  • Chain Coverage: See which DEXes operate on specific chains like Base (chainId: 8453)
  • Contract Verification: Access verified DEX contract addresses for secure integrations

Endpoint Details

URL:

https://api.cambrian.org/evm/dexes

Method: GET
Authentication: Required via X-API-Key header

Query Parameters

Parameter Type Required Default Description
chain_id integer No 8453 EVM chain ID. Allowed values: 1, 8453, 42161, 4663.

Response Field Descriptions

Response Field Type Description
chainId UInt16 EVM chain ID the DEX is deployed on
address FixedString(42) Contract address identifying the DEX (factory/router)
name String Human-readable DEX name
algorithm LowCardinality(FixedString(10)) Pool algorithm implemented by the DEX (e.g. univ3, unina, aero)

Examples

1. List DEXes on Base

Retrieves all DEXes indexed for the default chain (Base, chain_id=8453).

curl -X GET "https://api.cambrian.org/evm/dexes" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response:

[
  {
    "columns": [
      {
        "name": "chainId",
        "type": "UInt16"
      },
      {
        "name": "address",
        "type": "FixedString(42)"
      },
      {
        "name": "name",
        "type": "String"
      },
      {
        "name": "algorithm",
        "type": "LowCardinality(FixedString(10))"
      }
    ],
    "data": [
      [
        8453,
        "0x7b72c4002ea7c276dd717b96b20f4956c5c904e7",
        "9mm",
        "unina"
      ],
      [
        8453,
        "0x420dd381b31aef6683db6b902084cb0ffece40da",
        "Aerodrome",
        "aero"
      ],
      [
        8453,
        "0x5e7bb104d84c7cb9b682aac2f3d509f5f406809a",
        "Aerodrome ICL",
        "univ3"
      ],
      [
        8453,
        "0x9592cd9b267748cbfbde90ac9f7df3c437a6d51b",
        "Aerodrome ICL",
        "univ3"
      ],
      [
        8453,
        "0xade65c38cd4849adba595a4323a8c7ddfe89716a",
        "Aerodrome ICL",
        "univ3"
      ],
      [
        8453,
        "0xf8f2eb4940cfe7d13603dddd87f123820fc061ef",
        "Aerodrome ICL",
        "univ3"
      ],
      [
        8453,
        "0x0fd83557b2be93617c9c1c1b6fd549401c74558c",
        "AlienBase",
        "univ3"
      ],
      [
        8453,
        "0xfaa5f5f4a3c6ed4446f7b6014322c954d218690c",
        "Bagelswap",
        "unina"
      ],
      [
        8453,
        "0x38015d05f4fec8afe15d7cc0386a126574e8077b",
        "BaseSwap",
        "unina"
      ],
      [
        8453,
        "0xdc323d16c451819890805737997f4ede96b95e3e",
        "Basex",
        "unina"
      ]
    ],
    "rows": 40
  }
]

Note: Each response is limited to 10 items, even though 40 total matching rows (rows) exist for Base.

x402 Payment Option

This endpoint supports pay-per-use access via the x402 payment protocol (v2): pay $0.05 USDC per request using blockchain micropayments. No API key required.

Quick Start (TypeScript)

npm install @x402/fetch @x402/evm viem
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const signer = privateKeyToAccount(process.env.EVM_PRIVATE_KEY as `0x${string}`);
const client = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));

const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const response = await fetchWithPayment(
  "https://x402.cambrian.org/evm/dexes"
);
const data = await response.json();

Quick Start (Python)

pip install "x402[httpx]"
import asyncio, os
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

async def main():
    client = x402Client()
    account = Account.from_key(os.getenv("EVM_PRIVATE_KEY"))
    register_exact_evm_client(client, EthAccountSigner(account))

    async with x402HttpxClient(client) as http:
        response = await http.get("https://x402.cambrian.org/evm/dexes")
        print(response.json())

asyncio.run(main())

Payment Flow

  1. Send a normal request to the endpoint (no API key needed)
  2. Server returns 402 Payment Required with payment details
  3. The x402 SDK automatically signs a payment authorization with your wallet
  4. The SDK resubmits the request with the signed payment
  5. Server verifies payment and returns the API response

The x402 SDK handles steps 2 through 5 automatically.

Network: Base (chain ID 8453) | Currency: USDC | Price: $0.05 per request