Get you 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
Use case
A use case for theweb3_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 transactions receipts in a block; the Erigon and Bor clients both have a method for this, but the eth_getBlockReceipts method from Erigon will not work on Bor, and the eth_getTransactionReceiptsByBlock method from Bor will not work on Erigon. You can use the web3_clientVersion method in your logic to first identify which method must be used.
Here is an implementation of this use case using web3.js:
index.js
getBlockReceipts function uses the web3.extend method to extend the eth property of the web3 object with a new method called getBlockReceipts. This method calls the eth_getBlockReceipts JSON-RPC method with a single parameter blockId and formats the input and output values. The function then calls the getBlockReceipts method using the web3.eth.getBlockReceipts call and returns the resulting receipts.
The getTransactionReceiptsByBlock function similarly extends the eth property of the web3 object with a new method called getTransactionReceiptsByBlock. This method calls the eth_getTransactionReceiptsByBlock JSON-RPC method with a single parameter blockId and formats the input and output values. The function then calls the getTransactionReceiptsByBlock method using the web3.eth.getTransactionReceiptsByBlock call and returns the resulting receipts.
The getClientVersion function extends the eth property of the web3 object with a new method called getClientVersion. This method calls the web3_clientVersion JSON-RPC method with no parameters and formats the input and output values. The function then calls the getClientVersion method using the web3.eth.getClientVersion call and returns the resulting client version.
The getClientName function calls getClientVersion to get the client version and extracts the name of the client by splitting the version string at the first / character.
The getAllReceipts function calls getClientName to get the name of the client and then selects the appropriate method to use for retrieving the receipts. If the client is Bor, it calls getTransactionReceiptsByBlock, and if the client is Erigon, it calls getBlockReceipts. If the client is neither Bor nor Erigon, the function logs a message and returns null.Body
application/json