⏬🚀 Fetch the most up-to-date ABI of verified Smart Contracts (including proxy implementations) from Etherscan in seconds!
- Fetch the ABI of a contract from an address and save it to
abis/ContractName.json
:
npx etherscan-abi 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984
- Note that if a standard proxy is detected, the proxy's implementation ABI will automatically be fetched:
npx etherscan-abi 0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9
- You can optionally provide a
target
directory path, an EtherscanapiKey
(to bypass the default query rate limit), or specify anetwork
on which to query the Smart Contract's source code (by name or chainId, decimal or hexadecimal):
npx etherscan-abi --target abis/uniswap/ \
--apiKey ... \
--network polygon \
0xb33EaAd8d922B1083446DC23f610c2567fB5180f
const { ethers } = require("ethers");
const { getContractAt } = require("etherscan-abi");
getContractAt(
"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",
new ethers.providers.JsonRpcProvider("...")
)
.then((uni) => uni.balanceOf("..."))
.then(console.log);
npm install etherscan-abi
yarn add etherscan-abi