# ChainList

> Look up any EVM network from a workflow. ChainList is the public registry of close to three thousand Ethereum-compatible networks: search them by name, chain ID or currency, get the settings a wallet needs to add one, pull a working RPC endpoint with its operator's logging policy attached, turn a transaction hash or a wallet address into a block explorer link, find the faucets for a test network, and see which layer 2s roll up to which network and over which bridges. Every action reads: nothing here changes anything. No account or API key is required.

App · Cryptocurrency · 6 actions. Web page: https://docs.lodol.com/docs/integrations/chainlist

## Actions

### Find networks

Search the EVM networks ChainList publishes, or browse them ranked by how much value is locked on them. Search by name, short name, chain ID or currency symbol: 'arbitrum', 'matic' and '8453' all work. Each network comes back with its chain ID, its currency, a working RPC endpoint and its block explorer, so the next step can use it without a second lookup. Test networks are included and labelled.

**Inputs**

- Search (`search`, text): Name, short name, chain ID or currency symbol. Leave it empty to browse every network in the chosen order. A number is read as a chain ID and nothing else.
- Include (`network_type`, text): Whether to include test networks. Both by default, because a search that quietly skips Sepolia looks like a missing network rather than a filter. Every result says which each one is. One of: `all` (Live and test networks), `mainnet` (Live networks only), `testnet` (Test networks only). Default: `all`.
- Order (`sort`, text): Most value locked first by default, which puts the networks people actually use at the top. Test networks have no figure, so they sort last. One of: `value_locked` (Most value locked), `rpc_endpoints` (Most RPC endpoints), `name` (Name (A–Z)), `chain_id` (Chain ID). Default: `value_locked`.
- How many networks (`limit`, number): How many networks to return, counting down from the top. From 1 to 200. Default: `20`.

**Outputs**

- `count` (number): How many networks are in this result.
- `network_type` (text): Which networks were included.
- `networks` (list): The networks that matched, in order.
- `search` (text): The text searched for, or empty if none was given.
- `sort` (text): The order they came back in.
- `source_url` (text): The ChainList document this answer was read from.
- `total_matches` (number): How many matched in all, before the limit.
- `total_networks` (number): How many networks ChainList publishes in all.
- `truncated` (true/false): Whether the limit cut the list short.

**Example output**

```json
{
  "count": 2,
  "network_type": "mainnet",
  "networks": [
    {
      "chain_id": 1,
      "chain_id_hex": "0x1",
      "chainlist_url": "https://chainlist.org/chain/1",
      "currency_symbol": "ETH",
      "explorer_url": "https://etherscan.io",
      "is_testnet": false,
      "name": "Ethereum Mainnet",
      "network": "Mainnet",
      "recommended_rpc_url": "https://ethereum-rpc.publicnode.com",
      "rpc_endpoint_count": 88,
      "short_name": "eth",
      "value_locked_usd": 108979818735.77
    },
    {
      "chain_id": 8453,
      "chain_id_hex": "0x2105",
      "chainlist_url": "https://chainlist.org/chain/8453",
      "currency_symbol": "ETH",
      "explorer_url": "https://basescan.org",
      "is_testnet": false,
      "name": "Base",
      "network": "Mainnet",
      "recommended_rpc_url": "https://base-rpc.publicnode.com",
      "rpc_endpoint_count": 44,
      "short_name": "base",
      "value_locked_usd": 8793363387.75
    }
  ],
  "search": null,
  "sort": "value_locked",
  "source_url": "https://chainlist.org/rpcs.json",
  "total_matches": 1760,
  "total_networks": 2923,
  "truncated": true
}
```

### Get block explorer links

Turn a transaction hash, a wallet address, a block number or a token contract into a link on the right block explorer for the network it is on: the link to put in the Slack message or the email. Leave the value empty to just list the explorers. Only explorers that promise a fixed link shape are linked into, so a link that comes back opens something rather than a 404, and a hash pasted where an address goes is caught here rather than at the explorer.

**Inputs**

