system_chain - Moonbeam RPC Method
Get the chain name on Moonbeam. Essential for network identification, multi-chain applications, and verifying the correct network connection.
Returns the chain name of the Moonbeam network. This identifies the specific chain or network the node is connected to (e.g., "Polkadot", "Kusama", "Westend").
Why Moonbeam? Build on the cross-chain connected EVM platform on Polkadot with $65M+ TVL and 100+ projects with full EVM compatibility on Polkadot, native XCM cross-chain messaging, 10K+ TPS, 24% staking APR, and $0.015 transaction costs.
When to Use This Method
system_chain is essential for cross-chain dApp developers, Polkadot builders, and teams requiring multi-chain interoperability:
- Network Verification -- Confirm your application is connected to the correct Moonbeam network before processing transactions
- Multi-Chain Applications -- Dynamically identify which Substrate chain you are interacting with in cross-chain or multi-network dApps
- UI Display -- Show the connected network name in wallet interfaces and dashboards for cross-chain DeFi, multi-chain dApps, and Ethereum-to-Polkadot bridging via XCM, Axelar, LayerZero, and Wormhole
- Configuration Validation -- Verify endpoint configuration matches the expected chain during deployment
Code Examples
Common Use Cases
1. Network Connection Verification
Validate that your application connects to the correct chain before processing any transactions:
import { ApiPromise, WsProvider } from '@polkadot/api';
async function connectAndVerify(endpoint, expectedChain) {
const provider = new WsProvider(endpoint);
const api = await ApiPromise.create({ provider });
const chain = await api.rpc.system.chain();
const chainName = chain.toString();
if (chainName !== expectedChain) {
await api.disconnect();
throw new Error(
`Expected "${expectedChain}" but connected to "${chainName}"`
);
}
console.log(`Verified connection to ${chainName}`);
return api;
}
// Usage
const api = await connectAndVerify('https://api-moonbeam.n.dwellir.com/YOUR_API_KEY', 'Moonbeam');2. Multi-Chain Router
Route operations based on detected chain identity:
async function getChainConfig(api) {
const [chain, properties] = await Promise.all([
api.rpc.system.chain(),
api.rpc.system.properties()
]);
const chainName = chain.toString();
const configs = {
Polkadot: { explorer: 'https://polkadot.subscan.io', confirmations: 1 },
Kusama: { explorer: 'https://kusama.subscan.io', confirmations: 1 },
};
const config = configs[chainName] || { explorer: null, confirmations: 1 };
return {
name: chainName,
tokenSymbol: properties.tokenSymbol.toString(),
tokenDecimals: properties.tokenDecimals.toJSON(),
...config
};
}3. Health Check with Chain Identity
Include chain identity in health-check monitoring:
async function healthCheck(api) {
const [chain, name, version] = await Promise.all([
api.rpc.system.chain(),
api.rpc.system.name(),
api.rpc.system.version()
]);
return {
status: 'healthy',
chain: chain.toString(),
nodeImplementation: name.toString(),
nodeVersion: version.toString(),
timestamp: new Date().toISOString()
};
}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_name-- Get the node implementation namesystem_version-- Get the node implementation versionsystem_properties-- Get chain properties (token symbol, decimals, SS58 format)state_getRuntimeVersion-- Get the on-chain runtime versionrpc_methods-- List all available RPC methods
system_health
Check node health status on Moonbeam. Returns peer count, sync status, and connectivity — essential for monitoring, load balancing, and infrastructure management on the cross-chain connected EVM platform on Polkadot with $65M+ TVL and 100+ projects.
system_version
Get the node implementation version on Moonbeam. Essential for compatibility checking, runtime upgrades, and monitoring node deployments across the the cross-chain connected EVM platform on Polkadot with $65M+ TVL and 100+ projects network.