> ## Documentation Index
> Fetch the complete documentation index at: https://docs.chainstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Clients

> View all supported blockchain protocol execution clients available on Chainstack, including Geth, Erigon, Reth, Agave, and other node implementations.

## Ethereum clients

### Consensus layer

* Lighthouse — the [Rust](https://github.com/sigp/lighthouse) implementation of the Ethereum Beacon Chain client.

### Execution layer

Ethereum node can have one of the following implementations of the execution layer client:

* Geth — the [Go Ethereum](https://github.com/ethereum/go-ethereum) implementation. It's bigger in size and can be interacted with by using [Geth JSON-RPC methods](https://eth.wiki/json-rpc/API). To get the Geth client on your node, you must deploy a dedicated node in the full or archive mode.
* Erigon — the [Erigon](https://github.com/ledgerwatch/erigon) implementation. It's smaller in size and can be interacted with by using [Erigon RPC methods](https://github.com/ledgerwatch/erigon/blob/devel/cmd/rpcdaemon/README.md#rpc-implementation-status). To get the Erigon client on your node, you must deploy a trader node in the archive mode or a dedicated node in the archive mode.
* Reth — available as a [dedicated node](/docs/dedicated-node).

## Polygon clients

Polygon node can have one of the following client implementations:

* Bor — the native Polygon client. It can be interacted with by using [JSON-RPC methods](https://eth.wiki/json-rpc/API). To get the Bor client on your trader or dedicated node, you must deploy it in the full mode.
* Erigon — the [Erigon](https://github.com/ledgerwatch/erigon) implementation. It can be interacted with by using [Erigon RPC methods](https://github.com/ledgerwatch/erigon/blob/devel/cmd/rpcdaemon/README.md#rpc-implementation-status). To get the Erigon client on your trader or dedicated node, you must deploy it in the archive mode.

## BNB Smart Chain clients

BNB Smart Chain node can have one of the following client implementations:

* Geth — the [Go Ethereum](https://github.com/bnb-chain/bsc) implementation. It's bigger in size and can be interacted with by using [Geth JSON-RPC methods](https://eth.wiki/json-rpc/API). To get the Geth client on your trader or dedicated node, you must deploy in the full mode.
* Erigon — the [Erigon](https://github.com/ledgerwatch/erigon) implementation. It's smaller in size and can be interacted with by using [Erigon RPC methods](https://github.com/ledgerwatch/erigon/blob/devel/cmd/rpcdaemon/README.md#rpc-implementation-status). To get the Erigon client on your trader or dedicated node, you must deploy it in the archive mode.

## Base client

The client is [op-geth](https://github.com/base-org/node).

## Avalanche client

[AvalancheGo](https://github.com/ava-labs/avalanchego) is the node implementation for the Avalanche network in Golang. You can find API documentation in the [Chainstack Avalanche API reference](/reference/avalanche-getting-started).

## Arbitrum client

<Info>
  ### Stylus is supported

  Arbitrum nodes on Chainstack support Stylus.
</Info>

[Nitro](https://github.com/OffchainLabs/nitro) is the official node for the Arbitrum protocol. It is a fully integrated, complete layer 2 optimistic rollup system that includes fraud proofs, the sequencer, token bridges, advanced calldata compression, and more. For available methods, see [Chainstack Arbitrum API reference](/reference/arbitrum-getting-started) and the [official Arbitrum documentation](https://developer.arbitrum.io/).

## zkSync Era

The client is [zkSync Era](https://github.com/matter-labs/zksync-era).

## Polygon zkEVM client

[zkEVM Node](https://github.com/0xPolygonHermez/zkevm-node) is a Go implementation of a node that operates the Polygon zkEVM network. For available methods, see [Chainstack zkEVM API reference](/reference/zkevm-getting-started) and the [official zkEVM documentation](https://developer.arbitrum.io/).

## Optimism client

[Global Nodes](/docs/global-elastic-node) run [op-erigon](https://github.com/testinprod-io/op-erigon).

[Trader Nodes](/docs/trader-node) run [op-geth](https://github.com/ethereum-optimism/op-geth).

## Solana client

Solana — Solana's [official client](https://github.com/solana-labs/solana) is developed in Rust. JSON-RPC methods are available and can be found in the official [Solana documentation](https://docs.solana.com/api/http). For JavaScript applications, use the [@solana/web3.js](https://github.com/solana-labs/solana-web3.js) library as a convenient interface for interacting with a Solana node using RPC methods.

## Scroll

The client is [Geth-based](https://github.com/scroll-tech/scroll).

## Ronin client

Go Ronin — the [Go Ethereum](https://github.com/bnb-chain/bsc) implementation that can be interacted with by using [Geth JSON-RPC methods](https://eth.wiki/json-rpc/API).

## Aptos client

[Aptos-core](https://github.com/aptos-labs/aptos-core) is the official client for the Aptos protocol. Developers can interact with Aptos via its various SDKs, including the [TypeScript SDK](https://aptos.dev/sdks/ts-sdk/index), [Python SDK](https://aptos.dev/sdks/python-sdk), [Rust SDK](https://aptos.dev/sdks/rust-sdk), and [Unity SDK](https://aptos.dev/sdks/unity-sdk), or through its [REST API](https://aptos.dev/nodes/aptos-api-spec/#/).

## Oasis Saphire client

[Oasis-node](https://github.com/oasisprotocol/oasis-core) is written in Go and serves as both a consensus and execution layer client. As it is EVM-compatible, it can be interacted with using the [standard JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/).

## Gnosis clients

### Consensus layer

Lighthouse — the [Rust](https://github.com/sigp/lighthouse) implementation of the Beacon Chain client.

### Execution layer

Nethermind — the [Nethermind](https://github.com/NethermindEth/nethermind) implementation. See the JSON-RPC methods reference in the official [Nethermind documentation](https://docs.nethermind.io/nethermind/ethereum-client/json-rpc).

## Cronos client

[Cronos](https://github.com/crypto-org-chain/cronos) is a fully EVM-compatible chain. Developers can connect to it through the [standard JSON-RPC API](https://ethereum.org/en/developers/docs/apis/json-rpc/) or via libraries like [ethers.js](https://docs.ethers.io/v5/), [web3.js](https://web3js.readthedocs.io/), and [web3.py](https://github.com/ethereum/web3.py).

## Sonic client

[Sonic](https://www.soniclabs.com/) is the mainnet for Fantom and an EVM-compatible node client for Fantom's network. It can be accessed via [standard JSON-RPC methods](https://ethereum.org/en/developers/docs/apis/json-rpc/).

## Fantom client

[Sonic](https://www.soniclabs.com/) is the mainnet for Fantom and an EVM-compatible node client for Fantom's network. It can be accessed via [standard JSON-RPC methods](https://ethereum.org/en/developers/docs/apis/json-rpc/).

## TRON client

[java-tron](https://github.com/tronprotocol/java-tron) is the client. See also the [TRON API reference](https://developers.tron.network/reference/background).

## Starknet client

[Pathfinder](https://docs.starknet.io/documentation/starknet_versions/pathfinder_versions/) is the node implementation for the Starknet protocol. It supports version `v0.2.1` of the Starknet JSON-RPC [specification](https://github.com/starkware-libs/starknet-specs/blob/v0.2.1/api/starknet_api_openrpc.json) with some minor [differences](https://github.com/eqlabs/pathfinder#api-v021).

## Harmony

The client is [Geth-based](https://github.com/harmony-one/harmony).

## Bitcoin client

[Bitcoin Core](https://bitcoin.org/en/download) connects to the Bitcoin peer-to-peer network to download and validate blocks and transactions. See available JSON-RPC API methods in the [Bitcoin Postman collection](/reference/bitcoin-rpc-methods-postman-collection).
