Navigate...
Catalogs
Query supported blockchains and tokens. Read-only reference data used when creating distributions — chain IDs, contract addresses, token decimals, and Multisender contract addresses.
Overview
Before creating a distribution, you need to know the chainId for the target network. The Catalogs API provides this reference data.Key fields for distributions: - chainId — required parameter for distribute(), createDraft(), and getApproveCalldata() - multisenderContractAddress — the spender address for ERC-20 approve() transactions - nativeSymbol — the native token symbol for the chain (e.g. ETH, POL)All catalog methods are read-only and work with any API key scope.
Read-only, any scope
All Catalogs methods are read-only and work with any API key scope. They do not modify project state.
Token decimals matter
Amounts in distribute() and recipient lists are in human-readable units (e.g. "100" USDC, not "100000000"). The SDK handles conversion using the token's decimals.
Key Concepts
Chain
A supported blockchain network. Each chain has a unique numeric chainId (e.g. 1 for Ethereum, 137 for Polygon), address type (currently EVM only), native currency, RPC and explorer URLs, and the multisenderContractAddress for token approvals.
Token
An ERC-20 or native token on a supported chain. When calling distribute(), you provide tokenAddress and tokenSymbol. Amounts are in human-readable units (e.g. "100" USDC, not "100000000").
Multisender contract
The on-chain contract that executes batch transfers. Its address is available in chain.multisenderContractAddress. For ERC-20 distributions, you must approve() this address as the spender before distributing.
Quick Start
Common Workflows
Prepare for distribution
Look up the chain and token info needed before creating a distribution.
1
getChains()
List all supported chains — choose the target network
2
getApproveCalldata()
Generate ERC-20 approval using the chainId and tokenAddress
3
distribute()
Create distribution with chainId, tokenAddress, and tokenSymbol
Methods
sdk.catalogs.getChains()
Retrieve all supported blockchains. Returns the full configuration for every network Multisender supports, including chain ID, native currency, address type, explorer URL, and the multisenderContractAddress needed for ERC-20 token approvals.
Parameters
No parameters
Returns
Chain[]
Array of all supported blockchain configurations
Errors
The request is not authorized
You do not have permission to access this resource
Notes
All chains are returned in a single array (not paginated)
multisenderContractAddress is the spender for ERC-20 approve() — null if not deployed on this chain
See Also
getChain()
Get details for a specific chain by ID
getApproveCalldata()
Use chainId for ERC-20 token approval
distribute()
Use chainId when creating a distribution
sdk.catalogs.getChain(chainId)
Retrieve configuration for a specific blockchain by chain ID. Key fields: multisenderContractAddress (spender for ERC-20 approve), rpcUrl (for custom RPC in prepare()), and explorerUrl (for building transaction links).
The multisenderContractAddress is the address that needs ERC-20 token approval. This is the same address returned as spender in getApproveCalldata() response.
Generate approval calldata
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
chainId | string | Yes | Chain ID as string (e.g. "1" for Ethereum, "137" for Polygon) |
Returns
Chain
Full chain configuration
Errors
Invalid chain id
The request is not authorized
You do not have permission to access this resource
Chain not found
See Also
getChains()
List all chains to find valid chainId values
getApproveCalldata()
Use chainId for ERC-20 approval calldata
Generated Code