NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4258 most downloaded on npm
Ethereum Standard Library
Last release 4 days ago
30 Sep 2026
Ships fairly regularly
a new release about every 1 weeks
Nearly every release is documented
notes for 56 of the last 60 stable releases
53 versions withdrawn
withdrawn after publishing
16 years old
512 releases · first in 2011
`a5a63d4` Thanks @jxom! - Explicitly widened WebAuthn getFn/createFn to avoid downstream type conflicts.
```diff ts twoslash Attribution.toDataSuffix({ codes: ['baseapp', 'morpho'],
#138 29a2f43 Thanks @wbj-cb! - Breaking: Aligned to latest ERC-8021 specification. Modified Attribution.toDataSuffix parameters to include codeRegistry instead of registryAddress.
Attribution.toDataSuffix({
codes: ['baseapp', 'morpho'],
- registryAddress: '0xcccccccccccccccccccccccccccccccccccccccc',
+ codeRegistry: {
+ address: '0xcccccccccccccccccccccccccccccccccccccccc`
+ chainId: 8453,
+ }
})
f8bf590 Thanks @jxom! - Breaking: Renamed TransactionEnvelope* to TxEnvelope*.
One column per quarter.
`e63c3b2` Thanks @jxom! - Tweaked WebAuthnP256.createCredential to accept challenge of type Hex.
`d11e1fb` Thanks @jxom! - Modified WebAuthnP256.verify to work with only clientDataJSON and authenticatorData
### Patch Changes - #133 `07a7bb0` Thanks @jxom! - Added Cbor module.
`896096d` Thanks @jxom! - Exported types required for inference.
`95458ee` Thanks @jxom! - Added TransactionRequest.fromRpc
`242558a` Thanks @jxom! - Fixed formatting between metadata and version on BaseError.
### Patch Changes - #126 `b4572ed` Thanks @jxom! - Added ox/erc8021 entrypoint.
`f61d713` Thanks @jxom! - Added version and docsOrigin to Errors.BaseError.
`a1c8a43` Thanks @jxom! - Added eth_sendRawTransactionSync to types.
### Patch Changes - #119 `447e386` Thanks @jxom! - Added ERC-7821 modules.
`8a08b24` Thanks @jxom! - Serialize type on TransactionRequest.toRpc.
`c154290` Thanks @jxom! - Added ABI-shorthand for AbiItem.{getSelector,getSignature,getSignatureHash}
AbiFunction.{encodeData,encodeResult,decodeData,decodeResult}
#113 e21cb3c Thanks @jxom! - Added support for specifying the ABI and signature name to:
AbiFunction.{encodeData,encodeResult,decodeData,decodeResult}AbiError.{encode,decode}AbiEvent.{encode,decode}Example:
import { AbiFunction } from "ox";
import { abi } from "./abi";
const data = AbiFunction.encodeData(abi, "approve", [
"0x0000000000000000000000000000000000000000",
1n,
]);
`8aaf1a4` Thanks @jxom! - Removed proxy packages. Metro (the problematic bundler) now respects package.json#exports.
`1cd8943` Thanks @jxom! - Updated dependencies.
`9be7919` Thanks @jxom! - Updated ox/erc8010 to latest spec changes.
`dec161a` Thanks @jxom! - Fixed signature type on ERC-6492 and ERC-8010.
Renamed WrappedSignature to SignatureErc6492
#104 4f4b635 Thanks @jxom! - Breaking(ox/erc6492:
WrappedSignature to SignatureErc6492WrappedSignature.WrappedSignature to SignatureErc6492.UnwrappedWrappedSignature.toHex to SignatureErc6492.wrapWrappedSignature.fromHex to SignatureErc6492.unwrap#104 4f4b635 Thanks @jxom! - Added ox/erc8010 entrypoint with SignatureErc8010 module.
### Patch Changes - #102 `5796d6d` Thanks @dan1kov! - Fixed signature destructuring on Authorization.fromTuple.
### Patch Changes - #98 `96c2046` Thanks @mmv08! - Added handling for bigint chain IDs in TypedData.extractEip712DomainTypes.
`9a9ef21` Thanks @jxom! - Fixed zeroish conversion of chainId and nonce in Authorization.fromTuple.
### Patch Changes - #94 `301c319` Thanks @jxom! - ERC-4337: Added UserOperation.fromPacked.
### Patch Changes - #92 `b6eaa05` Thanks @jxom! - Added support for EntryPoint 0.8.
`ce19a08` Thanks @jxom! - Added stack to Provider.InternalError.
### Patch Changes - #74 `72209ef` Thanks @danpopenko! - Added extensions support for WebAuthnP256.sign.
72209ef Thanks @danpopenko! - Added extensions support for WebAuthnP256.sign.`9fd0bf0` Thanks @jxom! - Added ECDH (Elliptic Curve Diffie-Hellman) shared secrets to P256, Secp256k1, and WebCryptoP256 modules. This enables secure
9fd0bf0 Thanks @jxom! - Added ECDH (Elliptic Curve Diffie-Hellman) shared secrets to P256, Secp256k1, and WebCryptoP256 modules. This enables secure key agreement between parties using elliptic curve cryptography for both secp256k1 and secp256r1 (P256) curves, with support for both @noble/curves (for P256 and Secp256k1) implementation and Web Crypto APIs (WebCryptoP256).
P256.getSharedSecretSecp256k1.getSharedSecretWebCryptoP256.getSharedSecret9fd0bf0 Thanks @jxom! - Added createKeyPair helper functions for Bls, P256, and Secp256k1 modules. These functions provide a convenient way to generate complete key pairs (private key + public key) in a single operation, simplifying key generation workflows and reducing the need for separate randomPrivateKey and getPublicKey calls.
9fd0bf0 Thanks @jxom! - Added Ed25519 and X25519 modules. The Ed25519 module provides functionality for creating key pairs, signing messages, and verifying signatures using the Ed25519 signature scheme. The X25519 module enables Elliptic Curve Diffie-Hellman (ECDH) key agreement operations for secure shared secret derivation.
`74e47c5` Thanks @jxom! - Added Keystore.toKey and Keystore.toKeyAsync to derive a key from a JSON Keystore using a password.
`7fc1da0` Thanks @jxom! - Breaking(`Keystore`): Keystore derivation functions (e.g. Keystore.pbkdf2) now return a tuple of the key and derivation opti
7fc1da0 Thanks @jxom! - Breaking(Keystore): Keystore derivation functions (e.g. Keystore.pbkdf2) now return a tuple of the key and derivation options,
instead of an object with the key and options.
import { Keystore } from 'ox'
- const key = Keystore.pbkdf2({ password: 'testpassword' })
+ const [key, opts] = Keystore.pbkdf2({ password: 'testpassword' })
7fc1da0 Thanks @jxom! - Breaking(Keystore): Keystore.decrypt function interface no longer requires an object as the second parameter, now it only requires the key itself.
import { Keystore } from 'ox'
const [key, opts] = Keystore.pbkdf2({ password: 'testpassword' })
const encrypted = await Keystore.encrypt(secret, key, opts)
+ const decrypted = await Keystore.decrypt(encrypted, key)
7fc1da0 Thanks @jxom! - Breaking(Keystore): Keystore.encrypt function interface has changed to require derivation options (opts).
import { Keystore } from 'ox'
const [key, opts] = Keystore.pbkdf2({ password: 'testpassword' })
- const encrypted = await Keystore.encrypt(secret, key)
+ const encrypted = await Keystore.encrypt(secret, key, opts)
`6090531` Thanks @jxom! - Updated dependencies.
### Patch Changes - #75 `27a1e28` Thanks @jxom! - Added Keystore module.
`09f72cb` Thanks @jxom! - Updated EIP-5792 APIs to the latest spec on RpcSchema.
`5247546` Thanks @jxom! - Fixed Provider.parseError case.
`ba67f11` Thanks @jxom! - Enhanced handling of arbitrary Provider errors.
`10e6449` Thanks @jxom! - Added case to fall back to cause.details for BaseError details.
#65 33712a5 Thanks @thomas779! - Added support for multiple credentialIds in WebAuthnP256.
10e6449 Thanks @jxom! - Added case to fall back to cause.details for BaseError details.
`6480607` Thanks @jxom! - Fixed AbiEvent.encode for zeroish arguments.
### Patch Changes - #60 `7ff54a2` Thanks @jxom! - Added BinaryStateTree (EIP-7864) module.
`076c6a2` Thanks @jxom! - Removed redundant pure annotation.
`980f0e2` Thanks @jxom! - Fixed TSDoc.
`0b5182f` Thanks @jxom! - Fixed build process for typedef generation.
`74ceae4` Thanks @jxom! - Fixed Provider.parseError behavior.
`ddaed51` Thanks @jxom! - Fixed parsing of Provider RPC errors.
`e541cec` Thanks @jxom! - Modified fallback RPC Errors to RpcResponse.InternalError.
`5d007ae` Thanks @jxom! - Added RpcResponse.parseErrorObject and Provider.parseErrorObject.
`94ec558` Thanks @jxom! - Added BlockOverrides & StateOverrides modules.
`1406e22` Thanks @jxom! - Added ERC-4337 utilities.
### Patch Changes - #45 `48b896f` Thanks @deodad! - Ensured addresses are checksummed when creating SIWE messages
`c09d165` Thanks @jxom! - Added checksumAddress as an option to AbiParameters.{encode|decode}.
### Patch Changes - #40 `47e306d` Thanks @jxom! - ox/erc6492: Added universal signature verification exports.
### Patch Changes - #37 `39604df` Thanks @jxom! - Added ox/erc6492 entrypoint.
`15f9863` Thanks @jxom! - Added assertion for ABI-encoding integer ranges.
`e4104cd` Thanks @jxom! - Added extraEntropy option to Secp256k1.sign & P256.sign.
`9ad0d2c` Thanks @jxom! - Added extra entropy to signature generation.
`4f40358` Thanks @jxom! - Tweaked RpcResponse and Provider errors to have optional parameters.
`6e4b635` Thanks @jxom! - Derive EIP-712 Domain type if not provided in TypedData.serialize.
`2f0fc9b` Thanks @jxom! - Breaking: Removed .parseError property on functions. Use the .ErrorType property instead. Example
### Patch Changes - #25 `5da9efb` Thanks @tmm! - Shimmed WebAuthnP256.createCredential for 1Password Firefox Add-on.
`33b5123` Thanks @tmm! - Updated Provider errors.
Your coding agent can read these notes before it upgrades. Set up the MCP server →