Fast, minimal, and type-safe developer tools for the crypto ecosystem. Zero dependencies. Provider agnostic. Open source.
npm install @pulsadev/multicall
import { Multicall } from '@pulsadev/multicall' // Works with viem, ethers, or a plain URL const mc = new Multicall('https://eth.llamarpc.com') // Batch 100 calls into a single RPC request const results = await mc.call([ { target: USDC, allowFailure: true, callData: '0x18160ddd' }, { target: USDT, allowFailure: true, callData: '0x18160ddd' }, { target: DAI, allowFailure: true, callData: '0x18160ddd' }, ]) // Auto-chunking, retry, revert decoding — all built in const balance = await mc.getEthBalance('0xd8dA...6045')
Tools that crypto developers actually need.
Batch hundreds of contract reads into a single RPC call. Provider agnostic, auto-chunking, retry with fallback.
Lightweight ABI encoding, decoding, and type inference. Full Solidity type coverage with zero runtime cost.
Decode any EVM transaction input data against known function signatures. Human-readable output for any calldata.
Accurate gas estimation across EVM chains. EIP-1559 aware with historical percentile analysis and priority fee suggestions.
Every feature that existing libraries lack.
viem, ethers v5/v6, EIP-1193, or a plain RPC URL. No vendor lock-in, ever.
Large batches split by call count and data size automatically. No RPC limits.
Exponential backoff with fallback to individual calls when batches fail.
Human-readable Error(string) and Panic(uint256) reasons on every failed call.
Every major EVM chain supported. Canonical Multicall3 address auto-resolved.
~31 KB. Pure keccak256. ESM + CJS. Full TypeScript declarations included.
Install a package and start building in under a minute. MIT licensed, open source, forever.