web3_clientVersion - Zetachain RPC Method
Get the client software version of your Zetachain node. Essential for compatibility checks, fleet monitoring, and debugging client-specific behavior.
Returns the current client software version string for your Zetachain node, including the client name, version number, OS, and runtime.
Why Zetachain? Build on the universal omnichain blockchain enabling cross-chain smart contracts across 50+ chains including Bitcoin with native Bitcoin support, 50+ chain interoperability via UNISON, no bridging required, and partnerships with Curve and SushiSwap.
When to Use This Method
web3_clientVersion is valuable for cross-chain dApp developers, Bitcoin DeFi builders, and teams requiring native multi-chain interoperability:
- Client Compatibility Checks — Verify the node runs a client version that supports the RPC methods your application needs
- Fleet Version Monitoring — Track client versions across a multi-node infrastructure to coordinate upgrades
- Debugging Client-Specific Behavior — Identify which client (Geth, Erigon, Nethermind, Besu, etc.) is serving requests when behavior differs
- Security Auditing — Detect nodes running outdated versions with known vulnerabilities
Request Parameters
This method accepts no parameters.
Response Body
Client version string, typically in the format ClientName/vX.Y.Z/OS/Runtime
Error Responses
Code Examples
curl -X POST https://api-zetachain-mainnet.n.dwellir.com/YOUR_API_KEY \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "web3_clientVersion",
"params": [],
"id": 1
}'Common Use Cases
1. Client Version Parser
Parse the version string to extract structured information:
function parseClientVersion(versionString) {
const parts = versionString.split('/');
return {
client: parts[0],
version: parts[1] || 'unknown',
os: parts[2] || 'unknown',
runtime: parts[3] || 'unknown'
};
}
async function getNodeInfo(provider) {
const version = await provider.send('web3_clientVersion', []);
const parsed = parseClientVersion(version);
console.log(`Client: ${parsed.client}`);
console.log(`Version: ${parsed.version}`);
console.log(`OS: ${parsed.os}`);
console.log(`Runtime: ${parsed.runtime}`);
return parsed;
}2. Fleet Version Audit
Check all nodes in a fleet and report version inconsistencies:
import requests
def audit_fleet_versions(endpoints):
versions = {}
for endpoint in endpoints:
try:
response = requests.post(
endpoint,
json={'jsonrpc': '2.0', 'method': 'web3_clientVersion', 'params': [], 'id': 1},
timeout=5
)
version = response.json()['result']
versions[endpoint] = version
except Exception as e:
versions[endpoint] = f'ERROR: {e}'
# Group by client version
grouped = {}
for endpoint, version in versions.items():
grouped.setdefault(version, []).append(endpoint)
for version, nodes in grouped.items():
print(f'{version}: {len(nodes)} node(s)')
if len(grouped) > 1:
print('WARNING: Inconsistent versions detected across fleet')
return versions3. Feature Detection by Client
Adjust RPC behavior based on the detected client type:
async function detectClientCapabilities(provider) {
const version = await provider.send('web3_clientVersion', []);
const client = version.split('/')[0].toLowerCase();
const capabilities = {
supportsDebugTrace: ['geth', 'erigon'].includes(client),
supportsParityTrace: ['openethereum', 'nethermind', 'erigon'].includes(client),
supportsEthSubscribe: true, // all modern clients
};
console.log(`Client "${client}" capabilities:`, capabilities);
return capabilities;
}Error Handling
| Error Code | Description | Solution |
|---|---|---|
| -32603 | Internal error | Node may be starting up — retry after delay |
| -32005 | Rate limit exceeded | Reduce polling frequency or implement backoff |
| -32601 | Method not found | The web3 namespace may be disabled — check node startup flags |
Related Methods
net_version— Get the network IDeth_syncing— Check node sync progressweb3_sha3— Compute Keccak-256 hash via RPCnet_peerCount— Get number of connected peers
net_peerCount
Get the number of peers connected to your Zetachain node. Essential for network health monitoring, peer discovery verification, and load balancer decisions.
web3_sha3
Compute the Keccak-256 hash of given data on Zetachain. Useful for hash verification, smart contract development, and data integrity checks.