web3_clientVersion - Mantle RPC Method
Get the client software version of your Mantle node. Essential for compatibility checks, fleet monitoring, and debugging client-specific behavior.
Returns the current client software version string for your Mantle node, including the client name, version number, OS, and runtime.
Why Mantle? Build on the world's largest ZK rollup by TVL with $2.5B+ secured and deep Bybit integration with near-instant ZK finality via OP Succinct, $6.2B treasury backing, mETH liquid staking, and 25% Bybit trading fee discounts.
When to Use This Method
web3_clientVersion is valuable for DeFi developers, liquid staking builders, and teams seeking institutional exchange integration:
- 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-mantle-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 Mantle node. Essential for network health monitoring, peer discovery verification, and load balancer decisions.
web3_sha3
Compute the Keccak-256 hash of given data on Mantle. Useful for hash verification, smart contract development, and data integrity checks.