πŸ‘οΈTokens and Balances

The TokenProvider class from @holdstation/worldchain-sdk enables developers to interact with token metadata, balances, and wallet holdings on WorldChain.

Installation

npm install @holdstation/worldchain-sdk ethers

Setup

import { ethers } from "ethers";
import { TokenProvider } from "@holdstation/worldchain-sdk";

const provider = new ethers.providers.JsonRpcProvider("<YOUR_RPC_URL>");
const tokenProvider = new TokenProvider({ provider });

Get Token Metadata

πŸ“‘ Parameters

Name
Type
Required
Description

tokens

string[] (rest params)

βœ… Yes

One or more token addresses passed as separate arguments (e.g. details(token1, token2, ...))

πŸ“˜ Usage

const WETH = "0x4200000000000000000000000000000000000006";
const USDCe = "0x79A02482A880bCE3F13e09Da970dC34db4CD24d1";

const details = await tokenProvider.details(WETH, USDCe);

console.log(details[WETH]);   // { address, chainId, decimals, symbol, name }
console.log(details[USDCe]);  // { address, chainId, decimals, symbol, name }

Get All Tokens Held by a Wallet

πŸ“‘ Parameters

Name
Type
Required
Description

wallet

string

βœ… Yes

Wallet address to find associated token contracts via Transfer events

πŸ“˜ Usage

const wallet = "0x14a028cC500108307947dca4a1Aa35029FB66CE0";
const tokens = await tokenProvider.tokenOf(wallet);

console.log(tokens); // Array of token contract addresses

Get Balances of Multiple Tokens for One Wallet

πŸ“‘ Parameters

Name
Type
Required
Description

wallet

string

βœ… Yes

Wallet address to get token balances for

tokens

string[]

βœ… Yes

Array of token addresses to check balances

πŸ“˜ Usage

const balances = await tokenProvider.balanceOf({
  wallet: "0x14a028cC500108307947dca4a1Aa35029FB66CE0",
  tokens: [WETH, USDCe, WLD],
});

console.log(balances[WETH]);
console.log(balances[USDCe]);
console.log(balances[WLD]);

Get Balance of a Single Token for Multiple Wallets

πŸ“‘ Parameters

Name
Type
Required
Description

token

string

βœ… Yes

Token address to check balances of

wallets

string[]

βœ… Yes

Array of wallet addresses to fetch balances for the token

πŸ“˜ Usage

const balances = await tokenProvider.balanceOf({
  token: WLD,
  wallets: [
    "0x14a028cC500108307947dca4a1Aa35029FB66CE0",
    "0xc57B9e6f74d393504b7e43C09A6089aEc6f8D6d0"
  ],
});

console.log(balances["0x14a028..."]);
console.log(balances["0xc57B9e6..."]);

Last updated