Get a holders summary by token address
curl --request GET \
--url https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders \
--header 'X-API-Key: <api-key>'import requests
url = "https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"totalHolders": "99999",
"holderSupply": {
"top10": {
"supply": "10",
"supplyPercent": "0.10"
},
"top25": {
"supply": "10",
"supplyPercent": "0.10"
},
"top50": {
"supply": "10",
"supplyPercent": "0.10"
},
"top100": {
"supply": "10",
"supplyPercent": "0.10"
},
"top250": {
"supply": "10",
"supplyPercent": "0.10"
},
"top500": {
"supply": "10",
"supplyPercent": "0.10"
}
},
"holderChange": {
"5min": {
"change": "10",
"changePercent": "0.10"
},
"1h": {
"change": "10",
"changePercent": "0.10"
},
"6h": {
"change": "10",
"changePercent": "0.10"
},
"24h": {
"change": "10",
"changePercent": "0.10"
},
"3d": {
"change": "10",
"changePercent": "0.10"
},
"7d": {
"change": "10",
"changePercent": "0.10"
},
"30d": {
"change": "10",
"changePercent": "0.10"
}
},
"holdersByAcquisition": {
"swap": "10",
"transfer": "10",
"airdrop": "10"
},
"holderDistribution": {
"whales": "100",
"sharks": "100",
"dolphins": "100",
"fish": "100",
"octopus": "100",
"crabs": "100",
"shrimps": "100"
}
}Holders
Token Holder Metrics
Returns total holders for a given token, as well as aggregated stats holder supply, holder trends, holder distribution and holder acquisition metrics.
GET
/
erc20
/
{tokenAddress}
/
holders
Get a holders summary by token address
curl --request GET \
--url https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders \
--header 'X-API-Key: <api-key>'import requests
url = "https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://deep-index.moralis.io/api/v2.2/erc20/{tokenAddress}/holders")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"totalHolders": "99999",
"holderSupply": {
"top10": {
"supply": "10",
"supplyPercent": "0.10"
},
"top25": {
"supply": "10",
"supplyPercent": "0.10"
},
"top50": {
"supply": "10",
"supplyPercent": "0.10"
},
"top100": {
"supply": "10",
"supplyPercent": "0.10"
},
"top250": {
"supply": "10",
"supplyPercent": "0.10"
},
"top500": {
"supply": "10",
"supplyPercent": "0.10"
}
},
"holderChange": {
"5min": {
"change": "10",
"changePercent": "0.10"
},
"1h": {
"change": "10",
"changePercent": "0.10"
},
"6h": {
"change": "10",
"changePercent": "0.10"
},
"24h": {
"change": "10",
"changePercent": "0.10"
},
"3d": {
"change": "10",
"changePercent": "0.10"
},
"7d": {
"change": "10",
"changePercent": "0.10"
},
"30d": {
"change": "10",
"changePercent": "0.10"
}
},
"holdersByAcquisition": {
"swap": "10",
"transfer": "10",
"airdrop": "10"
},
"holderDistribution": {
"whales": "100",
"sharks": "100",
"dolphins": "100",
"fish": "100",
"octopus": "100",
"crabs": "100",
"shrimps": "100"
}
}Authorizations
Path Parameters
The token address to get transaction for
Example:
"0x6982508145454ce325ddbe47a25d4ec3d2311933"
Query Parameters
The chain to query
Available options:
eth, 0x1, sepolia, 0xaa36a7, polygon, 0x89, bsc, 0x38, bsc testnet, 0x61, avalanche, 0xa86a, cronos, 0x19, arbitrum, 0xa4b1, chiliz, 0x15b38, gnosis, 0x64, base, 0x2105, base sepolia, 0x14a34, optimism, 0xa, polygon amoy, 0x13882, linea, 0xe708, moonbeam, 0x504, moonriver, 0x505, flow, 0x2eb, flow-testnet, 0x221, ronin, 0x7e4, ronin-testnet, 0x31769, lisk, 0x46f, pulse, 0x171, sei-testnet, 0x530, sei, 0x531, monad, 0x8f Example:
"eth"
Response
200 - application/json
Returns token holder summary result
The total holders of the token
Example:
"99999"
The holder supply
Show child attributes
Show child attributes
The holder change
Show child attributes
Show child attributes
The holder change
Show child attributes
Show child attributes
The holder distribution
Show child attributes
Show child attributes

