Release Notes

eth-account v0.12.1 (2024-04-02)

Improved Documentation

  • Update documentation to include blob transaction signing example. (#258)

eth-account v0.12.0 (2024-04-01)


  • Import cytoolz methods via eth_utils instead of cytoolz directly (#251)

Improved Documentation

  • Add encode_typed_data to list of functions that return a SignableMessage (#247)


  • Add support for type 3, BlobTransaction, introduced by the Cancun network upgrade. (#253)

Internal Changes - for eth-account Contributors

  • Bump deps to hexbytes>=1.2.0 and eth-rlp>=2.1.0 (#254)

eth-account v0.11.0 (2024-02-05)

Breaking Changes

  • Drop support for python 3.7 (#248)

Internal Changes - for eth-account Contributors

  • Change older % and .format strings to use f-strings (#245)

  • Merge template updates, notably use pre-commit for linting and change the name of the master branch to main (#248)


  • Remove deprecated signTransaction, it has been replaced by sign_transaction (#244)

eth-account v0.10.0 (2023-10-30)


  • Deprecate encode_structured_data in favor of new encode_typed_data (#235)

Improved Documentation

  • Added usage notes and example for encode_structured_data (#233)


  • Add new encode_typed_data to better handle EIP712 message signing (#235)

  • Added option to call encode_typed_data with a single dict arg in addition to the existing 3-dict style (#238)

  • Add sign_typed_data as a method of the Account class (#239)

Internal Changes - for eth-account Contributors

  • Added tests for encode_structured_data for easier comparison with Metamask’s SignTypedData (#233)

  • Bump version for node and ethers.js in integration tests, update ethers usage to match (#236)

  • Add build.os to readthedocs settings (#237)

  • Add upper pin to hexbytes dependency to due incoming breaking change (#240)

  • Add tests comparing output of signed EIP712 messages with metamask and ethers (#241)

eth-account v0.9.0 (2023-06-07)

Breaking Changes

  • drop python3.6 support from setup (#228)

Improved Documentation

  • remove notices of Draft status for eips 712 and 191 (#222)


  • Add support for Python 3.11 (#212)

Internal Changes - for eth-account Contributors

  • Upgrade Node from v12.x to v18.x in tests (#217)

  • pulled full new node_v18 install script (#223)

  • bump versions for docs dependencies (#224)

  • add sphinx_rtd_theme to docs/ extensions list (#225)

  • merge in updates from python project template (#288)

eth-account v0.8.0 (2022-12-15)


  • update all references to deprecated eth_abi.encode_abi to eth_abi.encode (#200)

Performance improvements

  • Reduce the number of pbkdf2 iterations to speed up tests (#77)

Deprecations and Removals

  • remove deprecated methods that were noted to go in v0.5 (#195)

Internal Changes - for eth-account Contributors

  • add coverage reporting to pytest (#192)

  • Use updated circleci Python images, fix Sphinx warning (#194)

Miscellaneous changes

eth-account v0.7.0 (2022-08-17)


  • bump ansi-regex to 5.0.1 to fix minor ReDos vulnerability (#129)

  • Enable lint runs again on CI (#166)

  • fix DoS-able regex pattern (#178)

  • Allow towncrier to build the release notes again (#185)

Improved Documentation

  • Add example to generate multiple accounts from a mnemonic (#153)

  • Pin Jinja2 at >=3.0.0,<3.1.0; pin towncrier==18.5.0; open up Sphinx requirement to allow >=1.6.5,<5. (#156)

  • added missing quotes to readme dev environment setup example (#172)

Miscellaneous changes

Breaking changes

  • Change bitarray dependency requirement to be >=2.4,<3 since 2.4 has wheels for all platform types. (#154)

  • Fix errors in EIP-712 signing (#175)

eth-account v0.6.1 (2022-02-24)


  • Allow encoding of structured data containing bytes (#91)

Miscellaneous changes

eth-account v0.6.0 (2022-01-20)


  • Update dependencies: - eth-abi - eth-keyfile - eth-keys - eth-rlp - pyrlp - eth-utils (#138)

  • Add support for Python 3.9 and 3.10 (#139)

Deprecations and Removals

  • Drop support for Python 3.6 (#139)

eth-account v0.5.9 (2022-08-04)


  • fix DoS-able regex pattern (#178)

Miscellaneous changes

eth-account v0.5.8 (2022-06-06)

Miscellaneous changes

eth-account v0.5.7 (2022-01-27)


  • Add support for Python 3.9 and 3.10 (#139)


  • recover_message now raises an eth_keys.exceptions.BadSignature error if the v, r, and s points are invalid (#142)

eth-account v0.5.6 (2021-09-22)


  • An explicit transaction type is no longer required for signing a transaction if we can implicitly determine the transaction type from the transaction parameters (#125)


  • When signing a transaction, the regular JSON-RPC structure is now expected as input and is converted to the appropriate rlp transaction structure when signing (#125)

  • Fix string interpolation in ValidationError message of _hash_eip_191_message (#128)

Improved Documentation

  • Updated docs for sign_transaction to show that transaction type can be implicitly determined based on transaction parameters if one is not provided (#126)

  • Add encode_defunct to list of example message encoders (#127)

eth-account v0.5.5 (2021-07-21)


  • Added support for EIP-2718 (Typed Transaction) and EIP-2939 (Access List Transaction) (#115)

  • Added support for EIP-1559 (Dynamic Fee Transaction) (#117)


  • Structured messages (EIP-712) new permit leaving some (but not all) domain fields undefined. (#72)

Internal Changes - for eth-account Contributors

  • Upgrade project template, of note: a new mypy & pydocstyle, and types being exported correctly. (#121)

Miscellaneous changes

v0.5.3 (2020-08-31)

Performance improvements

  • RLP encoding/decoding speedup by using rlp v2alpha1, which has a rust implementation. (#104)

v0.5.2 (2020-04-30)


  • Makes sure that the raw txt files needed for Mnemonics get packaged with the release. (#99)


Released 2020-04-23

  • Fix a crash in signing typed messages with arrays #97

  • Replace attrdict with NamedTuple to silence a deprecation warning #76

  • Run more doctests & improve docs #94


Released 2020-03-30

  • Add Python 3.8 support #86

  • Add opt-in support for Mnemonic seed phrases #87 (NOTE: This API is unaudited and likely to change)

  • Dependency change: support eth-keys v0.3.* #69


Released 2019-05-06


Released July 24, 2018

  • Support eth_keys.datatypes.PrivateKey in params that accept a private key.

  • New docs for Signers

  • Under the hood: add a new BaseAccount abstract class, so that upcoming signing classes can implement it (be on the lookout for upcoming hardware wallet support)


Released May 27, 2018

  • Implement __eq__ and __hash__ for LocalAccount, so that accounts can be used in set, or as keys in dict, etc.


Released Apr 25, 2018

  • Compatibility with pyrlp v0 and v1


Released Apr 23, 2018

  • Accept ‘from’ in signTransaction, if it matches the sending private key’s address

v0.2.0 (stable)

Released Apr 19, 2018

  • Audit cleanup is complete

  • Stopped requiring chainId, until tooling to automatically derive it gets better (Not that transactions without chainId are potentially replayable on fork chains)


Released Apr 6, 2018

  • Ability to sign an already-hashed message

  • Moved eth_sign-style message hashing to eth_account.messages.defunct_hash_message()

  • Stricter transaction input validation, and better error messages. Including: to field must be checksummed.

  • PyPy3 support & tests

  • Upgrade dependencies

  • Moved non-public interfaces to internal module

  • Documentation


  • Imported the local signing code from’s w3.eth.account

  • Imported documentation and added more

  • Imported tests and pass them


  • Launched repository, claimed names for pip, RTD, github, etc