- Network (`chain`, text, required): Which network to look up. Pick it from the list, or type the name or chain ID of any other network ChainList tracks: 1, Ethereum, eth and ethereum all find Ethereum Mainnet. Where two networks answer to the same name, the live one with the most RPC endpoints is used and the others are named in the result.
- Look up (`look_up`, text): What the value is. One of: `transaction`, `address` (Wallet address), `block`, `token` (Token contract). Default: `transaction`.
- Hash, address or block (`value`, text): The transaction hash, wallet address, block number or token contract to link to. Leave it empty to list the network's explorers without linking into them.

**Outputs**

- `chain_id` (number): The network's chain ID. Any ChainList step's Chain field takes it, so one step can hand a network to the next.
- `chainlist_url` (text): This network's page on chainlist.org, for checking the answer by eye.
- `count` (number): How many explorers it lists.
- `explorer_url` (text): The explorer a link was built against.
- `explorers` (list): Every block explorer for this network.
- `link` (text): The direct link, ready to open or to post. Empty when nothing was looked up.
- `linkable_count` (number): How many of them a direct link can be built for.
- `look_up` (text): What was looked up: transaction, address, block or token.
- `matched_on` (text): How the Chain field was matched: 'chain ID', 'short name', 'slug', 'name', 'the start of the name' or 'part of the name'.
- `name` (text): The network's name.
- `other_matches` (list): Any other network that answered to the same text. Empty when the match was unambiguous; worth reading when it is not.
- `source_url` (text): The ChainList document this answer was read from.
- `value` (text): The hash, address or block number that was looked up.

**Example output**

```json
{
  "chain_id": 1,
  "chainlist_url": "https://chainlist.org/chain/1",
  "count": 2,
  "explorer_url": "https://etherscan.io",
  "explorers": [
    {
      "link": "https://etherscan.io/tx/0x8a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f9",
      "name": "etherscan",
      "standard": "EIP3091",
      "supports_links": true,
      "url": "https://etherscan.io"
    },
    {
      "link": "https://eth.blockscout.com/tx/0x8a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f9",
      "name": "blockscout",
      "standard": "EIP3091",
      "supports_links": true,
      "url": "https://eth.blockscout.com"
    }
  ],
  "link": "https://etherscan.io/tx/0x8a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f9",
  "linkable_count": 2,
  "look_up": "transaction",
  "matched_on": "chain ID",
  "name": "Ethereum Mainnet",
  "other_matches": [],
  "source_url": "https://chainlist.org/rpcs.json",
  "value": "0x8a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f9"
}
```

### Get network details

Get everything ChainList holds about one network: its chain id in both decimal and hex, the coin gas is paid in, a working RPC endpoint, its block explorer, what it is built on and which bridges reach it. It also comes back with the five boxes a wallet's 'Add a network' form asks for, already filled in, so connecting a wallet is a copy rather than a hunt. Anything worth knowing first (a re-used chain id, a network still incubating) arrives as a warning rather than buried in a field.

**Inputs**

- Network (`chain`, text, required): Which network to look up. Pick it from the list, or type the name or chain ID of any other network ChainList tracks: 1, Ethereum, eth and ethereum all find Ethereum Mainnet. Where two networks answer to the same name, the live one with the most RPC endpoints is used and the others are named in the result.

**Outputs**

