Chains
Arweave
Canonical 43-character base64url: a 32-byte hash with no padding and zero unused bits. Transaction IDs share the format, so a match cannot tell them apart.
Chain / Arweave
Arweave
"arweave""ar""Arweave"
- Symbol
- AR · 12 decimals
- Coin type
- 472
- CAIP-2
- arweave:7wIU
- Checks
- address · txid
fields set 6 / 9
Network
- CAIP-2
arweave:7wIU - Magic
none - PoW
none - RPC
arweave.net - Explorerviewblock.io/arweave
Access
- Create
create("arweave") - Resolve
getChain("ar") - CLI
chains info ar - Tryplayground with a sample address
Address format
A 32-byte hash in unpadded base64url, 43 characters, with the two unused bits of the last digit required to be zero. That's why the last character can only be one of AEIMQUYcgkosw048. The optional :checksum suffix isn't supported and an address carrying one is rejected.
Transaction IDs are the same 32 bytes in the same encoding, so a string that fits could be either. This check tells you it's a well formed Arweave identifier, not that it's a wallet. assertTxid runs the same rule under its own error.
import { getChain } from "@agntn/chains";
const chain = getChain("ar");
chain.assertAddress("kY9RAgTJEImkBpiKgVeXrsGV02T-D4dI3ZvSpnn7HSk"); // returned unchanged
chain.type; // "arweave"
chain.caip2; // "arweave:7wIU"
Spellings
arweave, ar, Arweave. The key is arweave, the rest resolve through getChain.