paulmillr/micro-eth-signer
Minimal library for Ethereum transactions, addresses and smart contracts.
📋 Changes
- Hardening changes related to May 2026 audit
- Add support for BLS validator & legacy keystores in new `advanced/keystore.js` submodule
- Add support for Clear Signing (ERC-7730)
- tx: fix EIP-4844 fee calculation
- ssz: add support for progressive ssz (EIP-7688)
- ssz: support for fulu (osaka) and fixed support for electra by @EvilJordan in https://github.com/paulmillr/micro-eth-signer/pull/43
- net: fix (unused) chainlink tokens dai address
✨ New Contributors
- @EvilJordan made their first contribution in https://github.com/paulmillr/micro-eth-signer/pull/43
- Full Changelog: https://github.com/paulmillr/micro-eth-signer/compare/0.18.1...0.19.0
Re-publishing 0.18.0, because GitHub Actions is a failure. https://github.com/paulmillr/micro-eth-signer/releases/tag/0.18.0 **Full Changelog**: https://github.com/paulmillr/micro-eth-signer/compare/0.18.0...0.18.1
📋 Changes
- Remove verkle submodule. It was removed from eth roadmap.
- fix: remove tx value range check in non-strict mode by @lgiussan in https://github.com/paulmillr/micro-eth-signer/pull/40
- fix: handle tuple array type in MapType definition by @xMuratY in https://github.com/paulmillr/micro-eth-signer/pull/41
- Update jsbt dev dependency, enable immutable releases on GitHub
✨ New Contributors
- @lgiussan made their first contribution in https://github.com/paulmillr/micro-eth-signer/pull/40
- @xMuratY made their first contribution in https://github.com/paulmillr/micro-eth-signer/pull/41
- Full Changelog: https://github.com/paulmillr/micro-eth-signer/compare/0.17.3...0.18.0
📋 Changes
- fix: correct export path for ./advanced/abi.js in package.json by @odalmaz in https://github.com/paulmillr/micro-eth-signer/pull/39
✨ New Contributors
- @odalmaz made their first contribution in https://github.com/paulmillr/micro-eth-signer/pull/39
- Full Changelog: https://github.com/paulmillr/micro-eth-signer/compare/0.17.2...0.17.3
📋 Changes
- Add back export maps for text editor autocompletion
📋 Changes
- Upgrade to stable noble v2
📋 Changes
- Upgrade deps to noble v2 beta
- Move submodules into 3 dirs: core, net, advanced
- core now contains rlp, address, tx-internal, tx
- advanced now contains abi, ssz, kzg, verkle
- abi-decoder got split into abi-decoder & abi-mapper
📋 What's Changed
- Increase minimum node.js version to v20.19.
- The package is now ESM-only. Node v20.19+ supports loading ESM modules from Common.js code
- Decrease package size from 306KB to 242KB, unpacked size from 2.3MB to 1.3MB
- Use noble-hashes v2 beta
- Increase tx data limit to 512KB as per EIP-7907
✨ New Contributors
- @bee344 made their first contribution in https://github.com/paulmillr/micro-eth-signer/pull/38
- Full Changelog: https://github.com/paulmillr/micro-eth-signer/compare/0.15.0...0.16.0
📋 Changes
- Rename exports from /module to /module.js
- kzg: Implement PeerDAS from EIP-7594
- net: add ots api to web3provider
- Update dependencies
📋 Changes
- IMPORTANT: change SIGN logic, use hedged signatures by default. Closes https://github.com/paulmillr/micro-eth-signer/issues/31. Commit https://github.com/paulmillr/micro-eth-signer/commit/83a29461411f3ec97e895ab1c98ef829bc676933
- sign: ban generated signatures with recovery id = 2 or 3. This has been long disallowed in ETH yellow paper. Chance of getting such sig is 1 in 2^128 (very rare)
- ssz: add hardfork-specific data structures
- Make package erasableSyntax-friendly: Replace js imports with ts
- Generate provenance for standalone built files in github releases. You can verify standalone built files using github CLI:
📋 Changes
- Use typescript verbatimModuleSyntax to support future node.js type stripping
- Update dependencies
📋 Changes
- Fix bug in web3provider for empty addresses
📋 Changes
- Web3Provider: Add support for ERC1155 and nft balances
📋 Changes
- Upgrade dependencies
- Speed-up verkle, delay init until first run
- Remove bigint literals
📋 Changes
- Transaction: Allow zero address when deploying contract
- Fix ABI decoding not accepting 0-argument inputs
Implement experimental Verkle cryptography in `/verkle` submodule. **Full Changelog**: https://github.com/paulmillr/micro-eth-signer/compare/0.12.0...0.12.1
📋 Changes
- Add support for [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) account abstraction transactions (type=4)
- Add support for [EIP-7495](https://eips.ethereum.org/EIPS/eip-7495) SSZ stable containers
📋 Changes
- Implement EIP-191 and EIP-712 message signing
- Implement EIP-4844 KZG in pure JS
- Rename ArchiveNodeProvider to Web3Provider
- Export `/address` module
- Upgrade noble-curves to v1.6, noble-hashes to v1.5
📋 Changes
- Remove `FetchProvider`. All code should now be using [micro-ftch](https://github.com/paulmillr/micro-ftch) instead
- Add `Transaction#fee`
- Remove `Transaction#calcAmounts`
- Improve ESM / CJS compatibility (remove CJS masquerading)
📋 Changes
- Rename utils ethDecimal and gweiDecimal to weieth and gweieth
📋 Changes
- Add ArchiveNodeProvider: fetching account balances and history from archive nodes (see [erigon docs](https://github.com/ledgerwatch/erigon))
- Implement [SSZ encoding](https://ethereum.org/en/developers/docs/data-structures-and-encoding/ssz/), used in consensus layer
- Rename addr.verifyChecksum to addr.isValid. Force 0x prefix
- Fix typescript autocomplete by moving compiled files from `lib` to root dir
- Update dependency micro-packed
📋 Changes
- Add support for eip1191 addresses
- Fix calculation of tx `amountWithFee`
📋 Changes
- Add support for EIP4844 transaction type from Dencun
- `Transaction` improvements
- Improve transaction validation: now emits an array of errors for all fields
- Stricter optional transaction validation: errors on technically correct, but bad values
- `raw` property is now human-readable and easy to parse visually
- Add `FetchProvider` that consumes `fetch` built-in function and creates a Web3API-compatible interface
- Easy random key / address generation using `addr.random()`
- Add `messenger` to sign and verify messages by private key
- + 2 more
Improve ABI parsing to eliminate some undefined behavior. **Full Changelog**: https://github.com/paulmillr/micro-eth-signer/compare/0.7.0...0.7.2
📋 Changes
- Integrate micro-web3:
- Decode transactions and events
- Typesafe ABI parser
- Call smart contracts easily
- Switch package to hybrid common.js-esm
Update dependencies **Full Changelog**: https://github.com/paulmillr/micro-eth-signer/compare/0.6.4...0.6.5
Update dependencies. **Full Changelog**: https://github.com/paulmillr/micro-eth-signer/compare/0.6.3...0.6.4
Update dependencies **Full Changelog**: https://github.com/paulmillr/micro-eth-signer/compare/0.6.2...0.6.3
Testing automatic `npm publish` with github actions **Full Changelog**: https://github.com/paulmillr/micro-eth-signer/compare/0.6.1...0.6.2
Update noble-curves **Full Changelog**: https://github.com/paulmillr/micro-eth-signer/compare/0.6.0...0.6.1
