Skip to main content

Don't have an API key yet?

Sign-up to Moralis to get your free API key and start building today.

Get Your Free API Key
Version: 2.2

Track Specific ERC20 Token Transfers From a List of Wallets

Lets check a list of wallets and filter only a specific ERC20 Token Transfers. We will use the built-in moralis_streams_contract_address filter, to filter only the specific token transfers.


const ERC20TransferABI = [
anonymous: false,
inputs: [
indexed: true,
name: "from",
type: "address",
indexed: true,
name: "to",
type: "address",
indexed: false,
name: "value",
type: "uint256",
name: "Transfer",
type: "event",

// This filter will only listen to BUST token transfers
const filter = {
eq: [
], // BUST contract

const options = {
chains: ["0x38"],
description: "Listen to a list of wallets for BUSD transfers",
tag: "busd-transfers",
webhookUrl: "",
includeContractLogs: true,
topic0: ["Transfer(address,address,uint256)"],
abi: ERC20TransferABI,
advancedOptions: [
topic0: "Transfer(address,address,uint256)",

const stream = await Moralis.Streams.add(options);

const { id } = stream.toJSON(); // { id: 'YOUR_STREAM_ID', }

// Attach the list of addresses to the stream
await Moralis.Streams.addAddress({
address: ["0x1234...5678", "0x8765...4321", "0x543...0f43"],