- `bridge_urls` (list): The bridges that move funds between the two.
- `built_on_chain_id` (number): The chain ID of the network this one is built on, for a layer 2 or a shard. Empty for a network that stands on its own.
- `chain_family` (text): The family it belongs to, such as ETH. Networks that share one share a native currency, not a ledger.
- `chain_id` (number): The network's chain ID. Any ChainList step's Chain field takes it, so one step can hand a network to the next.
- `chain_id_hex` (text): The same chain ID written in hex, which is the form a wallet's network settings use: 0x1 for Ethereum.
- `chainlist_url` (text): This network's page on chainlist.org, for checking the answer by eye.
- `currency_decimals` (number): How many decimal places that coin has.
- `currency_name` (text): The name of the coin gas is paid in.
- `currency_symbol` (text): That coin's symbol, such as ETH.
- `explorer_count` (number): How many block explorers it lists.
- `explorer_url` (text): Its block explorer.
- `faucet_count` (number): How many faucets it lists, for a test network.
- `features` (list): The Ethereum improvement proposals and other features it supports.
- `is_testnet` (true/false): Whether this is a test network.
- `matched_on` (text): How the Chain field was matched: 'chain ID', 'short name', 'slug', 'name', 'the start of the name' or 'part of the name'.
- `name` (text): The network's name.
- `network` (text): 'Mainnet' or 'Testnet', for printing.
- `other_matches` (list): Any other network that answered to the same text. Empty when the match was unambiguous; worth reading when it is not.
- `recommended_rpc_url` (text): The endpoint to use when only one is wanted: HTTPS, and the one that logs least.
- `relationship` (text): How it relates to that network: 'Layer 2' or 'Shard'.
- `rpc_endpoint_count` (number): How many usable RPC endpoints it publishes.
- `short_name` (text): Its short name, such as eth.
- `slug` (text): Its slug, where it has one.
- `source_url` (text): The ChainList document this answer was read from.
- `status` (text): ChainList's own status for it, such as 'active' or 'incubating'.
- `title` (text): A longer title, where ChainList publishes one.
- `value_locked_usd` (number): How many US dollars are locked on this network, where ChainList publishes a figure. Empty for test networks, whose published figure is their live network's.
- `wallet_network` (object): The five boxes a wallet's 'Add a network' form asks for, filled in.
- `warnings` (list): Anything in the record a person should read first: a re-used chain id, an incubating status, no usable endpoint. Usually empty.
- `website_url` (text): The network's own site.

**Example output**

```json
{
  "bridge_urls": [
    "https://bridge.base.org"
  ],
  "built_on_chain_id": 1,
  "chain_family": "ETH",
  "chain_id": 8453,
  "chain_id_hex": "0x2105",
  "chainlist_url": "https://chainlist.org/chain/8453",
  "currency_decimals": 18,
  "currency_name": "Ether",
  "currency_symbol": "ETH",
  "explorer_count": 3,
  "explorer_url": "https://basescan.org",
  "faucet_count": 0,
  "features": [
    "EIP155",
    "EIP1559"
  ],
  "is_testnet": false,
  "matched_on": "name",
  "name": "Base",
  "network": "Mainnet",
  "other_matches": [],
  "recommended_rpc_url": "https://base-rpc.publicnode.com",
  "relationship": "Layer 2",
  "rpc_endpoint_count": 44,
  "short_name": "base",
  "slug": "base",
  "source_url": "https://chainlist.org/rpcs.json",
  "status": "active",
  "title": null,
  "value_locked_usd": 8793363387.75,
  "wallet_network": {
    "block_explorer_url": "https://basescan.org",
    "chain_id": 8453,
    "currency_symbol": "ETH",
    "network_name": "Base",
    "rpc_url": "https://base-rpc.publicnode.com"
  },
  "warnings": [],
  "website_url": "https://base.org"
}
```

### Get RPC endpoints

Get the RPC endpoints published for one network, each with what its operator says it does with your requests. HTTPS by default, because that is what most things can call; switch to WebSocket for a subscription. Narrow to the operators that log little or nothing when the traffic is someone's. Endpoints ChainList lists but nothing can call (config-file templates, notes, bare hostnames) are left out, so every address that comes back is one you can use.

**Inputs**

- Network (`chain`, text, required): Which network to look up. Pick it from the list, or type the name or chain ID of any other network ChainList tracks: 1, Ethereum, eth and ethereum all find Ethereum Mainnet. Where two networks answer to the same name, the live one with the most RPC endpoints is used and the others are named in the result.
- Connection (`connection`, text): HTTPS for ordinary calls, WebSocket for a live subscription. HTTPS by default. One of: `https`, `websocket`, `any` (Either). Default: `https`.
- Request logging (`privacy`, text): Whether to keep only the operators that log little or nothing. Any endpoint by default, because most operators have not said either way and dropping them would leave some networks with nothing at all. Every endpoint says what its operator does regardless. One of: `any` (Any endpoint), `limited_or_better` (Logs little or nothing), `no_tracking` (Logs nothing). Default: `any`.
- How many endpoints (`limit`, number): How many endpoints to return. From 1 to 100. Default: `10`.

