NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1842 most downloaded on PyPI
web3: A Python library for interacting with Ethereum
Last release 1 months ago
31 Aug 2026
Ships fairly regularly
a new release about every 2 months
Most releases are documented
notes for 43 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
10 years old
253 releases · first in 2016
### Bugfixes - Add ens/specs to MANIFEST.in
Add ens/specs to MANIFEST.in ( #3039 )
- ENS name normalization now uses ENSIP-15 by default. This is technically a breaking change introduced by ENS but, according to ENSIP-15, 99% of exis…
Note: This release was missing the required ens/specs directory, so it was yanked
from Pypi in favor of v6.6.1
ENS name normalization now uses ENSIP-15 by default. This is technically a breaking change introduced by ENS but, according to ENSIP-15, 99% of existing names should be unaffected. ( #3024 )
Handle None in the formatting middleware ( #2546 )
Fix for a possible bug in construct_sign_and_send_raw_middleware where the signed transaction was sent as bytes and expected to be converted to hex by formatting later on. It is now explicitly sent as the hex string hash within the middleware. ( #2936 )
Fixes max_priority_fee_per_gas . It wasn’t falling back to eth_feeHistory since the MethodUnavailable error was introduced. ( #3002 )
Properly initialize logger in AsyncHTTPProvider . ( #3026 )
Fix AsyncWeb3.solidity_keccak to match Web3.solidity_keccak . ( #3034 )
Replaced transaction examples with unused account addresses. ( #2011 )
Removed obsolete docs for camelCase miner methods and deploy ( #2039 )
Update documentation relating to ENS only being available on mainnet. ENS is available on all networks where the ENS contracts are deployed. ( #3012 )
Add first steps section and tidy up learning resources ( #3013 )
Replace references to jasoncarver.eth with ens.eth . ( #3020 )
Adds “Hackathon Helpers” section to Resources page ( #3035 )
Update ENS Resolver ABI ( #1839 )
async_http_retry_request_middleware , an async http request retry middleware for AsyncHTTPProvider . ( #3009 )
Add eth_getStorageAt() support for EthereumTesterProvider . ( #3011 )
Add async support for ENS name-to-address resolution via async_name_to_address_middleware . ( #3012 )
Add async support for the sign-and-send raw transaction middleware via construct_async_sign_and_send_raw_middleware() . ( #3025 )
Remove some warnings from test output ( #2991 )
Introduced the logic for ENSIP-15 ENS name normalization. Originally this was done via a flag in this PR but changed to the default behavior in #3024 before release. ( #3000 )
#2997 , #3011 , #3023 , #3037
Removed references to deprecated middlewares with new tests to check default middlewares ( #2972 )
One column per quarter.
- Moved ethpm deprecation warning to only show when the module is explicitly enabled
Properly create a fresh cache for each instance of simple_cache_middleware if no cache is provided. Fixes a bug when using this middleware with multiple instances of Web3 . ( #2979 )
Fix potential race condition when writing cache entries in simple_cache_middleware ( #2981 )
Catch UnicodeDecodeError for contract revert messages that cannot be decoded and issue a warning instead, raising a ContractLogicError with the raw data from the response. ( #2989 )
Introduces resources page to documentation ( #2957 )
Completed docstrings for ContractFunction and AsyncContractFunction classes ( #2960 )
Added ‘unsupported by any current clients’ note to the Eth.sign_typed_data docs ( #2961 )
Removed list of AsyncHTTPProvider -supported methods, it supports them all now ( #2962 )
Modernize the filtering guide, emphasizing get_logs ( #2968 )
Removed references to defunct providers in IPCProvider docs ( #2971 )
Update Matomo analytics script to move to cloud services ( #2978 )
Add the sign_typed_data method to the AsyncEth class ( #2920 )
Add support for Solidity Panic errors, available since Solidity 0.8.0. Raises ContractPanicError with appropriate messaging based on the known panic error codes. ( #2986 )
lint-roll - dropped isort --recursive flag, not needed as of their v5 , added black ( #2930 )
Moved ethpm deprecation warning to only show when the module is explicitly enabled ( #2983 )
Update make release to check remote upstream is pointing to ethereum/web3.py. ( #2988 )
Removed pluggy from dev requirements ( #2992 )
#2960 , #2965
- add deprecation notice for the ethPM module
fix AttributeDicts unhashable if they contain lists recursively tupleizing them ( #2908 )
add deprecation notice for the ethPM module ( #2953 )
remove reference to the ability to specify a list of providers - you can’t anymore ( #2949 )
add deprecation notice for the ethPM module ( #2953 )
Update eth-tester to pull in Shanghai changes and make additional changes to fully support Shanghai with eth-tester . ( #2958 )
bump sphinx and readthedocs py versions ( #2945 )
re-compile test contracts with Solidity v0.8.20 ( #2951 )
Set towncrier settings in pyproject.toml to match the python project template and change newfragment type “doc” to “docs” ( #2959 )
- Add support for custom revert errors
Add support for custom revert errors ( #2795 )
Add the modify_transaction method to the AsyncEth class ( #2825 )
add show_traceback flag to is_connected to allow user to see connection error reason ( #2912 )
Add a data attribute on the ContractLogicError class that returns raw data returned by the node. ( #2922 )
Add support via result formatters for reward type trace actions on tracing calls. ( #2929 )
Typing was being ignored for the get_ipc_path and get_dev_ipc_path functions because of a missing None return. Those two methods now explicitly return None and have an Optional in their type definition. ( #2917 )
fix AsyncEventFilterBuilder looking for Web3 instead of AsyncWeb3 ( #2931 )
Add check for null withdrawal field on get_block response ( #2941 )
Add a decision tree guide for sending transactions ( #2919 )
Update references to master branch ( #2933 )
Cleanup Quickstart guide and next steps ( #2935 )
Cleanup Overview page links and context ( #2938 )
Added build to towncrier commands in Makefile ( #2915 )
Update win wheel CI builds to use python -m tox -r instead of specifying the tox executable directly. ( #2923 )
update pip and tox install on CI containers ( #2927 )
- Added breaking changes from pr2448 to v6 migration guide
Adds async version of eth_getUncleCount methods ( #2822 )
Add the sign_transaction method to the AsyncEth class ( #2827 )
Add the replace_transaction method to the AsyncEth class ( #2847 )
Use TraceFilterParams instead of FilterParams for trace_filter typing ( #2913 )
Add welcome banner for Ethereum newcomers ( #2905 )
Added breaking changes from pr2448 to v6 migration guide ( #2907 )
- remove camelCased method deprecation notices from web3.eth docs
Add tracing functionality back in via the tracing module, add formatters for human-readable input and output, and attach this module to Web3 on init / make it a default module. ( #2851 )
Add result formatters for withdrawals_root and withdrawals as part of Shanghai hard fork support. ( #2868 )
add eth_chainId to exception_retry_middleware whitelist ( #2892 )
Mark test_async_eth_sign with @pytest.mark.asyncio ( #2858 )
fix readthedocs broken version selector ( #2883 )
remove camelCased method deprecation notices from web3.eth docs ( #2882 )
Add doc blurb about multiple HTTPProviders with the same URL ( #2889 )
fix styling and external link formatting ( #2897 )
Bump pytest from 6.2.5 to 7+ because of CI DeprecationWarning ( #2863 )
Require eth-abi v4 stable ( #2886 )
remove unused docs dependencies and bump version of remaining ( #2890 )
Update go-ethereum integration test fixture to use the latest version of geth - v1.11.5 . ( #2896 )
Update geth_steps in CircleCI builds to pip install the proper version of py-geth . ( #2898 )
Update CircleCI windows orb path since it now uses python 3.11. ( #2899 )
Bump go version used in CI jobs that install and run go-ethereum and parameterize the version in circleci config file for ease of configuration. ( #2900 )
#2887
- fix dict_to_namedtuple unable to handle empty dict as input
fix dict_to_namedtuple unable to handle empty dict as input ( #2867 )
- Add the sign method to the AsyncEth class
Add the sign method to the AsyncEth class ( #2833 )
More accurately define the eth_call return type as HexBytes since the response is converted to HexBytes in the pythonic formatters and there are differences between HexBytes and bytes types. ( #2842 )
Set default block_identifier in ContractFunction.call() to None ( #2846 )
Remove unused module lines to instantiate the AsyncHTTPProvider ( #2789 )
Typos fix in docs ( #2817 )
Add/cleanup docs for the AsyncHTTPProvider in light of the new AsyncWeb3 class ( #2821 )
Remove user survey banner following close of survey ( #2831 )
Do not invoke setup.py directly; use python -m build where appropriate. ( #2714 )
clean up ignored unused imports ( #2838 )
Recompile test contracts with the new Solidity version 0.8.19 . ( #2840 )
Update py-geth version and re-generate integration test fixture with geth v1.11.2 . ( #2841 )
Use AsyncWeb3 class and preserve typing for the async api calls. ( #2819 )
Fix typing for CallOverrideParams and add proper request formatters for call state overrides. ( #2843 )
Remove python warning and doc notes related to unstable async providers. ( #2845 )
- Reorganized contract to contract.py, async_contract.py, base_contract.py and utils.py. In this change there was a small breaking change where the co…
add decode_tuples option to contract instantiation ( #2799 )
Fix ethpm import issues after making ipfshttpclient optional. ( #2775 )
Fix for recently-broken eth-tester exception message parsing for some exception cases. ( #2783 )
Added a v6 Migraion Guide ( #2778 )
Rebrand the library to lowercase “web3.py” ( #2804 )
remove references to Rinkeby or replace with Goerli ( #2815 )
Organize the eth module into separate files for better readability. ( #2753 )
Rename the newly-split eth module files to match convention. ( #2772 )
Re-compile all test contracts with latest Solidity version. Refactor test fixtures. Adds a script that compiles all test contracts to the same directory with selected Solidity version. ( #2797 )
Updates to isort and black required some formatting changes and isort config refactoring. ( #2802 )
Compile test contracts using newly-released Solidity version 0.8.18 . ( #2803 )
All exceptions inherit from a custom class. EthPM exceptions inherit from EthPMException, ENS exceptions inherit from ENSException, and all other web3.py exceptions inherit from Web3Exception ( #1478 )
Reorganized contract to contract.py, async_contract.py, base_contract.py and utils.py. In this change there was a small breaking change where the constructor of BaseContractCaller contract_function_class was defaulting to a ContractFunction now there is no default. This was done to separate the base class from the implementation. ( #2567 )
When calling a contract, use w3.eth.default_block if no block_identifier is specified instead of latest . ( #2777 )
Strict bytes type checking is now default for web3.py . This change also adds a boolean flag on the Web3 class for turning this feature on and off, as well as a flag on the ENS class for control over a standalone ENS instance. ( #2788 )
When a method is not supported by a node provider, raise a MethodUnavailable error instead of the generic ValueError. ( #2796 )
dict to AttributeDict conversion is no longer a default result formatter. This conversion is now done via a default middleware that may be removed. ( #2805 )
Removed deprecated manager.request_async and associated methods. ( #2810 )
removed Rinkeby from list of allowed chains in EthPM ( #2815 )
- Remove already-deprecated start_rpc and stop_rpc from the w3.geth.admin module.
Add async w3.eth.get_block_transaction_count ( #2687 )
Support Python 3.11 ( #2699 )
Load the AsyncHTTPProvider with default async middleware and default async modules, just as the HTTPProvider . ( #2736 )
Add support for Nethermind/Gnosis revert reason formatting ( #2739 )
Added async functionality to filter ( #2744 )
Get contract address from CREATE and CREATE2 opcodes ( #2762 )
Fixing abi encoding for multidimensional arrays. ( #2764 )
Some minor performance improvements to the SimpleCache class and simple cache middlewares (sync and async). ( #2719 )
Remove unnecessary await for generate_gas_price() method as it does not need to be awaited. Move this method to BaseEth to be used directly by both Eth and AsyncEth modules. ( #2735 )
Add user survey to docs banner ( #2720 )
Document improvements for private key info and account funding. ( #2722 )
Include eth-tester install note in quickstart ( #2755 )
Removal of Infura auto provider support. ( #2706 )
Removal of version module. ( #2729 )
Remove already-deprecated start_rpc and stop_rpc from the w3.geth.admin module. ( #2731 )
Use regex pattern for black command for tox / make lint linting commands. ( #2727 )
Use regex pattern for mypy command for tox / make lint linting commands. ( #2734 )
Remove internal method apply_formatter_to_array and use the method with the same name from the eth-utils library. ( #2737 )
#2751
Snakecase the processReceipt, processLog, createFilter, and getLogs methods ( #2709 )
Remove Parity module and references. ( #2718 )
Make the ipfshttpclient library opt-in via a web3 install extra. This only affects the ethpm ipfs backends, which rely on the library. ( #2730 )
- Async support for caching certain methods via async_simple_cache_middleware as well as constructing custom async caching middleware via async_constr
Async support for caching certain methods via async_simple_cache_middleware as well as constructing custom async caching middleware via async_construct_simple_cache_middleware . SimpleCache class was also added to the public utils module. ( #2579 )
Remove upper pins on dependencies ( #2648 )
Async support for beacon api. ( #2689 )
If the loop for a cached async session is closed, or the session itself was closed, create a new session at that cache key and properly close and evict the stale session. ( #2713 )
bump sphinx_rtd_theme version to fix missing unordered list bullets ( #2688 )
Fix bug to generate unique cache keys when multi-threading & with unique event loops for async. ( #2690 )
Properly release async_lock for session requests if an exception is raised during a task. ( #2695 )
move definition of RTD install requirements file from their dashboard into .readthedocs.yml , and remove unused sphinx-better-theme from requirements ( #2688 )
#2690 , #2694
Remove support for dictionary-based caches, for simple-cache-middleware, in favor of the internal SimpleCache class. ( #2579 )
Snakecase the clientVersion method ( #2686 )
change instances of createFilter to create_filter ( #2692 )
Remove SolidityError in favor of ContractLogicError ( #2697 )
Snakecase the solidityKeccak method ( #2702 )
Snakecase the fromWeb3 method ( #2703 )
Snakecase the toBytes, toHex, toInt, toJSON, and toText methods ( #2707 )
Snakecase the toAddress, isChecksumAddress, and toChecksumAddress methods ( #2708 )
- Protobuf dependency had a DoS-able bug. It was fixed in v4.21.6. See: https://nvd.nist.gov/vuln/detail/CVE-2022-1941
Protobuf dependency had a DoS-able bug. It was fixed in v4.21.6. See: https://nvd.nist.gov/vuln/detail/CVE-2022-1941 ( #2666 )
Added Chainstack link to quickstart docs. ( #2677 )
Remove Ropsten auto provider and the relevant references to Ropsten across the repo ( #2672 )
Clean up remaining uses of deprecated eth_abi methods. ( #2668 )
#2671 , #2682
- Protobuf dependency breaks at version 3.20.2 and above; pin to 3.20.1 for now.
Protobuf dependency breaks at version 3.20.2 and above; pin to 3.20.1 for now. ( #2657 )
Add new predefined block identifiers safe and finalized . ( #2652 )
- update all references to deprecated eth_abi.encode_abi to eth_abi.encode
Removed IBAN since it was an unused feature ( #2537 )
Update eth-tester dependency to v0.7.0-beta.1; Update eth-account version to
=0.7.0,<0.8.0 ( #2623 )
Remove WEB3_INFURA_API_KEY environment variable in favor of WEB3_INFURA_PROJECT_ID . Change InfuraKeyNotFound exception to InfuraProjectIdNotFound ( #2634 )
Remove Kovan auto provider ( #2635 )
Snakecase the isConnected method ( #2643 )
Snakecase the toWei and fromWei methods ( #2647 )
Fix eth-tester key remapping for logsBloom and receiptsRoot ( #1630 )
Improve upon issues with session caching - better support for multithreading and make sure session eviction from cache does not happen prematurely. ( #2409 )
Allow classes to inherit from the Web3 class by attaching modules appropriately. ( #2592 )
fixed bug in how async_eth_tester_middleware fills default fields ( #2600 )
Allow hex for value field when validating via validate_payable() contracts method ( #2602 )
Update Beacon API to v2.3.0 ( #2616 )
Move flaky option to top-level conftest.py ( #2642 )
Update Proof of Authority middleware ( geth_poa_middleware ) documentation for better clarity. ( #2538 )
Add some missing supported async middlewares to docs. ( #2574 )
Introduce AsyncENS and availability on w3 instance in ENS guide. ( #2585 )
Fix typo in eth.call docs ( #2613 )
remove section for deleted account.recoverHash method ( #2615 )
examples docs gave incorrect return type for eth.get_transaction , fixed ( #2617 )
minor typo fix in contracts overview ( #2628 )
fix bug in Deploying new contracts example ( #2646 )
Support for Account class access in AsyncEth via async_w3.eth.account ( #2580 )
Expose public abi utility methods: get_abi_output_names() and get_abi_input_names() ( #2596 )
update all references to deprecated eth_abi.encode_abi to eth_abi.encode ( #2621 )
update all references to deprecated eth_abi.decode_abi to eth_abi.decode ( #2636 )
Add Sepolia auto provider ( #2639 )
#2603 , #2622 , #2630 , #2638
- sha3 and soliditySha3 were previously deprecated and now removed
sha3 and soliditySha3 were previously deprecated and now removed ( #2479 )
Remove deprecated methods from Geth, Parity and Net modules ( #2480 )
Provide better messaging to wrong arguments for contract functions, especially for tuple argument types. ( #2556 )
Properly format block_number for eth_getTransactionCount when using EthereumTesterProvider ( #1801 )
removed Optional type hints for passphrase arguments that aren’t actually optional ( #2511 )
Fix is_dynamic_fee_transaction and TRANSACTION_DEFAULTS when gas_price_strategy returns zero ( #2562 )
Remove deprecated methods from Geth, Parity, and Net modules ( #2480 )
replace double- with single-quotes to make f-string valid ( #2504 )
added geth personal_sign and personal_ec_recover documentation ( #2511 )
Add transaction result formatters for type and chainId to convert values to int if hexadecimal if the field is not null ( #2491 )
Add a global flag on the provider for enabling / disabling CCIP Read for calls: global_ccip_read_enabled (defaults to True ). ( #2499 )
Deprecate Geth Admin StartRPC and StopRPC for StartHTTP and StopHTTP ( #2507 )
Added Async support for ENS ( #2547 )
support multi-dimensional arrays for ABI tuples types ( #2555 )
#2345 , #2483 , #2505 , #2513 , #2514 , #2515 , #2516 , #2518 , #2520 , #2521 , #2522 , #2523 , #2524 , #2525 , #2527 , #2530 , #2531 , #2534 , #2542 , #2544 , #2550 , #2551 , #2559
- Removed deprecated methods from eth and geth
Removed deprecated methods from eth and geth ( #1416 )
Fix bug in _is_latest_block_number_request in cache middleware ( #2185 )
Increase cache size to allow for 20 entries. ( #2477 )
format receipt.type to int and log.data to HexBytes ( #2482 )
Only thread lock for methods attempting to access the cache for caching middleware. ( #2496 )
Fix typo in simple_cache_middleware example ( #2449 )
Fix dict type hints in EventScanner example ( #2469 )
Add clarification around ValueError and Local Signing middleware ( #2474 )
Add async version of contract functionality ( #2270 )
ENSIP-10 / wildcard resolution support for ENS module ( #2411 )
CCIP Read support and finalize implementation of and add tests for ENS offchain resolution support ( #2457 )
#2454 , #2450 , #2462 , #2471 , #2478
- Audit .rst and .py files and convert all Web3 instance variable names to w3 to avoid confusion with the web3 module.
Audit .rst and .py files and convert all Web3 instance variable names to w3 to avoid confusion with the web3 module. ( #1183 )
Update dependency requirements: - eth-utils - eth-abi - eth-tester - eth-account - eth-typing ( #2342 )
Add attach_methods() to Module class to facilitate attaching methods to modules. ( #2383 )
Move IOError -> OSError ( #2434 )
Clarify info about Infura filters over HTTP ( #2322 )
Document reading private keys from environment variables ( #2380 )
Add example for the construct_sign_and_send_raw_middleware when connected to a hosted node ( #2410 )
Doc fix: Pending transaction filter returns a TransactionFilter not a BlockFilter ( #2444 )
Add ‘get_text’ method to look up ENS text record values ( #2286 )
For ENS.name() , validate that the forward resolution returns the same address as provided by the user as per the ENS documentation recommendation for Reverse Resolution. ( #2420 )
Add sync chain_id to simple_middleware_cache ( #2425 )
#2369 , #2372 , #2418
- Added ‘Breaking Changes’ and ‘Deprecations’ categories to our release notes
Update websockets dependency to v10+ ( #2324 )
Remove support for the unsupported Python 3.6 Also removes outdated Parity tests ( #2343 )
Update Sphinx requirement to >=4.2.0,<5 ( #2362 )
Fix types for gas , and gasLimit : Wei -> int . Also fix types for effectiveGasPrice : ( int -> Wei ) ( #2330 )
Added session caching to the AsyncHTTPProvider ( #2016 )
Add support for Python 3.10 ( #2175 )
Added ‘Breaking Changes’ and ‘Deprecations’ categories to our release notes ( #2340 )
Add async eth.get_storage_at method ( #2350 )
Upgrade jsonschema version to >=4.0.0<5 ( #2361 )
#2353 , #2365
Update websockets dependency to v10+ (#2324)
Remove support for the unsupported Python 3.6 Also removes outdated Parity tests (#2343)
Update Sphinx requirement to >=4.2.0,<5 (#2362)
Fix types for gas, and gasLimit: Wei -> int. Also fix types for effectiveGasPrice: (int -> Wei) (#2330)
Added session caching to the AsyncHTTPProvider (#2016)
Add support for Python 3.10 (#2175)
Added 'Breaking Changes' and 'Deprecations' categories to our release notes (#2340)
Add async eth.get_storage_at method (#2350)
Upgrade jsonschema version to >=4.0.0<5 (#2361)
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
- Added Async functions for Geth Personal and Admin modules
Added Async functions for Geth Personal and Admin modules ( #1413 )
async support for formatting, validation, and geth poa middlewares ( #2098 )
Calculate a default maxPriorityFeePerGas using eth_feeHistory when eth_maxPriorityFeePerGas is not available, since the latter is not a part of the Ethereum JSON-RPC specs and only supported by certain clients. ( #2259 )
Allow NamedTuples in ABI inputs ( #2312 )
Add async eth.syncing method ( #2331 )
remove ens.utils.dict_copy decorator ( #1423 )
The exception retry middleware whitelist was missing a comma between txpool and testing ( #2327 )
Properly initialize external modules that do not inherit from the web3.module.Module class ( #2328 )
- Added Async functions for Geth TxPool
Added Async functions for Geth TxPool ( #1413 )
external modules are no longer required to inherit from the web3.module.Module class ( #2304 )
Add async eth.get_logs method ( #2310 )
add Async access to default_account and default_block ( #2315 )
Update eth-tester and eth-account dependencies to pull in bugfix from eth-keys ( #2320 )
Fixed issues with parsing tuples and nested tuples in event logs ( #2211 )
In ENS the contract function to resolve an ENS address was being called twice in error. One of those calls was removed. ( #2318 )
to_hexbytes block formatters no longer throw when value is None ( #2321 )
fix typo in eth.account docs ( #2111 )
explicitly add output_values to contracts example ( #2293 )
update imports for AsyncHTTPProvider sample code ( #2302 )
fixed broken link to filter schema ( #2303 )
add github link to the main docs landing page ( #2313 )
fix typos and update referenced geth version ( #2326 )
#2217
- Add middlewares property to NamedElementOnion / web3.middleware_onion . Returns current middlewares in proper order for importing into a new Web3 in
Add middlewares property to NamedElementOnion / web3.middleware_onion . Returns current middlewares in proper order for importing into a new Web3 instance ( #2239 )
Add async eth.hashrate method ( #2243 )
Add async eth.chain_id method ( #2251 )
Add async eth.mining method ( #2252 )
Add async eth.get_transaction_receipt and eth.wait_for_transaction_receipt methods ( #2265 )
Add async eth.accounts method ( #2284 )
Support for attaching external modules to the Web3 instance when instantiating the Web3 instance, via the external_modules argument, or via the new attach_modules() method ( #2288 )
Fixed doctest that wasn’t running in docs/contracts.rst ( #2213 )
Key mapping fix to eth-tester middleware for access list storage keys ( #2224 )
Inherit Web3 instance middlewares when instantiating ENS with ENS.fromWeb3() method ( #2239 )
Fix example docs to show a TransactionNotFound error, instead of None ( #2199 )
fix typo in ethpm.rst ( #2277 )
Clarify provider usage in Quickstart docs ( #2287 )
Address common BSC usage question ( #2289 )
#1729 , #2233 , #2242 , #2260 , #2261 , #2283
- Support for w3.eth.get_raw_transaction_by_block , and async support for w3.eth.get_raw_transaction_by_block
Support for w3.eth.get_raw_transaction_by_block , and async support for w3.eth.get_raw_transaction_by_block ( #2209 )
BadResponseFormat error thrown instead of KeyError when a response gets sent back without a result key. ( #2188 )
Correct link to Websocket library documentation ( #2173 )
Doc update to make it clearer that enable_unstable_package_management() method is on the web3 instance ( #2208 )
#2102 , #2179 , #2191 , #2201 , #2205 , #2212
- Add async eth.send_raw_transaction method
Add async eth.send_raw_transaction method ( #2135 )
Updated eth-account version to v0.5.6 - adds support for signing typed transactions without needing to explicitly set the transaction type and now accepts correct JSON-RPC structure for accessList for typed transactions ( #2157 )
Encode block_count as hex before making eth_feeHistory RPC call ( #2117 )
Fix typo in AsyncHTTPProvider docs ( #2131 )
Update AsyncHTTPProvider doc Supported Methods to include web3.eth.send_raw_transaction() . ( #2135 )
Improve messaging around usage and implementation questions, directing users to the appropriate channel ( #2138 )
Clarify some contract ValueError error messages. ( #2146 )
Updated docs for w3.eth.account.sign_transaction to reflect that transaction type is no longer needed to successfully sign typed transactions and to illustrate how to structure an optional accessList parameter in a typed transaction ( #2157 )
#2105
- Add constants for the zero address, zero hash, max int, and wei per ether.
Add constants for the zero address, zero hash, max int, and wei per ether. ( #2109 )
Renamed “1559 transaction” to “dynamic fee transaction” where appropriate to keep consistency among the general code base for 1559 transaction (type=2) naming ( #2118 )
Update AsyncHTTPProvider doc example to include modules and middlewares keyword arguments ( #2123 )
#2110 , #2118 , #2122
- Add support for eth_feeHistory RPC method
Add support for eth_feeHistory RPC method ( #2038 )
Add support for eth_maxPriorityFeePerGas RPC method ( #2100 )
Hot fix for string interpolation issue with contract function call decoding exception to facilitate extracting a meaningful message from the eth_call response ( #2096 )
Bypass adding a gasPrice via the gas price strategy, if one is set, when EIP-1559 transaction params are used for send_transaction ( #2099 )
Update feeHistory docs ( #2104 )
- Add support for eth_getRawTransactionByHash RPC method
Add support for eth_getRawTransactionByHash RPC method ( #2039 )
Add AsyncNet module ( #2044 )
Add async eth.get_balance , eth.get_code , eth.get_transaction_count methods. ( #2056 )
eth_signTransaction support for eip-1559 params ‘maxFeePerGas’ and ‘maxPriorityFeePerGas’ ( #2082 )
Add support for async w3.eth.call . ( #2083 )
If a transaction hash was passed as a string rather than a HexByte to w3.eth.wait_for_transaction_receipt , and the time was exhausted before the transaction is in the chain, the error being raised was a TypeError instead of the correct TimeExhausted error. This is because the to_hex method in the TimeExhausted error message expects a primitive as the first argument, and a string doesn’t qualify as a primitive. Fixed by converting the transaction_hash to HexBytes instead. ( #2068 )
Hot fix for a string interpolation issue in message when BadFunctionCallOutput is raised for call_contract_function() ( #2069 )
fill_transaction_defaults() no longer sets a default gasPrice if 1559 fees are present in the transaction parameters. This fixes sign-and-send middleware issues with 1559 fees. ( #2092 )
Clarify that send_transaction , modify_transaction , and replace_transaction return HexByte objects instead of strings. ( #2058 )
Added troubleshooting section for Microsoft Visual C++ error on Windows machines ( #2077 )
Updated the sign-and-send middleware docs to include EIP-1559 as well as legacy transaction examples ( #2092 )
#2073 , #2080 , #2085
- Adds support for EIP 1559 transaction keys: maxFeePerGas and maxPriorityFeePerGas
Adds support for EIP 1559 transaction keys: maxFeePerGas and maxPriorityFeePerGas ( #2060 )
Bugfix where an error response got passed to a function expecting a block identifier.
Split out null result formatters from the error formatters and added some tests. ( #2022 )
Fix broken tests and use the new 1559 params for most of our test transactions. ( #2053 )
Set a default maxFeePerGas value consistent with Geth ( #2055 )
Fix bug in geth PoA middleware where a None response should throw a BlockNotFound error, but was instead throwing an AttributeError ( #2064 )
Added general documentation on unit and integration testing and how to contribute to our test suite. ( #2053 )
- Have the geth dev IPC auto connection check for the WEB3_PROVIDER_URI environment variable.
Have the geth dev IPC auto connection check for the WEB3_PROVIDER_URI environment variable. ( #2023 )
Remove reference to allowing multiple providers in docs ( #2018 )
Update “Contract Deployment Example” docs to use py-solc-x as solc is no longer maintained. ( #2020 )
Detail using unreleased Geth builds in CI ( #2037 )
Clarify that a missing trie node error could occur when using block_identifier with .call() on a node that isn’t running in archive mode ( #2048 )
#1938 , #2015 , #2021 , #2025 , #2028 , #2029 , #2035
- Add new AsyncHTTPProvider. No middleware or session caching support yet.
Add new AsyncHTTPProvider. No middleware or session caching support yet.
Also adds async w3.eth.gas_price , and async w3.isConnected() methods. ( #1978 )
Add ability for AsyncHTTPProvider to accept middleware
Also adds async gas_price_strategy middleware, and moves gas estimate to middleware.
AsyncEthereumTesterProvider now inherits from AsyncBase ( #1999 )
Support state_override in contract function call. ( #2005 )
Test ethpm caching + bump Sphinx version. ( #1977 )
Clarify solidityKeccak documentation. ( #1971 )
Improve contributor documentation context and ordering. ( #2008 )
Add docs for unstable AsyncHTTPProvider ( #2017 )
#1979 , #1980 , #1993 , #2002
- Add list_storage_keys deprecate listStorageKeys
Handle optional eth_call state override param. ( #1921 )
Add list_storage_keys deprecate listStorageKeys ( #1944 )
Add net_peers deprecate netPeers ( #1946 )
Add trace_replay_transaction deprecate traceReplayTransaction ( #1949 )
Add add_reserved_peer deprecate addReservedPeer ( #1951 )
Add parity.set_mode , deprecate parity.setMode ( #1954 )
Add parity.trace_raw_transaction , deprecate parity.traceRawTransaction ( #1955 )
Add parity.trace_call , deprecate parity.traceCall ( #1957 )
Add trace_filter deprecate traceFilter ( #1960 )
Add trace_block, deprecate traceBlock ( #1961 )
Add trace_replay_block_transactions, deprecate traceReplayBlockTransactions ( #1962 )
Add parity.trace_transaction , deprecate parity.traceTransaction ( #1963 )
Document eth_call state overrides. ( #1965 )
#1774 , #1805 , #1945 , #1964
- Add w3.eth.modify_transaction deprecate w3.eth.modifyTransaction
Add w3.eth.modify_transaction deprecate w3.eth.modifyTransaction ( #1886 )
Add w3.eth.get_transaction_receipt , deprecate w3.eth.getTransactionReceipt ( #1893 )
Add w3.eth.wait_for_transaction_receipt deprecate w3.eth.waitForTransactionReceipt ( #1896 )
Add w3.eth.set_contract_factory deprecate w3.eth.setContractFactory ( #1900 )
Add w3.eth.generate_gas_price deprecate w3.eth.generateGasPrice ( #1905 )
Add w3.eth.set_gas_price_strategy deprecate w3.eth.setGasPriceStrategy ( #1906 )
Add w3.eth.estimate_gas deprecate w3.eth.estimateGas ( #1913 )
Add w3.eth.sign_typed_data deprecate w3.eth.signTypedData ( #1915 )
Add w3.eth.get_filter_changes deprecate w3.eth.getFilterChanges ( #1916 )
Add eth.get_filter_logs , deprecate eth.getFilterLogs ( #1919 )
Add eth.uninstall_filter , deprecate eth.uninstallFilter ( #1920 )
Add w3.eth.get_logs deprecate w3.eth.getLogs ( #1925 )
Add w3.eth.submit_hashrate deprecate w3.eth.submitHashrate ( #1926 )
Add w3.eth.submit_work deprecate w3.eth.submitWork ( #1927 )
Add w3.eth.get_work , deprecate w3.eth.getWork ( #1934 )
Adds public get_block_number method. ( #1937 )
Add ABI type examples to docs ( #1890 )
Promote the new Ethereum Python Discord server on the README. ( #1898 )
Escape reserved characters in install script of Contributing docs. ( #1909 )
Add detailed event filtering examples. ( #1910 )
Add docs example for tuning log levels. ( #1928 )
Add some performance tips in troubleshooting docs. ( #1929 )
Add existing contract interaction to docs examples. ( #1933 )
Replace Gitter links with the Python Discord server. ( #1936 )
#1887 , #1907 , #1917 , #1930 , #1935
- Added get_transaction_count , and deprecated getTransactionCount
Added get_transaction_count , and deprecated getTransactionCount ( #1844 )
Add w3.eth.send_transaction , deprecate w3.eth.sendTransaction ( #1878 )
Add web3.eth.sign_transaction , deprecate web3.eth.signTransaction ( #1879 )
Add w3.eth.send_raw_transaction , deprecate w3.eth.sendRawTransaction ( #1880 )
Add w3.eth.replace_transaction deprecate w3.eth.replaceTransaction ( #1882 )
Fix return type of send_transaction in docs. ( #686 )
- Remove v5 breaking changes link from the top of the release notes.
Added get_block_transaction_count , and deprecated getBlockTransactionCount ( #1841 )
Move defaultAccount to default_account . Deprecate defaultAccount . ( #1848 )
Add eth.default_block , deprecate eth.defaultBlock . Also adds parity.default_block , and deprecates parity.defaultBlock . ( #1849 )
Add eth.gas_price , deprecate eth.gasPrice ( #1850 )
Added eth.block_number property. Deprecated eth.blockNumber ( #1851 )
Add eth.chain_id , deprecate eth.chainId ( #1852 )
Add eth.protocol_version , deprecate eth.protocolVersion ( #1853 )
Add eth.get_code , deprecate eth.getCode ( #1856 )
Deprecate eth.getProof , add eth.get_proof ( #1857 )
Add eth.get_transaction , deprecate eth.getTransaction ( #1858 )
Add eth.get_transaction_by_block , deprecate eth.getTransactionByBlock ( #1859 )
Add get_uncle_by_block, deprecate getUncleByBlock ( #1862 )
Add get_uncle_count, deprecate getUncleCount ( #1863 )
Fix event filter creation if the event ABI contains a values key. ( #1807 )
Remove v5 breaking changes link from the top of the release notes. ( #1837 )
Add account creation troubleshooting docs. ( #1855 )
Document passing a struct into a contract function. ( #1860 )
Add instance configuration troubleshooting docs. ( #1865 )
Clarify nonce lookup in sendRawTransaction docs. ( #1866 )
Updated docs for web3.eth methods: eth.getTransactionReceipt and eth.waitForTransactionReceipt ( #1868 )
- Add get_storage_at method and deprecate getStorageAt .
Add get_storage_at method and deprecate getStorageAt . ( #1828 )
Add eth.get_block method and deprecate eth.getBlock . ( #1829 )
PR #1585 changed the error that was coming back from eth-tester when the Revert opcode was called, which broke some tests in downstream libraries. This PR reverts back to raising the original error. ( #1813 )
Added a new ContractLogicError for when a contract reverts a transaction. ContractLogicError will replace SolidityError , in v6. ( #1814 )
Introduce Beacon API documentation ( #1836 )
#1602 , #1827 , #1831 , #1833 , #1834
- Add new get_balance method on Eth class. Deprecated getBalance.
Remove docs/web3.* from the gitignore to allow for the beacon docs to be added to git, and add beacon to the default web3 modules that get loaded. ( #1824 )
Remove auto-documenting from the Beacon API ( #1825 )
Introduce experimental Ethereum 2.0 beacon node API ( #1758 )
Add new get_balance method on Eth class. Deprecated getBalance. ( #1806 )
#1815 , #1816
- Handle revert reason parsing for Ganache
Handle revert reason parsing for Ganache ( #1794 )
Document Geth and Parity/OpenEthereum fixture generation ( #1787 )
#1778 , #1780 , #1790 , #1791 , #1796
- Raise SolidityError exceptions that contain the revert reason when a call fails.
Raise SolidityError exceptions that contain the revert reason when a call fails. ( #941 )
Update eth-tester dependency to fix tester environment install version conflict. ( #1782 )
#1757 , #1767
### Misc - #1752 , #1759 , #1773 , #1775
#1752 , #1759 , #1773 , #1775
- Address the use of multiple providers in the docs
Address the use of multiple providers in the docs ( #1701 )
Remove stale connection errors from docs ( #1737 )
Allow ENS name resolution for methods that use the Method class ( #1749 )
#1727 , #1728 , #1733 , #1735 , #1741 , #1746 , #1748 , #1753 , #1768
### Misc - #1708 , #1709 , #1715 , #1722 , #1724
#1708 , #1709 , #1715 , #1722 , #1724
- Update web3.pm and ethpm module to EthPM v3 specification.
Update web3.pm and ethpm module to EthPM v3 specification. ( #1652 )
Allow consumer to initialize HttpProvider with their own requests.Session . This allows the HttpAdapter connection pool to be tuned as desired. ( #1469 )
Use ethpm v3 packages in examples documentation. ( #1683 )
Modernize the deploy contract example. ( #1679 )
Add contribution guidelines and a code of conduct. ( #1691 )
#1687
#1690
- Include ethpm-spec solidity examples in distribution.
Include ethpm-spec solidity examples in distribution. ( #1686 )
- Support ethpm-spec submodule in distributions.
Support ethpm-spec submodule in distributions. ( #1682 )
Modernize the deploy contract example. ( #1679 )
Use ethpm v3 packages in examples documentation. ( #1683 )
- Allow consumer to initialize HttpProvider with their own requests.Session . This allows the HttpAdapter connection pool to be tuned as desired.
Allow consumer to initialize HttpProvider with their own requests.Session . This allows the HttpAdapter connection pool to be tuned as desired. ( #1469 )
Update web3.pm and ethpm module to EthPM v3 specification. ( #1652 )
Update outdated reference url in ethpm docs and tests. ( #1680 )
Add a getBalance() example and provide more context for using the fromWei and toWei utility methods. ( #1676 )
Overhaul the Overview documentation to provide a tour of major features. ( #1681 )
- Added formatter rules for eth_tester middleware to allow getBalance() by using integer block numbers
Added formatter rules for eth_tester middleware to allow getBalance() by using integer block numbers ( #1660 )
Fix type annotations within the eth.py module. Several arguments that defaulted to None were not declared Optional . ( #1668 )
Fix type annotation warning when using string URI to instantiate an HTTP or WebsocketProvider. ( #1669 )
Fix type annotations within the web3 modules. Several arguments that defaulted to None were not declared Optional . ( #1670 )
Breaks up links into three categories (Intro, Guides, and API) and adds content to the index page: a lib introduction and some “Getting Started” links. ( #1671 )
Fills in some gaps in the Quickstart guide and adds provider connection details for local nodes. ( #1673 )
- Corrects the return value of getTransactionReceipt , description of caching middleware, and deprecated method names.
Accept a block identifier in the Contract.estimateGas method. Includes a related upgrade of eth-tester to v0.5.0-beta.1. ( #1639 )
Introduce a more specific validation error, ExtraDataLengthError . This enables tools to detect when someone may be connected to a POA network, for example, and provide a smoother developer experience. ( #1666 )
Correct the type annotations of FilterParams.address ( #1664 )
Corrects the return value of getTransactionReceipt , description of caching middleware, and deprecated method names. ( #1663 )
Corrects documentation of websocket timeout configuration. ( #1665 )
- An update of eth-tester includes a change of the default fork from Constantinople to Muir Glacier. #1636
An update of eth-tester includes a change of the default fork from Constantinople to Muir Glacier. #1636
my_contract.events.MyEvent was incorrectly annotated so that MyEvent was marked as a ContractEvent instance. Fixed to be a class type, i.e., Type[ContractEvent] . ( #1646 )
IPCProvider correctly handled pathlib.Path input, but warned against its type. Fixed to permit Path objects in addition to strings. ( #1647 )
#1636
- Upgrade eth-account to use v0.5.2+. eth-account 0.5.2 adds support for hd accounts
Upgrade eth-account to use v0.5.2+. eth-account 0.5.2 adds support for hd accounts
Also had to pin eth-keys to get dependencies to resolve. ( #1622 )
Fix local_filter_middleware new entries bug ( #1514 )
ENS name and ENS address can return None . Fixes return types. ( #1633 )
- Introduced list_wallets method to the GethPersonal class.
Introduced list_wallets method to the GethPersonal class. ( #1516 )
Added block_identifier parameter to ContractConstructor.estimateGas method. ( #1588 )
Add snake_case methods to Geth and Parity Personal Modules.
Deprecate camelCase methods. ( #1589 )
Added new weighted keyword argument to the time based gas price strategy.
If True , it will more give more weight to more recent block times. ( #1614 )
Adds support for Solidity’s new(ish) receive function.
Adds a new contract API that mirrors the existing fallback API: contract.receive ( #1623 )
Fixed hasattr overloader method in the web3.ContractEvent, web3.ContractFunction, and web3.ContractCaller classes by implementing a try/except handler that returns False if an exception is raised in the getattr overloader method (since getattr HAS to be called in every hasattr call).
Created two new Exception classes, ‘ABIEventFunctionNotFound’ and ‘ABIFunctionNotFound’, which inherit from both AttributeError and MismatchedABI, and replaced the MismatchedABI raises in ContractEvent, ContractFunction, and ContractCaller with a raise to the created class in the getattr overloader method of the object. ( #1594 )
Change return type of rpc_gas_price_strategy from int to Wei ( #1612 )
Fix typo in “Internals” docs. Changed asyncronous –> asynchronous ( #1607 )
Improve documentation that introduces and troubleshoots Providers. ( #1609 )
Add documentation for when to use each transaction method. ( #1610 )
Remove incorrect web3 for w3 in doc example ( #1615 )
Add examples for using web3.contract via the ethpm module. ( #1617 )
Add dark mode to documentation. Also fixes a bunch of formatting issues in docs. ( #1626 )
#1545
- Add snake_case methods for the net module
Add snake_case methods for the net module
Also moved net module to use ModuleV2 instead of Module ( #1592 )
Fix return type of eth_getCode. Changed from Hexstr to HexBytes. ( #1601 )
#1590
Your coding agent can read these notes before it upgrades. Set up the MCP server →