# RPC Client Pool

Provide multiple RPC Node URLs per chain, this will make your application much more reliable. Even if one of the Nodes goes down or for some reason is not in sync, all your RPC calls will still work.

[Web3Client](https://github.com/0xweb-org/dequanto/blob/master/src/clients/Web3Client.ts)🔗 is the base class for all the EVM Platforms. This wraps web3 to provide pool-based communication with the nodes. It handles also `gas` and `nonce` values.

We provide pre-configured clients for&#x20;

* Ethereum - [EthWeb3Client](https://github.com/0xweb-org/dequanto/blob/master/src/clients/EthWeb3Client.ts)🔗
* Polygon - [PolyWeb3Client](https://github.com/0xweb-org/dequanto/blob/master/src/clients/PolyWeb3Client.ts)🔗
* Binance Smart Chain - [BscWeb3Client](https://github.com/0xweb-org/dequanto/blob/master/src/clients/BscWeb3Client.ts)🔗
* Hardhat - [HardhatWeb3Client](https://github.com/0xweb-org/dequanto/blob/master/src/clients/HardhatWeb3Client.ts)🔗
* Gnosis - [XDaiWeb3Client](https://github.com/0xweb-org/dequanto/blob/master/src/chains/xdai/XDaiWeb3Client.ts)🔗
* Arbitrum - [ArbWeb3Client](https://github.com/0xweb-org/dequanto/blob/master/src/chains/arbitrum/ArbWeb3Client.ts)🔗

The endpoint configuration can be defined in the constructor, or it will be read from the application [configuration](https://docs.0xweb.org/info#configure)🔗.&#x20;

#### An example, how to get the balance for an address

```typescript
import { PolyWeb3Client } from '@dequanto/clients/PolyWeb3Client';

let client = new PolyWeb3Client();
let balance: bigint = client.getBalance('0x....');
```