**Outputs**

- `chain_id` (number): The network's chain ID. Any ChainList step's Chain field takes it, so one step can hand a network to the next.
- `chainlist_url` (text): This network's page on chainlist.org, for checking the answer by eye.
- `connection` (text): The connection type asked for.
- `count` (number): How many endpoints are in this result.
- `endpoints` (list): The endpoints that matched, in ChainList's own order.
- `is_testnet` (true/false): Whether this is a test network.
- `matched_on` (text): How the Chain field was matched: 'chain ID', 'short name', 'slug', 'name', 'the start of the name' or 'part of the name'.
- `name` (text): The network's name.
- `other_matches` (list): Any other network that answered to the same text. Empty when the match was unambiguous; worth reading when it is not.
- `privacy` (text): The privacy level asked for.
- `recommended_url` (text): The first endpoint, ready to call.
- `source_url` (text): The ChainList document this answer was read from.
- `total_matching` (number): How many matched the filters, before the limit.
- `total_published` (number): How many usable endpoints the network publishes in all. A zero here means the network has none, not that the filters were tight.
- `truncated` (true/false): Whether the limit cut the list short.
- `untracked_count` (number): How many of the matching endpoints log nothing.

**Example output**

```json
{
  "chain_id": 8453,
  "chainlist_url": "https://chainlist.org/chain/8453",
  "connection": "https",
  "count": 2,
  "endpoints": [
    {
      "protocol": "HTTPS",
      "tracking": "none",
      "tracking_label": "Logs nothing",
      "url": "https://base-rpc.publicnode.com"
    },
    {
      "protocol": "HTTPS",
      "tracking": "limited",
      "tracking_label": "Logs some data",
      "url": "https://mainnet.base.org"
    }
  ],
  "is_testnet": false,
  "matched_on": "name",
  "name": "Base",
  "other_matches": [],
  "privacy": "any",
  "recommended_url": "https://base-rpc.publicnode.com",
  "source_url": "https://chainlist.org/rpcs.json",
  "total_matching": 38,
  "total_published": 44,
  "truncated": true,
  "untracked_count": 12
}
```

### Get test network faucets

Find where to get test funds for a test network, so a deployment or a test run does not stall on an empty wallet. Give it your wallet address and the faucets that take one in their own address bar come back ready to open. Ask a live network and it says so, and names the test networks to ask instead rather than coming back empty.

**Inputs**

- Network (`chain`, text, required): Which network to look up. Pick it from the list, or type the name or chain ID of any other network ChainList tracks: 1, Ethereum, eth and ethereum all find Ethereum Mainnet. Where two networks answer to the same name, the live one with the most RPC endpoints is used and the others are named in the result.
- Wallet address (`wallet_address`, text): Optional. The wallet the test funds are for. A few faucets take it in their own address bar, and those links come back complete when you give it.

**Outputs**

- `chain_id` (number): The network's chain ID. Any ChainList step's Chain field takes it, so one step can hand a network to the next.
- `chainlist_url` (text): This network's page on chainlist.org, for checking the answer by eye.
- `count` (number): How many faucets it lists.
- `currency_symbol` (text): The coin the faucet hands out.
- `faucets` (list): Where to get test funds for this network.
- `is_testnet` (true/false): Whether this is a test network. A live network has no faucet.
- `matched_on` (text): How the Chain field was matched: 'chain ID', 'short name', 'slug', 'name', 'the start of the name' or 'part of the name'.
- `name` (text): The network's name.
- `other_matches` (list): Any other network that answered to the same text. Empty when the match was unambiguous; worth reading when it is not.
- `source_url` (text): The ChainList document this answer was read from.
- `test_networks` (list): For a live network, the test networks that carry its name, which are the ones to ask for a faucet instead. Empty for a test network, which is already the right one to ask.
- `wallet_address` (text): The wallet address that was filled in, if any.

**Example output**

