chainstacklabs / ethereum-token-balances-javascript

Code samples to retrieve multiple Ethereum token balances from addresses using GraphQL, ethers.js, and web3.js libraries
https://chainstack.com/the-ultimate-guide-to-getting-multiple-token-balances-on-ethereum/
MIT License
22 stars 11 forks source link
balance erc20 ethereum retrieve-data token
Labs

Chainstack is the leading suite of services connecting developers with Web3 infrastructure

         

HomepageSupported protocolsChainstack blogChainstack docsBlockchain API reference
Start for free

Retrieve multiple token balances on Ethereum

This repository contains code examples on how you can retrieve Ethereum tokens in bulk using:

Quick start

Clone the repository:

git clone https://github.com/chainstack/ethereum-token-balances.git

Install dependencies:

npm ci

Use npm ci to launch a clean install of the dependencies, this will install the same version as in the package.json file.

Replace the following values in the constant.js file to suit your use case:

Then:

GraphQL

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

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 BatchRequest

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",
  ...
}

Prerequisites

Deploy a node with Chainstack:

  1. Sign up with Chainstack.
  2. Deploy a node.
  3. View node access and credentials.