Skip to main content
POST
web3_clientVersion
Ethereum API method that returns the client type and version running on the Ethereum node. This information can be useful to developers to verify that a node they are connecting to is compatible with their needs.
Get your own node endpoint todayStart for free and get your app to production levels immediately. No credit card required.You can sign up with your GitHub, X, Google, or Microsoft account.

Parameters

  • none

Response

  • string — a string identifying the type of client, version, operating system, and language version running on the node

web3_clientVersion code examples

Learn more about the ChainstackProvider in ethers.js: ethers ChainstackProvider Documentation.

Use case

A use case for the web3_clientVersion method can be to verify which client is running to then decide which method to run. Let’s say you have a DApp that needs to retrieve all of the transaction receipts in a block; the Erigon client has a method for this, eth_getBlockReceipts, but with Geth, this method is only available starting from V1.13.0. You can use the web3_clientVersion method in your logic to identify which client you are using to see if you have the method available.
Read Expanding your blockchain horizons: The eth_getBlockReceipts emulator to learn how to build a program to emulate eth_getBlockReceipts on any EVM-compatible chain.
Here is an implementation of this use case using ethers.js:
index.js
Let’s break down the code:
  1. The getBlockReceipts Method:
    The getBlockReceipts function is a helper that calls the eth_getBlockReceipts JSON-RPC method directly with chainstack.send, passing a single parameter blockNumber. Because ethers.js does not expose a dedicated helper for this method, provider.send is used to issue the raw JSON-RPC call and return the resulting receipts.
  2. The getClient Function:
    This function retrieves the client version by calling the web3_clientVersion JSON-RPC method without parameters through chainstack.send. It returns the full client version string.
  3. The getClientName Function:
    getClientName calls getClient to get the complete client version string. It then extracts both the client’s name and its version by splitting the version string at the first / and - characters. The function concatenates these parts to form a string in the format “ClientName/Version”.
  4. The getAllReceipts Function:
    This function uses getClientName to retrieve the name and version of the client in a combined format. It checks if the client is Geth and, if so, further verifies whether its version is greater than or equal to 1.13.0 using the parseVersion and isVersionGreaterThanOrEqual functions. If the client is Geth with a supported version or Erigon, the function proceeds to fetch block receipts using the getBlockReceipts helper. If the client is neither a supported version of Geth nor Erigon, it logs a message indicating this.
  5. Version Parsing and Comparison:
    Additional functions parseVersion and isVersionGreaterThanOrEqual are included for parsing the version string and comparing it against a specified minimum version. parseVersion extracts the semantic version number from the client version string, and isVersionGreaterThanOrEqual compares this version against the specified minimum version, 1.13.0 in this case.
  6. Main Function and Execution Flow:
    The main function serves as the entry point for execution. It attempts to call getAllReceipts with a specified block identifier, handling any exceptions and logging the results if available.

Body

application/json
id
integer
default:1
jsonrpc
string
default:2.0
method
string
default:web3_clientVersion
params
array

Response

200 - application/json

The client running on this node.

jsonrpc
string
id
integer
result
string
Last modified on June 25, 2026