https://github.com/deknowny/web3-async-multi-provider
Web3.py compatible async provider supports multiply RPC URLs
https://github.com/deknowny/web3-async-multi-provider
async multi provider web3
Last synced: 9 months ago
JSON representation
Web3.py compatible async provider supports multiply RPC URLs
- Host: GitHub
- URL: https://github.com/deknowny/web3-async-multi-provider
- Owner: deknowny
- License: mit
- Created: 2023-04-16T12:33:07.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-04-16T19:30:51.000Z (almost 3 years ago)
- Last Synced: 2025-04-29T17:44:37.004Z (10 months ago)
- Topics: async, multi, provider, web3
- Language: Python
- Homepage:
- Size: 30.3 KB
- Stars: 8
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Web3 async multi provider
> Web3.py compatible async providers that supports multiply RPC URLs
This library allows to create a `w3` instance with multiply RPC URLs to prevent failures when a node is down by choosing another one by cycle.



[](https://coveralls.io/github/deknowny/web3-async-multi-provider?branch=main)
***
# Features
* HTTP async provider
* WebSockets async provider
## Overview
HTTP w3 provider
```python
import web3
from web3_async_multi_provider import AsyncWSMultiProvider
provider = AsyncHTTPMultiProvider(
providers=[
web3.AsyncHTTPProvider("https://eth.llamarpc.com"),
web3.AsyncHTTPProvider("https://rpc.flashbots.net"),
]
)
```
WebSockets provider
```python
import web3
from web3_async_multi_provider import AsyncWSMultiProvider
provider = AsyncWSMultiProvider(
providers=[
web3.providers.WebsocketProvider("wss://example.com/"),
web3.providers.WebsocketProvider("wss://google.com/"),
]
)
```
And then add it into `Web3`:
```python
w3 = web3.Web3(
provider
modules={"eth": [web3.eth.AsyncEth]},
middlewares=[]
)
print(await web3.eth.chain_id)
```
# Installation
Via PyPI:
```shell
python -m pip install web3_async_multi_provider
```
Or via GitHub
```shell
python -m pip install https://github.com/deknowny/web3-async-multi-provider/archive/main.zip
```
# Contributing
Check out [site Contributing section](https://deknowny.github.io/web3-async-multi-provider/latest/contributing/)