Asset Holders
GET /v1/assets/:asset/holders
Get addresses holding a specific asset with their quantities (paginated).
Parameters:
| Parameter | Type | Description |
|---|---|---|
asset | string | Asset identifier in format {policy_id}.{asset_name} |
Query Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
limit | integer | 100 | Results per page (1-500) |
offset | integer | 0 | Number of results to skip |
order | string | desc | Sort order: asc or desc (by quantity) |
Example Request:
bash
# Top 10 IAG holders
curl -X GET "https://api.insight.iagon.com/v1/assets/5d16cc1a177b5d9ba9cfa9793b07e60f1fb70fea1f8aef064415d114.494147/holders?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
# Smallest holders first
curl -X GET "https://api.insight.iagon.com/v1/assets/5d16cc1a177b5d9ba9cfa9793b07e60f1fb70fea1f8aef064415d114.494147/holders?order=asc&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"Response:
Content-Type: application/json;charset=utf-8
json
{
"success": true,
"data": [
{
"address": "addr1qx...",
"stake_address": "stake1u9...",
"quantity": "50000000000000"
},
{
"address": "addr1qy...",
"stake_address": "stake1u8...",
"quantity": "25000000000000"
}
],
"pagination": {
"limit": 10,
"offset": 0,
"hasMore": true
},
"last_updated": {
"slot_no": 123456789,
"block_hash": "abc123...",
"block_time": "2024-01-15T10:30:00Z"
}
}Response Fields:
| Field | Type | Description |
|---|---|---|
address | string | Bech32 payment address holding the asset |
stake_address | string | null | Associated stake address (if any) |
quantity | string | Amount held (as string to handle large numbers) |
Performance Note
Holder queries aggregate UTXOs across many addresses and can be slow for popular assets with thousands of holders. Consider using smaller page sizes and caching results.
