⚠️Blast API (blastapi.io) ends Oct 31. Migrate to Dwellir and skip Alchemy's expensive compute units.
Switch Today →
Skip to main content

web3_clientVersion

The web3_clientVersion method returns detailed version information about the ZetaChain node client software currently running. This method provides essential metadata for compatibility verification, debugging, security auditing, and ensuring your applications interact with properly configured and up-to-date node infrastructure in ZetaChain's omnichain ecosystem.

The version string typically includes the client name, version number, operating system, and build information. This comprehensive identification helps developers ensure they're connecting to compatible nodes and assists infrastructure teams in maintaining consistent deployment standards across their ZetaChain node fleet. Given ZetaChain's unique architecture that combines Cosmos SDK with EVM compatibility, understanding client versions is particularly important for ensuring proper cross-chain functionality.

Understanding client versions is critical for ZetaChain development because different client versions may support different omnichain features, have varying cross-chain performance characteristics, or include important security patches for both the EVM layer and Cosmos layer. Regularly checking client versions helps maintain secure and efficient omnichain operations.

Parameters

No parameters required. This is a read-only informational method.

{
"jsonrpc": "2.0",
"method": "web3_clientVersion",
"params": [],
"id": 1
}

Returns

String - A string containing the client name, version number, operating system, and build information. Format varies by client implementation.

Example return values:

  • zetacored/v12.0.0/linux-amd64/go1.20.3
  • Geth/v1.11.5-zetachain/linux-amd64/go1.20.1

Use Cases

  1. Compatibility Verification: Ensure your dApp is connecting to nodes running compatible client versions
  2. Security Auditing: Identify nodes running outdated versions with known vulnerabilities
  3. Version Tracking: Maintain inventory of client versions across your node infrastructure
  4. Support Diagnostics: Collect version information when troubleshooting issues or reporting bugs
  5. Feature Detection: Determine whether connected nodes support specific RPC methods or omnichain features
  6. Compliance Monitoring: Verify that nodes meet organizational standards for client versions

Best Practices for Production

  • Log client versions during application startup for debugging and audit trails
  • Implement version compatibility checks to warn users about unsupported client versions
  • Monitor client version distribution across your node pool for upgrade planning
  • Set up alerts for nodes running significantly outdated versions
  • Document minimum supported client versions in your application requirements
  • Use version information in error reports to help diagnose version-specific issues
  • Consider client diversity in production environments to enhance network resilience

Integration with Web3 Libraries

Using ethers.js

import { JsonRpcProvider } from 'ethers';

const provider = new JsonRpcProvider('https://zetachain-evm.blockpi.network/v1/rpc/public');

async function checkClientCompatibility() {
try {
const version = await provider.send('web3_clientVersion', []);
console.log('Connected to ZetaChain node:', version);

// Parse version for compatibility checks
const versionMatch = version.match(/v(\d+)\.(\d+)\.(\d+)/);

if (versionMatch) {
const [, major, minor, patch] = versionMatch;
console.log(`Version: ${major}.${minor}.${patch}`);

// Example: Check minimum version requirement for omnichain features
if (parseInt(major) < 12) {
console.warn('Client version may not support latest omnichain features. Consider upgrading.');
}
}

return version;
} catch (error) {
console.error('Failed to retrieve client version:', error);
return null;
}
}

// Use during initialization
async function initializeOmnichainApp() {
const version = await checkClientCompatibility();

if (version) {
console.log('Omnichain application initialized with compatible client');
} else {
console.error('Failed to verify client compatibility');
}
}

Using web3.js

import Web3 from 'web3';

const web3 = new Web3('https://zetachain-evm.blockpi.network/v1/rpc/public');

async function getZetaNodeInfo() {
try {
const [version, networkId, listening, peerCount] = await Promise.all([
web3.eth.getNodeInfo(),
web3.eth.net.getId(),
web3.eth.net.isListening(),
web3.eth.net.getPeerCount()
]);

const nodeInfo = {
clientVersion: version,
networkId,
listening,
peers: peerCount,
timestamp: new Date().toISOString()
};

console.log('ZetaChain Node Information:', nodeInfo);
return nodeInfo;
} catch (error) {
console.error('Failed to retrieve node information:', error);
throw error;
}
}

Example Response

{
"jsonrpc": "2.0",
"id": 1,
"result": "zetacored/v12.0.0/linux-amd64/go1.20.3"
}

The response indicates:

  • Client: zetacored (ZetaChain's official client)
  • Version: 12.0.0
  • Platform: Linux AMD64
  • Go version: 1.20.3