Cambrian Pool Liquidity Map API
GET /api/v1/solana/orca/pools/liquidity-map
Pool Liquidity Map
Overview
Retrieves the distribution of net liquidity across price ticks for a specific Orca Whirlpool. Returns liquidity values at representative tick intervals based on the specified resolution, so you can see how liquidity is concentrated across the price curve. Note: the pool must have been created after 2025-02-27.
Business Value
- Liquidity Analysis: Understand where liquidity is concentrated in Orca pools to identify optimal trading ranges
- Price Impact Assessment: Evaluate potential price impact of trades by analyzing liquidity depth at different price levels
- Pool Health Monitoring: Monitor the distribution and concentration of liquidity to assess pool efficiency
- Trading Strategy Optimization: Identify price ranges with high liquidity for reduced slippage trading
- Market Making Insights: Determine optimal price ranges for providing liquidity based on current distribution patterns
Endpoint Details
URL:
https://api.cambrian.org/solana/orca/pools/liquidity-map
Method: GET
Authentication: Required via X-API-Key header
Query Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| pool_address | string | Yes | - | The public key address of the Orca Whirlpool. |
| resolution | integer | Yes | - | The approximate number of data points (tick intervals) desired in the output map. Higher values mean finer granularity. Minimum 10, maximum 1000. |
Response Field Descriptions
| Response Field | Type | Description |
|---|---|---|
| mapTick | Int64 | The representative tick index for this liquidity data point. |
| liquidity | Int256 | The net liquidity value active at this tick interval. |
Examples
1. Retrieve the liquidity map for an Orca Whirlpool
This example fetches the liquidity distribution for a specific pool with a resolution of 200 tick intervals, useful for rendering a liquidity depth chart.
curl -X GET "https://api.cambrian.org/solana/orca/pools/liquidity-map?pool_address=DYFk5yvux4mkuQcxkA7H6FWgRQHc1Z7JUb42SJVxnhgG&resolution=200" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json"
Response:
[
{
"columns": [
{
"name": "mapTick",
"type": "Int64"
},
{
"name": "liquidity",
"type": "Int256"
}
],
"data": [
[
-443632,
"1388308015"
],
[
-439200,
"1388308015"
],
[
-434768,
"1388308015"
],
[
-430336,
"1388308015"
],
[
-425904,
"1388308015"
],
[
-421472,
"1388308015"
],
[
-417040,
"1388308015"
],
[
-412608,
"1388308015"
],
[
-408176,
"1388308015"
],
[
-403744,
"1388308015"
]
],
"rows": 201
}
]
Result collections are limited to 10 items. The rows field reports the total number of tick intervals available (201 in this case), even though the data array shown here is capped at 10 entries. Each entry pairs a mapTick with its corresponding liquidity value; in this range of deeply out-of-the-money ticks, liquidity stays constant at 1388308015.
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/solana/orca/pools/liquidity-map"
);
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/solana/orca/pools/liquidity-map")
print(response.json())
asyncio.run(main())
Payment Flow
- Send a normal request to the endpoint (no API key needed)
- Server returns
402 Payment Requiredwith payment details - The x402 SDK automatically signs a payment authorization with your wallet
- The SDK resubmits the request with the signed payment
- 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