system_version - Manta Atlantic RPC Method
Get the node implementation version on Manta Atlantic. Essential for compatibility checking, runtime upgrades, and monitoring node deployments across the the ZK Layer 1 on Polkadot enabling private transactions and on-chain compliance identities network.
Returns the node implementation version string on Manta Atlantic. This version reflects the client software version (e.g., 0.9.43-ba6af1743a0), not the on-chain runtime version.
Why Manta Atlantic? Build on the ZK Layer 1 on Polkadot enabling private transactions and on-chain compliance identities with zkSNARK-powered privacy, modular compliance identities, MANTA token staking hub, and end-to-end transaction privacy.
When to Use This Method
system_version is essential for privacy-focused developers, DeFi builders requiring private swaps, and teams needing zkSNARK capabilities:
- Compatibility Checking -- Verify the node client version supports the features your application requires on Manta Atlantic
- 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 private asset transfers, zkNFTs, on-chain compliance identities, and private parachain asset swaps
- Multi-Node Management -- Ensure all nodes in your infrastructure are running consistent versions
Best Practices
- Check the runtime version before using version-specific Substrate APIs
- Track version changes during runtime upgrades to detect compatibility issues
- Use with
system_chainandsystem_propertiesfor full network context - Different nodes on the same network should return the same version (unless upgrading)
Code Examples
Common Use Cases
1. Node Fleet Version Monitoring
Track version consistency across multiple Manta Atlantic 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 Manta Atlantic. Essential for network identification, multi-chain applications, and verifying the correct network connection.
system_name
Get the node implementation name on Manta Atlantic. Identify the client software powering your node for diagnostics, compatibility checks, and infrastructure management.