Chains
Solana
Base58 decoded to exactly 32 bytes. Character length cannot separate an account from a Bitcoin or TRON address, decoding can.
- create
- create("solana")
- family
- Solana · solana
- symbol
- SOL · 9 decimals
- bip44
- 501
- caip2
- solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
- explorer
- solscan.io
Address format
An account is a 32-byte Ed25519 public key in base58, and the check is exactly that: decode, require 32 bytes. A character window can't do it. Bitcoin and TRON addresses are 34 characters and 25 bytes, the System Program 11111111111111111111111111111111 is 32 characters and 32 bytes, and both sides of that would be misread by a length rule. Input is bounded at 44 characters, the most a 32-byte key can take.
There's no checksum in the format, so there's nothing further to verify. A string that decodes to 32 bytes is a valid account address, whether or not anything lives there.
import { getChain } from "@agntn/chains";
const chain = getChain("sol");
chain.assertAddress("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"); // returned unchanged
chain.type; // "solana"
chain.caip2; // "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"
Spellings
solana, sol, Solana. The key is solana, the rest resolve through getChain.