SkillAgentSearch skills...

TypeChain

🔌 TypeScript bindings for Ethereum smart contracts

Install / Use

/learn @dethcrypto/TypeChain
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <img src="/docs/images/typechain-logo.png" width="300" alt="TypeChain"> <p align="center">🔌 TypeScript bindings for Ethereum smart contracts</p> <p align="center"> <a href="https://github.com/ethereum-ts/TypeChain/actions"><img alt="Build Status" src="https://github.com/ethereum-ts/TypeChain/workflows/CI/badge.svg"></a> <img alt="Downloads" src="https://img.shields.io/npm/dm/typechain.svg"> <a href="/package.json"><img alt="Software License" src="https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square"></a> </p> <p align="center"> <i>Used by the best:</i> <br/> <img src="https://raw.githubusercontent.com/ethereum-ts/TypeChain/master/docs/images/maker-logo.png" height="110" alt="Maker DAO" /> <a href="https://github.com/Uniswap/uniswap-v3-core/blob/main/hardhat.config.ts#L1"><img src="https://raw.githubusercontent.com/ethereum-ts/TypeChain/master/docs/images/uniswap-logo.png" height="90" alt="Uniswap" /></a> <a href="https://github.com/aave/protocol-v2/blob/master/hardhat.config.ts#L16"><img src="https://raw.githubusercontent.com/ethereum-ts/TypeChain/master/docs/images/aave-logo.png" height="60" alt="AAVE" /></a> <br/> <a href="https://github.com/ethereum-optimism/optimism/blob/master/packages/contracts/hardhat.config.ts#L14"><img src="https://raw.githubusercontent.com/ethereum-ts/TypeChain/master/docs/images/optimism-logo.png" height="90" alt="Optimism" /></a> <a href="https://github.com/matter-labs/zksync/blob/9687049af1efbd14d8e47d97ebea643e1516da9d/contracts/hardhat.config.ts#L4"><img src="https://raw.githubusercontent.com/ethereum-ts/TypeChain/master/docs/images/zksync-logo.png" height="100" alt="zkSync" /></a> <a href="https://github.com/KyberNetwork/dao_sc/blob/master/hardhat.config.ts#L8"><img src="https://raw.githubusercontent.com/ethereum-ts/TypeChain/master/docs/images/kyber-logo.png" height="100" alt="Kyber" /></a> <a href="https://github.com/OffchainLabs/arbitrum/blob/133ac08dbf423ce7ca79343260869e46bf02a543/packages/arb-bridge-eth/package.json#L39"><img src="https://raw.githubusercontent.com/ethereum-ts/TypeChain/master/docs/images/arbitrum-logo.png" height="100" alt="Arbitrum" /></a> </p> </p>

Soft deprecation notice

I now consider TypeChain to be legacy software and no longer use it personally. The ecosystem around Abitype, Wagmi, Viem got really good and it provides a superior Developer Experience by parsing ABIs directly within the TypeScript type system. Hardhat can also be used with Viem. I recommend giving it a try!

Critical fixes will be merged, but active development should not be expected. Thanks for all these years!

Features ⚡

  • static typing - you will never call not existing method again
  • IDE support - works with any IDE supporting Typescript
  • extendible - work with many different tools: ethers.js, hardhat, truffle, Web3.js or you can create your own target
  • frictionless - works with simple, JSON ABI files as well as with Truffle/Hardhat artifacts

Installation

npm install --save-dev typechain

You will also need to install a desired target for example @typechain/ethers-v6. Learn more about targets

Take note, that code generated by TypeChain requires TypeScript version 4.3 or newer.

Packages 📦

| Package | Version | Description | Examples | | ------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | typechain | npm | Core package | - | | @typechain/ethers-v5 | npm | Ethers ver 5 support (⚠️ requires TS 4.0 >=) | example | | @typechain/ethers-v6 | npm | Ethers ver 6 support (⚠️ requires TS 4.0 >=) | example | | @typechain/starknet.js | npm | Starknet.js ver 3.9 | | | @typechain/truffle-v5 | npm | Truffle ver 5 support | example | | @typechain/web3-v1 | npm | Web3 ver 1 support | example | | @typechain/hardhat | npm | Hardhat plugin | example-ethers example-truffle | | @typechain/truffle-v4 | npm | Truffle ver 4 support (deprecated) | example | | @typechain/ethers-v4 | npm | Ethers ver 4 support (deprecated) | example |

eth-sdk

TypeChain generates only TypeScript typings (d.ts) files, if you're looking for "opinionated", "batteries included" solution check out our new project: eth-sdk. It generates typesafe, ready to use ethers.js wrappers and uses etherscan/sourcify to automatically get ABIs based only on smart contract addresses. Under the hood, eth-sdk relies on TypeChain.

Usage

CLI

Note: If you use hardhat just use hardhat plugin.

typechain --target=(ethers-v5|ethers-v6|truffle-v4|truffle-v5|web3-v1|path-to-custom-target) [glob]
  • glob - pattern that will be used to find ABIs, remember about adding quotes: typechain "**/*.json", examples: ./abis/**/*.abi, ./abis/?(Oasis.abi|OasisHelper.abi).
  • --target - ethers-v5, ethers-v6, truffle-v4, truffle-v5, web3-v1 or path to your custom target. Typechain will try to load package named: @typechain/${target}, so make sure that desired package is installed.
  • --out-dir (optional) - put all generated files to a specific dir.
  • --always-generate-overloads (optional) - some targets won't generate unnecessary types for overloaded functions by default, this option forces to always generate them
  • --discriminate-types (optional) - ethers-v5 and ethers-v6 will add an artificial field contractName that helps discriminate between contracts

TypeChain always will rewrite existing files. You should not commit them. Read more in FAQ section.

Example:

typechain --target ethers-v6 --out-dir app/contracts './node_modules/neufund-contracts/build/contracts/*.json'

Videos

  • [Devcon5 Video (2019)](https://www.youtube.com/w
View on GitHub
GitHub Stars2.8k
CategoryDevelopment
Updated7h ago
Forks381

Languages

TypeScript

Security Score

100/100

Audited on Mar 29, 2026

No findings