API ReferenceToken APIGet Token HoldersGet ERC20 Token Holders TimeseriesVersion: 2.2Get ERC20 Token Holders TimeseriesGEThttps://deep-index.moralis.io/api/v2.2/erc20/:address/holders/historicalGet historical holder statistics for a specific ERC20 token address over a date rangePATH PARAMSaddressstringrequiredThe token contract addressQUERY PARAMSchainstringThe chain to queryeth0x1sepolia0xaa36a7holesky0x4268polygon0x89polygon amoy0x13882bsc0x38bsc testnet0x61avalanche0xa86afantom0xfapalm0x2a15c308dcronos0x19arbitrum0xa4b1fromDatestringrequiredThe starting date (format in seconds or datestring accepted by momentjs)toDatestringrequiredThe ending date (format in seconds or datestring accepted by momentjs)timeFramestringrequiredThe timeframe1min5min10min30min1h4h12h1d1w1MResponses200 Returns historical token holder statisticsobjectAPI KEYTest Live APINode.jsPythoncURLGoPHP// Dependencies to install:// $ npm install node-fetch --save// add "type": "module" to package.jsonimport fetch from 'node-fetch';const options = { method: 'GET', headers: { accept: 'application/json', 'X-API-Key': 'YOUR_API_KEY' },};fetch('https://deep-index.moralis.io/api/v2.2/erc20/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599/holders/historical?chain=eth&fromDate=2024-11-25&toDate=2025-01-01&timeFrame=1d', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err));# Dependencies to install:# $ python -m pip install requestsimport requestsurl = "https://deep-index.moralis.io/api/v2.2/erc20/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599/holders/historical?chain=eth&fromDate=2024-11-25&toDate=2025-01-01&timeFrame=1d"headers = { "Accept": "application/json", "X-API-Key": "YOUR_API_KEY"}response = requests.request("GET", url, headers=headers)print(response.text)curl --request GET \ --url 'https://deep-index.moralis.io/api/v2.2/erc20/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599/holders/historical?chain=eth&fromDate=2024-11-25&toDate=2025-01-01&timeFrame=1d' \ --header 'accept: application/json' \ --header 'X-API-Key: YOUR_API_KEY' package mainimport ( "fmt" "net/http" "io/ioutil")func main() { url := "https://deep-index.moralis.io/api/v2.2/erc20/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599/holders/historical?chain=eth&fromDate=2024-11-25&toDate=2025-01-01&timeFrame=1d" req, _ := http.NewRequest("GET", url, payload) req.Header.Add("Accept", "application/json") req.Header.Add("X-API-Key", "YOUR_API_KEY") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body))}<?php// Dependencies to install:// $ composer require guzzlehttp/guzzlerequire_once('vendor/autoload.php');$client = new \GuzzleHttp\Client();$response = $client->request('GET', 'https://deep-index.moralis.io/api/v2.2/erc20/0x2260fac5e5542a773aa44fbcfedf7c193bc2c599/holders/historical?chain=eth&fromDate=2024-11-25&toDate=2025-01-01&timeFrame=1d', [ 'headers' => [ 'Accept' => 'application/json', 'X-API-Key' => 'YOUR_API_KEY', ],]);echo $response->getBody();Response Example200 Returns historical token holder statistics{ "page": 1, "cursor": "", "result": [ { "timestamp": "2025-01-01T00:00:00.000Z", "totalHolders": 104188, "netHolderChange": 32, "holderPercentChange": 0.031, "newHoldersByAcquisition": { "swap": 159, "transfer": 522, "airdrop": 3 }, "holdersIn": { "whales": "", "sharks": "", "dolphins": "", "fish": 2, "octopus": 4, "crab": 19, "shrimps": 659 }, "holdersOut": { "whales": "", "sharks": "", "dolphins": "", "fish": 1, "octopus": 5, "crab": 21, "shrimps": 625 } } ]}