Monero
Monero
"monero""xmr""Monero"
- Symbol
- XMR · 12 decimals
- Coin type
- 128
- CAIP-2
- monero:418…c270
- Checks
- address · txid
Network
- CAIP-2
monero:418015bb9ae982a1975da7d79277c270 - Magic
none - PoW
randomx - RPC
none - Explorerxmrchain.net
Access
- Create
create("monero") - Resolve
getChain("xmr") - CLI
chains info xmr - Tryplayground with a sample address
Address format
Monero encodes base58 in blocks: every eight bytes become eleven digits and the final five bytes become seven, so a standard address or subaddress is 95 characters and an integrated address 106. The check decodes each block, requires it to fit its byte width, and reads the network and type byte off the first one: 18 for a standard address (4…), 42 for a subaddress (8…), 19 for an integrated address (4…, 106 characters). Testnet and stagenet prefixes are rejected.
The last four bytes are the head of the Keccak-256 of everything before them, and they're verified: one character off fails. The two public keys aren't checked against the curve. Twelve decimals, 1,000,000,000,000 piconero per XMR.
import { getChain } from "@agntn/chains";
const chain = getChain("xmr");
chain.assertAddress("4AdUndXHHZ6cfufTMvppY6JwXNouMBzSkbLYfpAV5Usx3skxNgYeYTRj5UzqtReoS44qo9mtmXCqY45DJ852K5Jv2684Rge"); // returned unchanged
chain.type; // "monero"
chain.caip2; // "monero:418015bb9ae982a1975da7d79277c270"
Spellings
monero, xmr, Monero. The key is monero, the rest resolve through getChain.