List ERC-20 token holders
Description
Section titled “Description”Returns ERC-20 token balances held on the Bittensor EVM chain, keyed by holder address and token contract. Each row includes the holder’s address, current balance, total transfer count, first/last activity block and timestamp, and token metadata (name, symbol, decimals, contract address).
Use this to look up a wallet’s ERC-20 holdings, page through the holder set for a specific token, or filter by minimum/maximum balance. Pair with /api/evm/erc20/token/v1 (token metadata and supply) and /api/evm/erc20/transfer/v1 (transfer history).
Endpoint
Section titled “Endpoint”GET /api/evm/erc20/account/v1Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
address | query | string | ||
token_name | query | string | ||
token_symbol | query | string | ||
token_address | query | string | ||
balance_min | query | string | Minimum balance (inclusive) | |
balance_max | query | string | Maximum balance (inclusive) | |
page | query | integer | ||
limit | query | integer | ||
order | query | — |
Responses
Section titled “Responses”200 — Accounts retrieved successfully
Section titled “200 — Accounts retrieved successfully”Media: application/json
Schema
{ "type": "object", "required": [ "pagination", "data" ], "properties": { "data": { "type": "array", "items": { "type": "object", "required": [ "address", "balance", "total_transfers", "token_decimals", "token_name", "token_symbol", "token_address", "first_active_block_number", "first_active_timestamp", "last_active_block_number", "last_active_timestamp" ], "properties": { "address": { "type": "string" }, "balance": { "type": "string" }, "first_active_block_number": { "type": "integer", "format": "int32" }, "first_active_timestamp": { "type": "string", "format": "date-time" }, "last_active_block_number": { "type": "integer", "format": "int32" }, "last_active_timestamp": { "type": "string", "format": "date-time" }, "token_address": { "type": "string" }, "token_decimals": { "type": "integer", "format": "int32" }, "token_name": { "type": "string" }, "token_symbol": { "type": "string" }, "total_transfers": { "type": "integer", "format": "int32" } } } }, "pagination": { "type": "object", "required": [ "current_page", "per_page", "total_items", "total_pages" ], "properties": { "current_page": { "type": "integer", "format": "int32" }, "next_page": { "type": "integer", "format": "int32", "nullable": true }, "per_page": { "type": "integer", "format": "int32" }, "prev_page": { "type": "integer", "format": "int32", "nullable": true }, "total_items": { "type": "integer", "format": "int32" }, "total_pages": { "type": "integer", "format": "int32" } } } }}400 — Bad request
Section titled “400 — Bad request”404 — Accounts not found
Section titled “404 — Accounts not found”500 — Internal server error
Section titled “500 — Internal server error”Try it
Section titled “Try it”Interactive request console coming soon. In the meantime you can use the OpenAPI spec with any client (Insomnia, Bruno, Scalar, curl).
Authentication
Section titled “Authentication”All Taostats API requests require an Authorization header containing your API key. See Getting Started.