system_version - Hydration RPC Method
Get the node implementation version on Hydration. Essential for compatibility checking, runtime upgrades, and monitoring node deployments across the Polkadot's leading DEX with $200M+ TVL, Omnipool AMM, and native HOLLAR stablecoin network.
Returns the node implementation version string on Hydration. This version reflects the client software version (e.g., 0.9.43-ba6af1743a0), not the on-chain runtime version.
Why Hydration? Build on Polkadot's leading DEX with $200M+ TVL, Omnipool AMM, and native HOLLAR stablecoin with Omnipool with reduced slippage, permissioned listings, 3M DOT DAO allocation, and 200%+ APR farm yields.
When to Use This Method
system_version is essential for DeFi developers, liquidity providers, and DAOs requiring capital-efficient trading:
- Compatibility Checking -- Verify the node client version supports the features your application requires on Hydration
- Upgrade Monitoring -- Track node software versions across your validator or collator fleet after runtime upgrades
- Diagnostics and Debugging -- Include version information in bug reports and support requests for single-sided liquidity provision, cross-chain trading (SOL, KSM, tBTC), and HOLLAR decentralized stablecoin
- Multi-Node Management -- Ensure all nodes in your infrastructure are running consistent versions
Code Examples
Common Use Cases
1. Node Fleet Version Monitoring
Track version consistency across multiple Hydration nodes:
import { ApiPromise, WsProvider } from '@polkadot/api';
async function checkFleetVersions(endpoints) {
const versions = await Promise.all(
endpoints.map(async (endpoint) => {
const provider = new WsProvider(endpoint);
const api = await ApiPromise.create({ provider });
const version = await api.rpc.system.version();
const name = await api.rpc.system.name();
await api.disconnect();
return { endpoint, version: version.toString(), name: name.toString() };
})
);
const unique = new Set(versions.map((v) => v.version));
if (unique.size > 1) {
console.warn('Version mismatch detected across fleet!');
}
versions.forEach((v) => {
console.log(`${v.endpoint}: ${v.name} v${v.version}`);
});
}2. Pre-Upgrade Compatibility Check
Verify node version before executing operations:
async function ensureMinVersion(api, minVersion) {
const version = await api.rpc.system.version();
const versionStr = version.toString();
const [major, minor, patch] = versionStr.split('-')[0].split('.').map(Number);
const [minMajor, minMinor, minPatch] = minVersion.split('.').map(Number);
if (
major < minMajor ||
(major === minMajor && minor < minMinor) ||
(major === minMajor && minor === minMinor && patch < minPatch)
) {
throw new Error(
`Node version ${versionStr} is below minimum ${minVersion}`
);
}
console.log(`Node version ${versionStr} meets minimum ${minVersion}`);
return true;
}3. Node Identity Dashboard
Gather full node identity information:
async function getNodeIdentity(api) {
const [version, name, chain, properties] = await Promise.all([
api.rpc.system.version(),
api.rpc.system.name(),
api.rpc.system.chain(),
api.rpc.system.properties()
]);
return {
client: name.toString(),
version: version.toString(),
chain: chain.toString(),
tokenSymbol: properties.tokenSymbol.toString(),
ss58Format: properties.ss58Format.toString()
};
}Error Handling
Common errors and solutions:
| Error Code | Description | Solution |
|---|---|---|
| -32603 | Internal error | Node may be starting up -- retry after delay |
| -32005 | Rate limit exceeded | Reduce request frequency or implement client-side rate limiting |
| Connection refused | Node unreachable | Verify the RPC endpoint URL and that the node is running |
Related Methods
system_chain-- Get the chain namesystem_name-- Get the node implementation namesystem_properties-- Get chain properties (token symbol, decimals, SS58 format)state_getRuntimeVersion-- Get the on-chain runtime version (spec version, impl version)rpc_methods-- List all available RPC methods
system_chain
Get the chain name on Hydration. Essential for network identification, multi-chain applications, and verifying the correct network connection.
system_name
Get the node implementation name on Hydration. Identify the client software powering your node for diagnostics, compatibility checks, and infrastructure management.