Docs
Supported ChainsMantleJSON-RPC APINetwork Methods

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

Request

This method accepts no parameters.

Response Body

Response
resultString

Client version string, typically in the format ClientName/vX.Y.Z/OS/Runtime

Error Responses

Errors
Error Response-32603

Code Examples

Bash
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:

JavaScript
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:

Python
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 versions

3. Feature Detection by Client

Adjust RPC behavior based on the detected client type:

JavaScript
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 CodeDescriptionSolution
-32603Internal errorNode may be starting up — retry after delay
-32005Rate limit exceededReduce polling frequency or implement backoff
-32601Method not foundThe web3 namespace may be disabled — check node startup flags