Skip to main content
Version: 2.2

How to get all ERC20 tokens owned by an wallet


Before getting started, make sure you have the following ready:

  • Node v.14+ or Python
  • NPM/Yarn or Pip

Step 1: Setup Moralis

First register your Moralis account and get your Moralis API Key.

Once you have your Moralis API Key, install the Moralis SDK in your project.

npm install moralis @moralisweb3/common-evm-utils

Step 2: Get all ERC20 tokens owned by an address

In order to get all ERC20 tokens owned by an address, Moralis provides you with an getWalletTokenBalances endpoint.

Here you'll need two parameters: address and chain.

Once you have obtained the address and chain, you can copy the following code:

const Moralis = require("moralis").default;
const { EvmChain } = require("@moralisweb3/common-evm-utils");

const runApp = async () => {
await Moralis.start({
apiKey: "YOUR_API_KEY",
// ...and any other configuration

const address = "0xbc4ca0eda7647a8ab7c2061c2e118a18a936f13d";

const chain = EvmChain.ETHEREUM;

const response = await Moralis.EvmApi.token.getWalletTokenBalances({



Step 3: Run the script

To run the script, enter the following command:

node index.js

In your terminal, you should see the following JSON response:

"token_address": "0xefd6c64533602ac55ab64442307f6fe2c9307305",
"name": "APE",
"symbol": "APE",
"logo": null,
"thumbnail": null,
"decimals": 18,
"balance": "101715701444169451516503179"
"token_address": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"name": "Wrapped Ether",
"symbol": "WETH",
"logo": "",
"thumbnail": "",
"decimals": 18,
"balance": "85000000000000000"

Congratulations 🥳 You just got all ERC20 tokens owned by an address with just a few lines of code using the Moralis Token API!

API Reference

If you want to know more details on the endpoint and optional parameters, check out:


If you face any trouble following the tutorial, feel free to reach out to our community engineers in our Discord or Forum to get 24/7 developer support.