Aerodrome V2 Guide
Aerodrome Finance is an Automated Market Maker (AMM) on base. It integrates a vote-escrow token model, protocol emissions, and a marketplace for bribes to deepen liquidity and reward participants. This guide provides use cases for leveraging the Cambrian API to access and analyze Aerodrome V2 data on the Base network. Whether you're assessing pool viability, modeling LP returns, or gathering comprehensive on-chain metrics for Aerodrome, this guide outlines a common workflow, demonstrating how to chain API requests to achieve these goals.
Authentication
All requests to the Cambrian API require an API key. You must include your key in the x-api-key
header of every request.
Example using cURL:
curl -H "x-api-key: YOUR_API_KEY" "https://opabinia.cambrian.org/api/v1/evm/chains"
Replace YOUR_API_KEY
with your actual API key. You can obtain an API key from the Cambrian platform dashboard.
The following sequence illustrates a typical approach for programmatic pool and provider analysis on Aerodrome V2:
-
Market Overview (
/list_pools
):
Begin by getting a snapshot of all available liquidity pools on Aerodrome. This endpoint returns a paginated list of pools with key metrics like TVL, volume, and recent APRs. ThepoolId
(pool address) obtained here is crucial for subsequent, more detailed queries. -
Pool Deep Dive (
/pool_summary
,/pool_volume
,/fee_metrics
):
Once a specificpoolId
is identified (e.g., one with high TVL or interesting APRs):- Use
/pool_summary
to get detailed static and dynamic information about that single pool, including token details, current TVL, and various APR components. - Use
/pool_volume
to analyze its recent trading activity, providing insights into hourly volume distribution and aggregate statistics over different timeframes. - Use
/fee_metrics
to get daily historical fee and volume data, allowing for trend analysis of the pool's fee generation capabilities.
- Use
-
Liquidity Provider Analysis (
/list_providers
,/provider_summary
,/provider_positions
):
To understand liquidity provision on Aerodrome:- Use
/list_providers
to get a paginated list of all liquidity providers, along with summary statistics about their overall positions and performance. - Select a specific
providerId
(provider's wallet address) and use/provider_summary
for a comprehensive overview of their activity, including portfolio diversity, historical performance, and fee breakdowns per pool. - Further drill down with
/provider_positions
to see the specific active LP positions held by that provider, detailing the pools they are in, the value of their stakes, and associated rewards.
- Use
This workflow demonstrates how Aerodrome V2-specific endpoints can be used sequentially to build a comprehensive, data-driven understanding of the DEX's pools and liquidity provider landscape. The subsequent sections provide detailed specifications for each endpoint, including cURL examples and expected response structures, enabling you to integrate this data effectively into your applications and analyses.
Aerodrome V2 API Endpoints
Here are the key Aerodrome V2-specific endpoints on the Base network you can use to access detailed DEX data:
1. List Aerodrome V2 Liquidity Pools
This endpoint returns a paginated list of all liquidity pools on Aerodrome V2, along with summary metrics for each.
- Endpoint:
GET /evm/base/dex/aerodrome_v2/list_pools
- Query Parameters:
offset=<NUMBER>
(Optional): The number of initial records to skip. Default is 0.limit=<NUMBER>
(Optional): The maximum number of records to return. Default is 100, Max is 100.
- Example cURL Command:
curl --request GET \ --url 'https://opabinia.cambrian.org/api/v1/evm/base/dex/aerodrome_v2/list_pools?offset=0&limit=5' \ --header 'accept: application/json' \ --header 'x-api-key: YOUR_API_KEY' # Replace YOUR_API_KEY
- Example Successful Response (200 OK):
[ { "columns": [ {"name": "poolId", "type": "String"}, {"name": "token0_address", "type": "String"}, {"name": "token0_symbol", "type": "String"}, {"name": "token0_decimals", "type": "Int64"}, {"name": "token1_address", "type": "String"}, {"name": "token1_symbol", "type": "String"}, {"name": "token1_decimals", "type": "Int64"}, {"name": "tvlToken0", "type": "Float64"}, {"name": "tvlToken1", "type": "Float64"}, {"name": "priceUSDToken0", "type": "Float64"}, {"name": "priceUSDToken1", "type": "Float64"}, {"name": "poolTvlUSD", "type": "Float64"}, {"name": "volume24hUSD", "type": "Float64"}, {"name": "volume7dUSD", "type": "Float64"}, {"name": "fees7dUSD", "type": "Float64"}, {"name": "aeroRewards7dUSD", "type": "Float64"}, {"name": "bribes7dUSD", "type": "Float64"}, {"name": "swapFeeApr7d", "type": "Float64"}, {"name": "aeroRewardApr7d", "type": "Float64"}, {"name": "bribeFeeApr7d", "type": "Float64"}, {"name": "totalApr7d", "type": "Float64"}, {"name": "createdAt", "type": "DateTime('UTC')"} ], "data": [ [ "0x000ff0a70502317791359f504c97a415cec690d8", "0x2ae3f1ec7f1f5012cfeab0185bfc7aa3cf0dec22", "AERO", 18, "0xd9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca", "USDbC", 6, 3114117.264202721, 541346.579865, 0.17383921894281926, 1.0000001187424186, 1082693.15973, 60150.19, 609231.36, 182.76, 2062.09, 0.0, 1.69, 19.05, 0.0, 20.74, "2024-02-20T06:18:59+00:00" ] // ... more pool data arrays ], "rows": 1 // Example: actual number of pools returned in this page } ]
2. Get Aerodrome V2 Pool Summary
Provides detailed information for a specific Aerodrome V2 liquidity pool.
- Endpoint:
GET /evm/base/dex/aerodrome_v2/pool_summary
- Query Parameters:
pool=<POOL_ADDRESS>
(Required): The address of the Aerodrome V2 liquidity pool. Example:0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d
apr_days_annualized=<DAYS>
(Required): The number of days to use for APR calculation and annualization (e.g., 7 or 30). It's recommended to use values for which data is available (e.g. 7 forfees7dUSD
).
- Example cURL Command:
curl --request GET \ --url 'https://opabinia.cambrian.org/api/v1/evm/base/dex/aerodrome_v2/pool_summary?pool=0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d&apr_days_annualized=7' \ --header 'accept: application/json' \ --header 'x-api-key: YOUR_API_KEY' # Replace YOUR_API_KEY
- Example Successful Response (200 OK):
[ { "columns": [ {"name": "p.pool_address", "type": "String"}, {"name": "token0_address", "type": "String"}, {"name": "token0_symbol", "type": "String"}, // ... other columns like token1 details, TVLs, prices, various APRs ... {"name": "total_apr_annualized", "type": "Float64"} ], "data": [ [ "0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d", "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913", "USDC", // ... other data points ... 12.299124503945808 ] ], "rows": 1 } ]
3. Get Aerodrome V2 Pool Volume Statistics
Provides volume statistics for a specific Aerodrome V2 pool, including hourly data and aggregates.
- Endpoint:
GET /evm/base/dex/aerodrome_v2/pool_volume
- Query Parameters:
pool=<POOL_ADDRESS>
(Required): The address of the Aerodrome V2 liquidity pool. Example:0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d
- Example cURL Command:
curl --request GET \ --url 'https://opabinia.cambrian.org/api/v1/evm/base/dex/aerodrome_v2/pool_volume?pool=0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d' \ --header 'accept: application/json' \ --header 'x-api-key: YOUR_API_KEY' # Replace YOUR_API_KEY
- Example Successful Response (200 OK):
[ { "columns": [ {"name": "hour", "type": "DateTime('UTC')"}, {"name": "hourly_volume_usd", "type": "Float64"}, {"name": "total_volume_usd_24h", "type": "Float64"}, {"name": "total_volume_usd_7d", "type": "Float64"}, {"name": "total_volume_usd_30d", "type": "Float64"} ], "data": [ [ "2025-05-07T12:00:00+00:00", 12345.67, 150000.00, 1000000.00, 5000000.00 ] // ... more hourly data arrays for the last 24 hours ... ], "rows": 24 // Typically returns 24 rows, one for each of the last 24 hours } ]
4. Get Aerodrome V2 Pool Fee Metrics
Provides timeseries daily fees data for a specific Aerodrome V2 pool.
- Endpoint:
GET /evm/base/dex/aerodrome_v2/fee_metrics
- Query Parameters:
pool=<POOL_ADDRESS>
(Required): The address of the Aerodrome V2 liquidity pool. Example:0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d
- Example cURL Command:
curl --request GET \ --url 'https://opabinia.cambrian.org/api/v1/evm/base/dex/aerodrome_v2/fee_metrics?pool=0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d' \ --header 'accept: application/json' \ --header 'x-api-key: YOUR_API_KEY' # Replace YOUR_API_KEY
- Example Successful Response (200 OK):
[ { "columns": [ {"name": "timestamp", "type": "DateTime('UTC')"}, {"name": "pool_address", "type": "String"}, {"name": "feesUSD", "type": "Float64"}, {"name": "volumeUSD", "type": "Float64"} ], "data": [ [ "2025-05-06T00:00:00+00:00", "0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d", 305.67, 305670.0 ], [ "2025-05-05T00:00:00+00:00", "0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d", 450.12, 450120.0 ] // ... more daily data arrays ... ], "rows": 30 // Example: number of historical days returned } ]
5. List Aerodrome V2 Liquidity Providers
This endpoint returns a paginated list of liquidity providers on Aerodrome V2, with summary metrics about their positions and performance.
- Endpoint:
GET /evm/base/dex/aerodrome_v2/list_providers
- Query Parameters:
offset=<NUMBER>
(Optional): The number of initial records to skip. Default is 0.limit=<NUMBER>
(Optional): The maximum number of records to return. Default is 100, Max is 100.
- Example cURL Command:
curl --request GET \ --url 'https://opabinia.cambrian.org/api/v1/evm/base/dex/aerodrome_v2/list_providers?offset=0&limit=5' \ --header 'accept: application/json' \ --header 'x-api-key: YOUR_API_KEY' # Replace YOUR_API_KEY
- Example Successful Response (200 OK):
[ { "columns": [ {"name": "providerId", "type": "String"}, {"name": "totalValueUSD", "type": "Float64"}, {"name": "totalAeroRewardsEarned", "type": "Float64"}, {"name": "totalBribeRewardsEarned", "type": "Float64"}, {"name": "totalFeesEarned", "type": "Float64"}, {"name": "unclaimedAeroRewards", "type": "Float64"}, {"name": "unclaimedBribeRewards", "type": "Float64"}, {"name": "unclaimedFees", "type": "Float64"}, {"name": "activePositions", "type": "Int64"}, {"name": "firstPositionDate", "type": "DateTime('UTC')"}, {"name": "lastPositionDate", "type": "DateTime('UTC')"} ], "data": [ [ "0x000000000000000000000000000000000000dead", 1234567.89, 5000.0, 1000.0, 2500.0, 100.0, 50.0, 20.0, 3, "2024-03-01T10:00:00+00:00", "2025-05-01T15:00:00+00:00" ] // ... more provider data arrays ], "rows": 1 // Example: actual number of providers returned in this page } ]
6. Get Aerodrome V2 Liquidity Provider Summary
Provides a comprehensive overview of a specific liquidity provider's activity on Aerodrome V2.
- Endpoint:
GET /evm/base/dex/aerodrome_v2/provider_summary
- Query Parameters:
address=<PROVIDER_ADDRESS>
(Required): The wallet address of the liquidity provider. Example:0x000000000000000000000000000000000000dead
- Example cURL Command:
curl --request GET \ --url 'https://opabinia.cambrian.org/api/v1/evm/base/dex/aerodrome_v2/provider_summary?address=0x000000000000000000000000000000000000dead' \ --header 'accept: application/json' \ --header 'x-api-key: YOUR_API_KEY' # Replace YOUR_API_KEY
- Example Successful Response (200 OK):
(Note: The actual response is very large and contains many nested objects and arrays. This is a simplified representation of its structure. It would typically include current summary stats, portfolio diversity, position size distribution, historical performance, and fee/APR breakdowns per pool.)[ { "columns": [ // Many columns detailing provider's overall performance, // token exposures, historical fees/APRs across various periods, // and per-pool breakdowns. // Example columns could be: {"name": "provider_address", "type": "String"}, {"name": "current_total_value_usd", "type": "Float64"}, {"name": "top_pools_by_value", "type": "Array(Object(...))"}, {"name": "historical_fees_30d_usd", "type": "Float64"} // ... and many more fields ... ], "data": [ [ "0x000000000000000000000000000000000000dead", 500000.75, // array of objects for top pools [{"poolId": "0xabc...", "valueUSD": 200000.0, /* ... */}], 1500.25 // ... corresponding data for other columns ... ] ], "rows": 1 } ]
7. Get Aerodrome V2 Liquidity Provider Active Positions
Shows details for the active positions a specific liquidity provider currently holds on Aerodrome V2.
- Endpoint:
GET /evm/base/dex/aerodrome_v2/provider_positions
- Query Parameters:
address=<PROVIDER_ADDRESS>
(Required): The wallet address of the liquidity provider. Example:0x000000000000000000000000000000000000dead
- Example cURL Command:
curl --request GET \ --url 'https://opabinia.cambrian.org/api/v1/evm/base/dex/aerodrome_v2/provider_positions?address=0x000000000000000000000000000000000000dead' \ --header 'accept: application/json' \ --header 'x-api-key: YOUR_API_KEY' # Replace YOUR_API_KEY
- Example Successful Response (200 OK):
[ { "columns": [ {"name": "tokenId", "type": "String"}, // NFT ID representing the LP position {"name": "poolId", "type": "String"}, {"name": "token0_symbol", "type": "String"}, {"name": "token1_symbol", "type": "String"}, {"name": "stakedAmountToken0", "type": "Float64"}, {"name": "stakedAmountToken1", "type": "Float64"}, {"name": "stakedValueUSD", "type": "Float64"}, {"name": "unclaimedFeesToken0", "type": "Float64"}, {"name": "unclaimedFeesToken1", "type": "Float64"}, {"name": "unclaimedFeesUSD", "type": "Float64"}, {"name": "unclaimedAeroRewards", "type": "Float64"}, {"name": "unclaimedAeroRewardsUSD", "type": "Float64"}, {"name": "unclaimedBribeRewardsToken0", "type": "Float64"}, // Example, bribes can be in various tokens {"name": "unclaimedBribeRewardsToken1", "type": "Float64"}, {"name": "unclaimedBribeRewardsUSD", "type": "Float64"}, {"name": "createdAt", "type": "DateTime('UTC')"} ], "data": [ [ "12345", // Example tokenId "0x6cdcb1c4a4d1c3c6d054b27ac5b77e89eafb971d", "USDC", "WETH", 1000.50, 0.53, 2000.75, 5.25, 0.002, 10.50, 150.0, 25.50, 0.0, 0.0, 0.0, "2025-04-01T08:30:00+00:00" ] // ... more active position data arrays ], "rows": 1 // Example: number of active positions for this provider } ]
This concludes the overview of the Aerodrome V2 specific endpoints available through the Cambrian API. Remember to replace YOUR_API_KEY
with your actual key in all examples.
Updated about 1 month ago