Skip to content

Appendix C · Asset IDs

TRN uses an integer asset id as the primary identifier inside the runtime. The EVM-side ERC-20 mirror is derived deterministically — see Appendix B.

AssetidSymbolDecimals (Substrate)Decimals (EVM)Notes
XRP2XRP618Native gas asset on TRN. Bridged 1:1 from XRPL.
ROOT1ROOT618Native staking + governance token.
SYLO3172SYLO1818Sylo platform token.
ASTO4196ASTO1818Altered State Machine token.
VTX3VTX618Vortex distribution voucher.
USDT1984USDT618Bridged Tether (Ethereum).

Decimal asymmetry

EVM-side balances are scaled to 18 decimals for ERC-20 compatibility. Substrate-side balances use the asset's native decimals (6 for XRP/ROOT/VTX, 18 for SYLO/ASTO). When converting between the two, scale by 10^(18 - substrateDecimals).

How to verify

Asset ids and metadata can be queried with the assets pallet:

ts
const meta = await api.query.assets.metadata(2); // XRP
console.log(meta.symbol.toUtf8(), meta.decimals.toNumber());

Or via the EVM ERC-20 mirror:

ts
import { erc20Abi, getContract } from 'viem';
const erc20 = getContract({ abi: erc20Abi, address: '0xCCCCCCCC00000000000000000000000000000002', client });
const symbol = await erc20.read.symbol();
Asset ids cross-checked against the Rootscan token list and the @therootnetwork/evm constants. Treat new assets as authoritative only after looking them up on Rootscan.

Curated independently by Codeology. Source-attributed reference for The Root Network. Not affiliated with Futureverse / TRN Labs.