```json
{
  "chain_id": 11155111,
  "chainlist_url": "https://chainlist.org/chain/11155111",
  "count": 1,
  "currency_symbol": "ETH",
  "faucets": [
    {
      "ready_to_open": true,
      "url": "http://fauceth.komputing.org?chain=11155111&address=0x1111111111111111111111111111111111111111",
      "wants_wallet_address": true
    }
  ],
  "is_testnet": true,
  "matched_on": "name",
  "name": "Ethereum Sepolia",
  "other_matches": [],
  "source_url": "https://chainlist.org/rpcs.json",
  "test_networks": [],
  "wallet_address": "0x1111111111111111111111111111111111111111"
}
```

### List networks built on a network

List the layer 2s and shards that roll up to one network (the hundred or so built on Ethereum, the handful built on Base) each with the bridges that move funds between the two. Ask it about a layer 2 instead and it says what that one is built on, so the same step answers the question from either end.

**Inputs**

- Network (`chain`, text, required): Which network to look up. Pick it from the list, or type the name or chain ID of any other network ChainList tracks: 1, Ethereum, eth and ethereum all find Ethereum Mainnet. Where two networks answer to the same name, the live one with the most RPC endpoints is used and the others are named in the result.
- Include (`network_type`, text): Whether to include test networks. Both by default, because a search that quietly skips Sepolia looks like a missing network rather than a filter. Every result says which each one is. One of: `all` (Live and test networks), `mainnet` (Live networks only), `testnet` (Test networks only). Default: `all`.
- How many networks (`limit`, number): How many networks to return. From 1 to 200. Default: `50`.

**Outputs**

- `built_on` (object): The network this one is itself built on, with the bridges between them. Empty for a network that stands on its own.
- `chain_id` (number): The network's chain ID. Any ChainList step's Chain field takes it, so one step can hand a network to the next.
- `chainlist_url` (text): This network's page on chainlist.org, for checking the answer by eye.
- `count` (number): How many are in this result.
- `layer_2_count` (number): How many of them are layer 2s.
- `matched_on` (text): How the Chain field was matched: 'chain ID', 'short name', 'slug', 'name', 'the start of the name' or 'part of the name'.
- `name` (text): The network asked about.
- `network_type` (text): Which networks were included.
- `networks` (list): The networks built on it, the most-served first.
- `other_matches` (list): Any other network that answered to the same text. Empty when the match was unambiguous; worth reading when it is not.
- `shard_count` (number): How many of them are shards.
- `source_url` (text): The ChainList document this answer was read from.
- `total_matches` (number): How many there are in all, before the limit.
- `truncated` (true/false): Whether the limit cut the list short.

**Example output**

```json
{
  "built_on": null,
  "chain_id": 1,
  "chainlist_url": "https://chainlist.org/chain/1",
  "count": 2,
  "layer_2_count": 101,
  "matched_on": "chain ID",
  "name": "Ethereum Mainnet",
  "network_type": "mainnet",
  "networks": [
    {
      "bridge_urls": [
        "https://bridge.base.org"
      ],
      "chain_id": 8453,
      "chain_id_hex": "0x2105",
      "chainlist_url": "https://chainlist.org/chain/8453",
      "currency_symbol": "ETH",
      "explorer_url": "https://basescan.org",
      "is_testnet": false,
      "name": "Base",
      "network": "Mainnet",
      "recommended_rpc_url": "https://base-rpc.publicnode.com",
      "relationship": "Layer 2",
      "rpc_endpoint_count": 44,
      "short_name": "base",
      "value_locked_usd": 8793363387.75
    },
    {
      "bridge_urls": [
        "https://bridge.arbitrum.io"
      ],
      "chain_id": 42161,
      "chain_id_hex": "0xa4b1",
      "chainlist_url": "https://chainlist.org/chain/42161",
      "currency_symbol": "ETH",
      "explorer_url": "https://arbiscan.io",
      "is_testnet": false,
      "name": "Arbitrum One",
      "network": "Mainnet",
      "recommended_rpc_url": "https://arbitrum-one-rpc.publicnode.com",
      "relationship": "Layer 2",
      "rpc_endpoint_count": 38,
      "short_name": "arb1",
      "value_locked_usd": 2544000000.0
    }
  ],
  "other_matches": [],
  "shard_count": 0,
  "source_url": "https://chainlist.org/rpcs.json",
  "total_matches": 101,
  "truncated": true
}
```
