cURL
curl 'https://api.exponent.finance/balances/historical/vault/78MLjMXyKyjwXtHXCuZHnBUH5wMh89KwBpvoFvcBzxN1?type=clmm_lp&page=1&limit=2'
import requests
response = requests.get("https://api.exponent.finance/balances/historical/vault/78MLjMXyKyjwXtHXCuZHnBUH5wMh89KwBpvoFvcBzxN1?type=clmm_lp&page=1&limit=2", timeout=30)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.exponent.finance/balances/historical/vault/78MLjMXyKyjwXtHXCuZHnBUH5wMh89KwBpvoFvcBzxN1?type=clmm_lp&page=1&limit=2");
if (!response.ok) {
throw new Error(`Request failed: ${response.status}`);
}
const data = await response.json();
console.log(data);
{
"pagination": {
"page": 1,
"limit": 2,
"total_count": 4761,
"total_pages": 2381,
"has_next": true,
"has_prev": false
},
"data": [
{
"type": "clmm_lp",
"user_address": "GGwMTvS7VanhdYehw4PZ1gpB2CrWMCFyfN8Zm8Nf54ha",
"market_address": "36g7SJ6HddnnJZGgWoUccTVKHn4PXKHYrZGYcMvikKvF",
"position_address": "ERPVVb6uTpK8R5q1VjGPTQjKWjYSEWHQvGB8jVsU4BWU",
"created_at": "2026-10-07T21:23:20+00:00",
"lp_balance": "0",
"sy_balance": "0",
"pt_balance": "0",
"lower_tick": 130000,
"upper_tick": 200000,
"tokens_owed_sy": "0",
"tokens_owed_pt": "0",
"fee_inside_last_sy": "88853799612035",
"fee_inside_last_pt": "261039872400670",
"farms": [
{
"staged": "0",
"lastSeenIndex": "0"
},
{
"staged": "0",
"lastSeenIndex": "0"
}
],
"tx_signature": "2pzw7v4v5EPJmFiRF5ok88KwT1qfbUjs4Pa2zGfwAJdPM9mJc6rQXNhCBDLnBikmM6Kjngt49VAHcCPQFpV3hG2K",
"recorded_at": "2026-10-07T21:23:21.405472+00:00",
"needs_recalc": false
},
{
"type": "clmm_lp",
"user_address": "DD9JoeCnvCLsjqfjGsk1frnDhGXaosQwaT594kt6tBod",
"market_address": "36g7SJ6HddnnJZGgWoUccTVKHn4PXKHYrZGYcMvikKvF",
"position_address": "8W2n7GjvYXN9BxPf6YAnL17L5nDgLcuHK8hSQ7Ds7cUC",
"created_at": "2026-10-07T11:22:14+00:00",
"lp_balance": "0",
"sy_balance": "0",
"pt_balance": "0",
"lower_tick": 110000,
"upper_tick": 170000,
"tokens_owed_sy": "0",
"tokens_owed_pt": "0",
"fee_inside_last_sy": "134682916478048",
"fee_inside_last_pt": "410549665841492",
"farms": [
{
"staged": "0",
"lastSeenIndex": "0"
},
{
"staged": "0",
"lastSeenIndex": "0"
}
],
"tx_signature": "j1ZGmg5ugKJcYuiQ6jwMFWpgq4x5VP1gJH7AhyTbyX3soCyRecfsEHejL9thjy1cXFoN8YedXKuaRiBcfH7czPr",
"recorded_at": "2026-10-07T11:22:15.727658+00:00",
"needs_recalc": false
}
]
}
{
"error": "<message>"
}
{
"error": "<message>"
}
Balances
Vault balance history
Returns paginated balance history records for all users in a vault. Use this endpoint for bulk exports.
GET
/
balances
/
historical
/
vault
/
{vaultAddress}
cURL
curl 'https://api.exponent.finance/balances/historical/vault/78MLjMXyKyjwXtHXCuZHnBUH5wMh89KwBpvoFvcBzxN1?type=clmm_lp&page=1&limit=2'
import requests
response = requests.get("https://api.exponent.finance/balances/historical/vault/78MLjMXyKyjwXtHXCuZHnBUH5wMh89KwBpvoFvcBzxN1?type=clmm_lp&page=1&limit=2", timeout=30)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.exponent.finance/balances/historical/vault/78MLjMXyKyjwXtHXCuZHnBUH5wMh89KwBpvoFvcBzxN1?type=clmm_lp&page=1&limit=2");
if (!response.ok) {
throw new Error(`Request failed: ${response.status}`);
}
const data = await response.json();
console.log(data);
{
"pagination": {
"page": 1,
"limit": 2,
"total_count": 4761,
"total_pages": 2381,
"has_next": true,
"has_prev": false
},
"data": [
{
"type": "clmm_lp",
"user_address": "GGwMTvS7VanhdYehw4PZ1gpB2CrWMCFyfN8Zm8Nf54ha",
"market_address": "36g7SJ6HddnnJZGgWoUccTVKHn4PXKHYrZGYcMvikKvF",
"position_address": "ERPVVb6uTpK8R5q1VjGPTQjKWjYSEWHQvGB8jVsU4BWU",
"created_at": "2026-10-07T21:23:20+00:00",
"lp_balance": "0",
"sy_balance": "0",
"pt_balance": "0",
"lower_tick": 130000,
"upper_tick": 200000,
"tokens_owed_sy": "0",
"tokens_owed_pt": "0",
"fee_inside_last_sy": "88853799612035",
"fee_inside_last_pt": "261039872400670",
"farms": [
{
"staged": "0",
"lastSeenIndex": "0"
},
{
"staged": "0",
"lastSeenIndex": "0"
}
],
"tx_signature": "2pzw7v4v5EPJmFiRF5ok88KwT1qfbUjs4Pa2zGfwAJdPM9mJc6rQXNhCBDLnBikmM6Kjngt49VAHcCPQFpV3hG2K",
"recorded_at": "2026-10-07T21:23:21.405472+00:00",
"needs_recalc": false
},
{
"type": "clmm_lp",
"user_address": "DD9JoeCnvCLsjqfjGsk1frnDhGXaosQwaT594kt6tBod",
"market_address": "36g7SJ6HddnnJZGgWoUccTVKHn4PXKHYrZGYcMvikKvF",
"position_address": "8W2n7GjvYXN9BxPf6YAnL17L5nDgLcuHK8hSQ7Ds7cUC",
"created_at": "2026-10-07T11:22:14+00:00",
"lp_balance": "0",
"sy_balance": "0",
"pt_balance": "0",
"lower_tick": 110000,
"upper_tick": 170000,
"tokens_owed_sy": "0",
"tokens_owed_pt": "0",
"fee_inside_last_sy": "134682916478048",
"fee_inside_last_pt": "410549665841492",
"farms": [
{
"staged": "0",
"lastSeenIndex": "0"
},
{
"staged": "0",
"lastSeenIndex": "0"
}
],
"tx_signature": "j1ZGmg5ugKJcYuiQ6jwMFWpgq4x5VP1gJH7AhyTbyX3soCyRecfsEHejL9thjy1cXFoN8YedXKuaRiBcfH7czPr",
"recorded_at": "2026-10-07T11:22:15.727658+00:00",
"needs_recalc": false
}
]
}
{
"error": "<message>"
}
{
"error": "<message>"
}
Path parameters
string
required
Vault address.
Query parameters
string
required
Balance type:
clmm_lp, legacy_lp, yt, pt, or sy.string
Inclusive start date or ISO timestamp.
string
Inclusive end date or ISO timestamp.
number
default:"1"
Positive page number (1-indexed).
number
default:"500"
Records per page. Maximum:
500.string
Filter by user wallet address.
string
CLMM market address. Used with
type=clmm_lp.string
CLMM position address. Used with
type=clmm_lp.Date-only values use UTC day boundaries.
endDate=2026-06-10 includes records through 2026-06-10T23:59:59.999Z.cURL
curl 'https://api.exponent.finance/balances/historical/vault/78MLjMXyKyjwXtHXCuZHnBUH5wMh89KwBpvoFvcBzxN1?type=clmm_lp&page=1&limit=2'
import requests
response = requests.get("https://api.exponent.finance/balances/historical/vault/78MLjMXyKyjwXtHXCuZHnBUH5wMh89KwBpvoFvcBzxN1?type=clmm_lp&page=1&limit=2", timeout=30)
response.raise_for_status()
print(response.json())
const response = await fetch("https://api.exponent.finance/balances/historical/vault/78MLjMXyKyjwXtHXCuZHnBUH5wMh89KwBpvoFvcBzxN1?type=clmm_lp&page=1&limit=2");
if (!response.ok) {
throw new Error(`Request failed: ${response.status}`);
}
const data = await response.json();
console.log(data);
Record fields
Pagination
pagination contains page, limit, total_count, total_pages, has_next, and has_prev. Counts include current balance rows when included. Follow has_next to export subsequent pages.
{
"pagination": {
"page": 1,
"limit": 2,
"total_count": 4761,
"total_pages": 2381,
"has_next": true,
"has_prev": false
},
"data": [
{
"type": "clmm_lp",
"user_address": "GGwMTvS7VanhdYehw4PZ1gpB2CrWMCFyfN8Zm8Nf54ha",
"market_address": "36g7SJ6HddnnJZGgWoUccTVKHn4PXKHYrZGYcMvikKvF",
"position_address": "ERPVVb6uTpK8R5q1VjGPTQjKWjYSEWHQvGB8jVsU4BWU",
"created_at": "2026-10-07T21:23:20+00:00",
"lp_balance": "0",
"sy_balance": "0",
"pt_balance": "0",
"lower_tick": 130000,
"upper_tick": 200000,
"tokens_owed_sy": "0",
"tokens_owed_pt": "0",
"fee_inside_last_sy": "88853799612035",
"fee_inside_last_pt": "261039872400670",
"farms": [
{
"staged": "0",
"lastSeenIndex": "0"
},
{
"staged": "0",
"lastSeenIndex": "0"
}
],
"tx_signature": "2pzw7v4v5EPJmFiRF5ok88KwT1qfbUjs4Pa2zGfwAJdPM9mJc6rQXNhCBDLnBikmM6Kjngt49VAHcCPQFpV3hG2K",
"recorded_at": "2026-10-07T21:23:21.405472+00:00",
"needs_recalc": false
},
{
"type": "clmm_lp",
"user_address": "DD9JoeCnvCLsjqfjGsk1frnDhGXaosQwaT594kt6tBod",
"market_address": "36g7SJ6HddnnJZGgWoUccTVKHn4PXKHYrZGYcMvikKvF",
"position_address": "8W2n7GjvYXN9BxPf6YAnL17L5nDgLcuHK8hSQ7Ds7cUC",
"created_at": "2026-10-07T11:22:14+00:00",
"lp_balance": "0",
"sy_balance": "0",
"pt_balance": "0",
"lower_tick": 110000,
"upper_tick": 170000,
"tokens_owed_sy": "0",
"tokens_owed_pt": "0",
"fee_inside_last_sy": "134682916478048",
"fee_inside_last_pt": "410549665841492",
"farms": [
{
"staged": "0",
"lastSeenIndex": "0"
},
{
"staged": "0",
"lastSeenIndex": "0"
}
],
"tx_signature": "j1ZGmg5ugKJcYuiQ6jwMFWpgq4x5VP1gJH7AhyTbyX3soCyRecfsEHejL9thjy1cXFoN8YedXKuaRiBcfH7czPr",
"recorded_at": "2026-10-07T11:22:15.727658+00:00",
"needs_recalc": false
}
]
}
{
"error": "<message>"
}
{
"error": "<message>"
}
object
object[]
Balance changes; fields vary by the requested
type.Show child attributes
Show child attributes
string
Requested balance type.
string
Wallet address.
string
Vault identity for non-CLMM records.
string
Market identity for CLMM records.
string
Position identity for CLMM records.
string
Raw core balance for PT, YT, or legacy LP.
string
Raw open orderbook balance for PT, YT, or SY.
string
Raw filled orderbook balance for PT, YT, or SY.
string
Raw CLMM liquidity.
string
Raw estimated CLMM SY principal.
string
Raw estimated CLMM PT principal.
boolean
CLMM derived balances await recalculation when true.
string | null
Transaction associated with this change.
string
History observation timestamp.