• Homepage •
Supported protocols •
Chainstack blog •
Chainstack docs •
Blockchain API reference •
• Start for free •
This repository contains code examples on how you can retrieve Ethereum tokens in bulk using:
- GraphQL
- Etherplex
- web3.js BatchRequest
Clone the repository:
git clone https://github.com/chainstack/ethereum-token-balances.git
Install dependencies:
npm ci
Use
npm ci
to launch aclean install
of the dependencies, this will install the same version as in thepackage.json
file.
Replace the following values in the constant.js
file to suit your use case:
username
— your Ethereum node RPC username.password
— your Ethereum node RPC password.rpcEndpoint
— your Ethereum node RPC endpoint.bathEndpoint
— your Ethereum node RPC endpoint with authentication credentials.walletAddress
— the account address you want to query.ABI (Application Binary Interface)
- contract ABI with only thebalanceOf
function, remember to add the function calls you're planning to execute to the ABI constant.
Then:
GraphQL is a runtime natively supported by Go Ethereum client. See also GraphQL on Ethereum.
Run:
node graph
Sample results:
{
"GameCredits":"1600000000000000000000 GAME",
"Swarm Fund":"0 SWM",
"Augur":"250684955559177177971383 REP",
"Tether":"52057527540802 USDT",
"DigixDAO":"122062000003 DGD",
"SingularDTV":"1809462 SNGLS",
"Veros":"0 VRS",
"Golem":"83169802320824576633066602 GLM",
"Circuits of Value":"0 COVAL",
"chrono tech":"0 TIME",
"Melon":"0 MLN",
"WeTrust":"0 TRST",
"iExec RLC":"1633118384742405 RLC",
...
}
Etherplex is a JavaScript library that makes use of the multicall smart contract to aggregate function calls and execute them in batches.
Run:
node etherplex
Sample results:
{
"GameCredits":"1600000000000000000000 GAME",
"Swarm Fund":"0 SWM",
"Augur":"250684955559177177971383 REP",
"Tether":"52057527540802 USDT",
"DigixDAO":"122062000003 DGD",
"SingularDTV":"1809462 SNGLS",
"Veros":"0 VRS",
"Golem":"83169802320824576633066602 GLM",
"Circuits of Value":"0 COVAL",
"chrono tech":"0 TIME",
"Melon":"0 MLN",
"WeTrust":"0 TRST",
"iExec RLC":"1633118384742405 RLC",
...
}
web3.js is a JavaScript library that makes use of the generic JSON-RPC methods.
The web3.js BatchRequest
method aggregates the list of contract function calls and converts them into an array of JSON-RPC calls before sending it to the Ethereum node in one XMLHttpRequest.
Run:
node batch
Sample results:
{
"GameCredits":"1600000000000000000000 GAME",
"Swarm Fund":"0 SWM",
"Augur":"250684955559177177971383 REP",
"Tether":"52057527540802 USDT",
"DigixDAO":"122062000003 DGD",
"SingularDTV":"1809462 SNGLS",
"Veros":"0 VRS",
"Golem":"83169802320824576633066602 GLM",
"Circuits of Value":"0 COVAL",
"chrono tech":"0 TIME",
"Melon":"0 MLN",
"WeTrust":"0 TRST",
"iExec RLC":"1633118384742405 RLC",
...
}
- Node.js: ^16.17.0— install Node
- A node RPC endpoint.
Deploy a node with Chainstack: