create a infura project at https://infura.io/
use Web3js to create a Contract object
npm install web3
npm install csv-writer
{
"provider": "https://mainnet.infura.io/v3/your_token",
"tokenAddress": "0x7A58c0Be72BE218B41C608b7Fe7C5bB630736C71",
"fromBlock": "0",
"toBlock": "latest",
"abi": []
}
node ./holders.js
holder,balance
0x534Db4d2f6715D9c7023Bd938b0f62D72eE871eF,8
0xDd386096048683378E87FA626C75C2b548fd5e7e,8
...
0x3317AD9eDa6942b5a7BE5BA83346C0Ea82C3C26C,2
0xA62F8ABb12094F5651C8bA7222A0dC1034Ca4B20,6