Cambrian V2 - Provider Summary API

By Cambrian Network evm

GET /api/v1/evm/aero/v2/provider-summary

Provider Summary

Provides a comprehensive overview of a liquidity provider's activity on Aerodrome V2 DEX. Returns detailed analytics including portfolio diversity, position distribution, and historical performance metrics for a specific wallet address.

Business Value

  • Portfolio Analysis: Understand concentration risk and token exposure across multiple liquidity pools
  • Performance Tracking: Monitor historical fees earned and APR performance over 7-day and 30-day periods
  • Position Management: Analyze position sizes and distribution to optimize capital allocation
  • Risk Assessment: Calculate HHI concentration index to measure portfolio diversification
  • Strategic Planning: Identify top performing pools and fee opportunities for future positions

Endpoint Details

URL:

https://opabinia.cambrian.network/api/v1/evm/aero/v2/provider-summary

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

Query Parameters

Parameter Type Required Default Description
wallet_address string true - Liquidity provider address with 0x prefix

Response Field Descriptions

Response Field Type Description
providerId String The wallet address of the liquidity provider
totalValueLockedUSD Float64 Total USD value currently locked in liquidity positions
activePositionCount UInt64 Number of currently active liquidity positions
totalFeesEarned7d Float64 Total fees earned in USD over the last 7 days
averageAPR7dWeighted Float64 Weighted average APR over the last 7 days
firstPositionTimestamp DateTime Timestamp of the provider's first liquidity position
lastActiveTimestamp DateTime Timestamp of the provider's most recent activity
poolCount UInt64 Total number of unique pools the provider has positions in
topPoolsData Array Array of top pools with pool address, token names, TVL and percentage
tokenExposure Array Array of token exposures with address, symbol, amounts and percentages
averagePositionSizeUSD Float64 Average size of positions in USD
medianPositionSizeUSD Float64 Median size of positions in USD
minPositionSizeUSD Float64 Smallest position size in USD
maxPositionSizeUSD Float64 Largest position size in USD
hhiConcentrationIndex Float64 Herfindahl-Hirschman Index measuring portfolio concentration
totalFeesEarned30d Float64 Total fees earned in USD over the last 30 days
averageAPR30dWeighted Float64 Weighted average APR over the last 30 days
feeAprByPool30d Array Array of fee and APR breakdown by pool over 30 days

Examples

1. Provider Portfolio Analysis

Get comprehensive analytics for a liquidity provider's portfolio across all Aerodrome V2 positions.

curl -X GET "https://opabinia.cambrian.network/api/v1/evm/aero/v2/provider-summary?wallet_address=0x8115afd8dffce5579381ad27524b6feeae917bef" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json"

Response:

{
  "columns": [
    {
      "name": "providerId",
      "type": "String"
    },
    {
      "name": "totalValueLockedUSD",
      "type": "Float64"
    },
    {
      "name": "activePositionCount",
      "type": "UInt64"
    },
    {
      "name": "totalFeesEarned7d",
      "type": "Float64"
    },
    {
      "name": "averageAPR7dWeighted",
      "type": "Float64"
    },
    {
      "name": "firstPositionTimestamp",
      "type": "Nullable(DateTime('UTC'))"
    },
    {
      "name": "lastActiveTimestamp",
      "type": "Nullable(DateTime('UTC'))"
    },
    {
      "name": "poolCount",
      "type": "UInt64"
    },
    {
      "name": "topPoolsData",
      "type": "Array(Tuple(FixedString(42),String,String,Float64,Float64))"
    },
    {
      "name": "tokenExposure",
      "type": "Array(Tuple(FixedString(42),String,Float64,Float64,Float64))"
    },
    {
      "name": "averagePositionSizeUSD",
      "type": "Float64"
    },
    {
      "name": "medianPositionSizeUSD",
      "type": "Float64"
    },
    {
      "name": "minPositionSizeUSD",
      "type": "Float64"
    },
    {
      "name": "maxPositionSizeUSD",
      "type": "Float64"
    },
    {
      "name": "hhiConcentrationIndex",
      "type": "Float64"
    },
    {
      "name": "totalFeesEarned30d",
      "type": "Float64"
    },
    {
      "name": "averageAPR30dWeighted",
      "type": "Float64"
    },
    {
      "name": "feeAprByPool30d",
      "type": "Array(Tuple(FixedString(42),String,String,Float64,Float64))"
    }
  ],
  "data": [
    [
      "0x8115afd8dffce5579381ad27524b6feeae917bef",
      7.854955398502442,
      3,
      0.009708973795141934,
      6.445022382945004,
      "2025-04-29T09:25:07+00:00",
      "2025-05-06T23:09:49+00:00",
      3,
      [
        [
          "0xcdac0d6c6c59727a65f871236188350531885c43",
          "WETH",
          "USDC",
          5.154243972270719,
          65.6177369670792
        ],
        [
          "0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d",
          "USDC",
          "AERO",
          2.7007114262317233,
          34.38226303292082
        ],
        [
          "0x55b27dbddf95a55bd46d0284348dc8231cd72a2c",
          "",
          "",
          0.0,
          0.0
        ]
      ],
      [
        [
          "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
          "USDC",
          3.9394537517070516,
          3.9394537517070516,
          50.1524649326222
        ],
        [
          "0x4200000000000000000000000000000000000006",
          "WETH",
          0.0008497869397204132,
          2.5772689537760294,
          32.810739501683095
        ],
        [
          "0x940181a94a35a4569e4529a3cdfb74e38fd98631",
          "AERO",
          2.8533573676888873,
          1.3382326930193615,
          17.036795565694714
        ],
        [
          "0x04e4dfbdbd7c9416a96e144ac51d95d78f83fb19",
          "",
          1.6109845441127068E+22,
          0.0,
          0.0
        ],
        [
          "0xd88707f590528b4a1e316eeebe7bb6ac8b0ea461",
          "",
          3.6274473281608105E+21,
          0.0,
          0.0
        ]
      ],
      2.6183184661674805,
      2.7007114262317233,
      0.0,
      5.154243972270719,
      0.5487827415945744,
      0.041989907799619225,
      6.503884307980072,
      [
        [
          "0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d",
          "USDC",
          "AERO",
          0.02477830033782618,
          11.16258915516651
        ],
        [
          "0xcdac0d6c6c59727a65f871236188350531885c43",
          "WETH",
          "USDC",
          0.01721160746179305,
          4.062824575471025
        ],
        [
          "0x55b27dbddf95a55bd46d0284348dc8231cd72a2c",
          "",
          "",
          0.0,
          0.0
        ]
      ]
    ]
  ],
  "rows": 1
}

The response shows a provider with $7.85 TVL across 3 active positions in 3 pools, earning $0.0097 in fees over the last 7 days with a 6.44% weighted APR. The portfolio is moderately concentrated (HHI: 0.55) with primary exposure to WETH/USDC (65.6%) and USDC/AERO (34.4%) pools.

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://deep42.cambrian.network/api/v1/evm/aero/v2/provider-summary"
);
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://deep42.cambrian.network/api/v1/evm/aero/v2/provider-summary")
        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–5 automatically.

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


Related Endpoints

  • /api/v1/evm/aero/v2/fee-metrics - Shows daily historical data to understand the fees over time on a pool
  • /api/v1/evm/aero/v2/pool - Get information for a specific Aerodorme V2 pool address
  • /api/v1/evm/aero/v2/pool-volume - Helpful for aggregate statistics over a particular timeframe, with hourly data to understand distribution of recent activity
  • /api/v1/evm/aero/v2/pools - Returns a paginated list of liquidity pools with summary metrics