system_chain - JSON-RPC Method
Description
Returns the name of the chain the node is connected to. This JSON-RPC method is useful for identifying which Moonbase Alpha network (mainnet, testnet, or custom chain) the node is operating on.
Parameters
This method does not require any parameters.
Returns
Field | Type | Description |
---|---|---|
result | string | The name of the chain |
Request Example
{
"jsonrpc": "2.0",
"method": "system_chain",
"params": [],
"id": 1
}
Response Example
{
"jsonrpc": "2.0",
"result": "Moonbase Alpha",
"id": 1
}
Code Examples
- cURL
- Python
- JavaScript
curl https://api-moonbase-alpha.n.dwellir.com/YOUR_API_KEY \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "system_chain",
"params": [],
"id": 1
}'
import requests
import json
def get_chain_name():
url = "https://api-moonbase-alpha.n.dwellir.com/YOUR_API_KEY"
headers = {
"Content-Type": "application/json"
}
payload = {
"jsonrpc": "2.0",
"method": "system_chain",
"params": [],
"id": 1
}
response = requests.post(url, headers=headers, data=json.dumps(payload))
data = response.json()
if "error" in data:
raise Exception(f"RPC Error: {data['error']}")
return data["result"]
# Network detection
chain = get_chain_name()
print(f"Connected to: {chain}")
const getChainName = async () => {
const response = await fetch('https://api-moonbase-alpha.n.dwellir.com/YOUR_API_KEY', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
jsonrpc: '2.0',
method: 'system_chain',
params: [],
id: 1
})
});
const data = await response.json();
return data.result;
};
// Verify correct network
const chain = await getChainName();
console.log(`Connected to: ${chain}`);
if (chain !== 'Moonbase Alpha') {
console.warn('Warning: Not connected to Moonbase Alpha mainnet!');
}
Common Chain Names
Chain Name | Network Type | Description |
---|---|---|
Moonbase Alpha | Testnet | Moonbeam public test network |
Custom names | Local/Dev | Development chains |
Use Cases
- Network Verification: Ensure connected to correct network
- Configuration Loading: Load network-specific settings
- Multi-chain Support: Handle different networks dynamically
- Error Prevention: Prevent mainnet transactions on testnet
- UI Adaptation: Display network-specific information
Network Detection Pattern
class NetworkManager {
constructor() {
this.networks = {
'Moonbase Alpha': {
symbol: 'DEV',
decimals: 18,
explorer: 'https://moonbase.moonscan.io'
}
};
}
async detectNetwork() {
const chain = await getChainName();
const config = this.networks[chain];
if (!config) {
throw new Error(`Unknown network: ${chain}`);
}
return { chain, ...config };
}
async validateNetwork(expectedChain) {
const chain = await getChainName();
if (chain !== expectedChain) {
throw new Error(
`Wrong network! Expected ${expectedChain}, got ${chain}`
);
}
return true;
}
}
Notes
- Chain name is configured in the chain specification
- Custom chains can have any name
- Use in combination with
system_properties
for full network info - Chain name doesn't change during runtime
- Case-sensitive string comparison
Related Methods
state_getRuntimeVersion
- Get runtime versionsystem_health
- Get node healthrpc_methods
- List available methodsstate_getMetadata
- Get runtime metadata