web3_clientVersion - Tempo RPC Method
Get the client software version of your Tempo node. Essential for compatibility checks, fleet monitoring, and debugging client-specific behavior.
Returns the current client software version string for your Tempo node, including the client name, version number, OS, and runtime.
Why Tempo? Build on a payments-first EVM chain with deterministic settlement and stablecoin-native fees with no native gas token, fees denominated in supported USD stablecoins, and full EVM RPC compatibility.
When to Use This Method
web3_clientVersion is valuable for payment application developers, wallet teams, stablecoin issuers, and treasury automation builders:
- 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-tempo-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 Tempo node. Essential for network health monitoring, peer discovery verification, and load balancer decisions.
web3_sha3
Compute the Keccak-256 hash of given data on Tempo. Useful for hash verification, smart contract development, and data integrity checks.