NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4006 most downloaded on npm
Strict TypeScript types for Ethereum ABIs
Last release 2 months ago
16 Jul 2026
Release timing varies
gaps range from 2 weeks to 8 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
192 releases · first in 2022
One column per quarter.
Deprecated human-readable ABI utilities in favor of Ox's Abi, AbiItem, AbiParameter, and AbiParameters modules.
Deprecated human-readable ABI utilities in favor of Ox's Abi, AbiItem, AbiParameter, and AbiParameters modules. (#309)
Deprecated abitype/zod schemas in favor of Ox's ABI and EIP-712 Typed Data schemas from ox/zod.
Fixed Zod identifier regex to anchor start and end, rejecting invalid identifiers like café, 2g, and hello👋.
café, 2g, and hello👋. (#296)Added max depth guard for named tuple tail recursion
Trimmed generated tuple names. (`cd23231`)
cd23231)Updated generated ABI parameter tuple names (`8afc256`)
Added experimental named tuple support to AbiParametersToPrimitiveTypes
AbiParametersToPrimitiveTypes (#281)Fixed struct name collision in parseAbiParameter cache
parseAbiParameter cache (#282)`599ca2e` Thanks @tmm! - Enabled trusted publisher
### Minor Changes - #278 `c15ef92` Thanks @wobsoriano! - Added support for Zod v4.
c15ef92 Thanks @wobsoriano! - Added support for Zod v4.`3446180` Thanks @khaidarkairbek! - Fixed parseAbi runtime logic to support "payable" function argument modifier.
3446180 Thanks @khaidarkairbek! - Fixed parseAbi runtime logic to support "payable" function argument modifier.### Patch Changes - #261 `889e85d` Thanks @KedziaPawel! - Fixed parseAbiItem fallback signature parsing
889e85d Thanks @KedziaPawel! - Fixed parseAbiItem fallback signature parsing`20cb1fd` Thanks @tmm! - Fixed parseAbi caching for structs.
#259 f417a23 Thanks @KedziaPawel! - Fixed formatAbiItem fallback item formatting.
#257 ee60e67 Thanks @freemanzMrojo! - Updated TypedDataDomain chainId to support uint256 values via bigint.
### Patch Changes - #248 `0870111` Thanks @tmm! - Removed inputs from AbiFallback type and Zod schema.
### Patch Changes - #244 `8a5e5dc` Thanks @tmm! - Fixed human-readable ABI item parsing with nested tuple parameters.
`13132c5c8a8fb4a332e1032c1279136f0683c29b` Thanks @tmm! - Switched Register to interface to fix declaration merging.
13132c5c8a8fb4a332e1032c1279136f0683c29b Thanks @tmm! - Switched Register to interface to fix declaration merging.`f412bf8fa16d6f40829d841b1813baa031b66bfe` Thanks @tmm! - Switched to camelCase generic names for core type utilities.
f083a7c20709a28b04c987e2ff6048bf25324759 Thanks @tmm! - Changed type parameters and register properties to camelCase.f412bf8fa16d6f40829d841b1813baa031b66bfe Thanks @tmm! - Switched to camelCase generic names for core type utilities.### Patch Changes - #232 `22a5f3a` Thanks @xenoliss! - Fixed type detection when using an array in ParseAbiParameters
### Patch Changes - #229 `a9300dd` Thanks @kyscott18! - Fixed regex for fallback signatures.
a9300dd Thanks @kyscott18! - Fixed regex for fallback signatures.`6bc52e6` Thanks @tmm! - Marked as stable v1.
### Patch Changes - #212 `1a1a114` Thanks @shuoer86! - Fixed typos
### Patch Changes - #205 `6b99d60` Thanks @frangio! - Fixes an error with TypeScript 5.2.2 in CommonJS projects..
### Patch Changes - #200 `56f8201` Thanks @mathieu-bour! - Marked Abi Zod schema as readonly.
56f8201 Thanks @mathieu-bour! - Marked Abi Zod schema as readonly.import { erc20Abi } from 'abitype/test'
#198 a12abfd Thanks @tmm! - Breaking: Renamed 'abitype/test' entrypoint to 'abitype/abis'.
- import { erc20Abi } from 'abitype/test'
+ import { erc20Abi } from 'abitype/abis'
Breaking: Removed zeroAddress export from 'abitype/abis'. You can copy it directly into your project if you still need to use it.
- import { zeroAddress } from 'abitype/abis'
+ export const zeroAddress = '0x0000000000000000000000000000000000000000' as const
Breaking: Renamed Config, DefaultConfig, and ResolvedConfig to Register, DefaultRegister, and ResolvedRegister respectively.
- import { Config, DefaultConfig, ResolvedConfig } from 'abitype'
+ import { Register, DefaultRegister, ResolvedRegister } from 'abitype'
To configure ABIType, target Register instead of Config:
declare module 'abitype' {
- export interface Config {
+ export interface Register {
BigIntType: bigint & { foo: 'bar' }
}
}
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
AbiFunction.inputs / AbiFunction.outputs
#194 380c9d9 Thanks @mathieu-bour! - Changed the following types to readonly in zod package:
AbiContructor.inputsAbiError.inputsAbiEvent.inputsAbiFunction.inputs / AbiFunction.outputs### Patch Changes - #192 `998fc3c` Thanks @Raiden1411! - Fixed an issue where Zod's parsed ABIs where not assignable to the Abi type.
998fc3c Thanks @Raiden1411! - Fixed an issue where Zod's parsed ABIs where not assignable to the Abi type.### Patch Changes - #187 `4a0131f` Thanks @tmm! - Added unknown support to Narrow
### Patch Changes - #185 `f5b27a8` Thanks @StanleyDing! - Fixed a bug where an empty string on the name property in AbiParameter wasn't allowed.
f5b27a8 Thanks @StanleyDing! - Fixed a bug where an empty string on the name property in AbiParameter wasn't allowed.### Patch Changes - #179 `f0f2503` Thanks @Raiden1411! - Fixed a bug on TypedDataToPrimitiveTypes where it would create an infinite cyclic type if the
f0f2503 Thanks @Raiden1411! - Fixed a bug on TypedDataToPrimitiveTypes where it would create an infinite cyclic type if the type was an array type of keyof TypedData.`ts type test = FormatAbiParameter<{ // ^? test = "(tuple)" type: "tuple"; components: [{ type: "tuple"; components: [{ type: "string" }] }]; }>; `
#175 af5af6b Thanks @Raiden1411! - Fixed a bug on formatAbiParameter where it would infer incorrectly if the nested elements of the components property had no name property and the type property was of type tuple type.
Before:
type test = FormatAbiParameter<{
// ^? test = "(tuple)"
type: "tuple";
components: [{ type: "tuple"; components: [{ type: "string" }] }];
}>;
After:
type test = FormatAbiParameter<{
// ^? type test = "((string))"
type: "tuple";
components: [{ type: "tuple"; components: [{ type: "string" }] }];
}>;
### Patch Changes - #176 `bf526d8` Thanks @tmm! - Fixed issue with format utils where empty name (e.g. name: '') would add extra space after type.
### Patch Changes - #170 `dbe16a2` Thanks @Raiden1411! - Fixed bug where type instantiation is excessively deep and possibly infinite when using forma
dbe16a2 Thanks @Raiden1411! - Fixed bug where type instantiation is excessively deep and possibly infinite when using formatAbiParameter with exactOptionalPropertyTypes set to false.### Patch Changes - #165 `27b763b` Thanks @Raiden1411! - Added zod EIP-712 typed data parser.
27b763b Thanks @Raiden1411! - Added zod EIP-712 typed data parser.### Patch Changes - #164 `ff7a76c` Thanks @ardislu! - Fixed human-readable identifiers to allow single leading dollar-sign or underscore, and disallow
### Minor Changes - #159 `267e335` Thanks @frangio! - Marked TypeScript as optional peer dependency ### Patch Changes - #162 `454cf87` Thanks @tmm! -
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →