Skip to main content

system_properties – Mythos JSON-RPC Method

Description#

Returns network-specific properties for the Mythos blockchain including token symbols, decimal precision, and SS58 address format. This method provides essential chain configuration data that wallets, explorers, and applications need to correctly format token amounts and blockchain addresses. The properties returned are fundamental for ensuring accurate display of balances, proper address encoding, and multi-token support in applications.

Parameters#

This method does not require any parameters.

Returns#

FieldTypeDescription
tokenSymbolarrayArray of token symbols supported by the chain
tokenDecimalsarrayArray of decimal places for each token
ss58FormatnumberSS58 address format identifier for the chain

Use Cases#

  1. Wallet Integration: Configure token display settings and address formatting in wallets
  2. Balance Formatting: Convert raw token amounts to human-readable values with correct decimals
  3. Address Validation: Encode and decode addresses using the correct SS58 format
  4. Multi-Token Support: Handle multiple native tokens with different decimal configurations
  5. Explorer Development: Display addresses and balances correctly in block explorers
  6. DApp Configuration: Initialize web3 applications with proper chain-specific settings

Request Example#

curl -s https://api-mythos.n.dwellir.com/YOUR_API_KEY \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"method": "system_properties",
"params": [],
"id": 1
}'

Response Example#

{
"jsonrpc": "2.0",
"result": {
"ss58Format": 29972,
"tokenDecimals": [18],
"tokenSymbol": ["MYTH"]
},
"id": 1
}

Code Examples#

import { ApiPromise, WsProvider } from '@polkadot/api';
import { formatBalance } from '@polkadot/util';

const api = await ApiPromise.create({
provider: new WsProvider('wss://api-mythos.n.dwellir.com/YOUR_API_KEY')
});
const properties = await api.rpc.system.properties();

const ss58Format = properties.ss58Format.unwrapOr(29972);
const tokenDecimals = properties.tokenDecimals.unwrapOr([18]);
const tokenSymbol = properties.tokenSymbol.unwrapOr(['MYTH']);

// Configure formatBalance with chain properties
formatBalance.setDefaults({
decimals: tokenDecimals.map(d => d.toNumber()),
unit: tokenSymbol.map(s => s.toString())
});

console.log(`Chain uses ${tokenSymbol[0]} with ${tokenDecimals[0]} decimals`);
console.log(`SS58 Format: ${ss58Format}`);

Best Practices#

  • Cache chain properties during application initialization to reduce RPC calls
  • Use token decimals to convert between raw and display amounts consistently
  • Validate SS58 format when encoding/decoding addresses
  • Handle multiple tokens by iterating through tokenSymbol and tokenDecimals arrays
  • Store properties in application configuration for offline reference
  • Update UI components with correct token symbols and precision