# Blockchains

[#predefined-blockchain-configurations](#predefined-blockchain-configurations "mention")

[#modify-the-configuration](#modify-the-configuration "mention")

[#add-custom-evm-compatible-chain](#add-custom-evm-compatible-chain "mention")

[#node-rate-limit-guard](#node-rate-limit-guard "mention")

## Predefined blockchain configurations

`0xWeb` includes some blockchain configurations and default public RPC endpoints for:

| Chain slug        | Name                              |
| ----------------- | --------------------------------- |
| `aurora`          | Aurora                            |
| `arbitrum`        | Arbitrum One                      |
| `avalanche`       | Avalanche                         |
| `bsc`             | Binance Smart Chain               |
| `celo`            | Celo Platform                     |
| `cronos`          | Cronos                            |
| `eth`             | Ethereum                          |
| `eth:goerli`      | Ethereum Testnet                  |
| `fantom`          | Fantom                            |
| `gnosis` ; `xdai` | Gnosis Chain                      |
| `hardhat`         | Local Hardhat Development Network |
| `heco`            | HECO Chain                        |
| `polygon`         | Polygon Network                   |
| `metis`           | Metis                             |
| `optimism`        | Optimism                          |

## Modify the configuration

[🙏](https://emojipedia.org/folded-hands/) Change the RPC endpoints for those chains in configuration. &#x20;

Edit the configuration `yml` by running:

```bash
0xweb config -e
```

A default configuration will be copied into the new configuration file, which should be opened with your default editor for `yml` files, if the file is not opened automatically, open the file manually, the file path will be printed in the terminal.

## Add custom EVM-compatible chain

* **1** Add a new platform to the `web3` section, for example:

```yaml
web3:
  foo:
    chainId: 5555
    chainToken: FOO
    endpoints:
      - url: 'https://foo-rpc-example'
      - url: 'wss://foo-socket-url-example'
      - url: 'https://some-other-url'
```

* **2** Add the Blockchain Explorer configuration optionally to read the ABI and the sources.

`0xWeb` supports `Etherscan` and `Blockscout` forks, if there is one for your custom chain, add that information to the `blockchainExplorer` section

```yaml
blockchainExplorer:
  foo:
    key: YOUR_KEY
    host: 'https://api.bscscan.com'
    www: 'https://bscscan.com'
```

### AD

## Node Rate Limit Guard

The Endpoints accept the rate limit configuration so that the clients' pool hander can handle better select and manage the Web3 Clients and Requests.  For example: \`100/1s\`  - means 100 requests per 1 second. You can also set multiple guards. Example:

### AD

```yaml
web3:
  eth:
    endpoints:
      - url: 'https://myendpoint-url'
        rateLimit: 100/1s;5000/1m
      # - ... other urls
```

### AD

### ## AD

### AD
