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.

@agntn/chains·MIT license· A format check, not proof an address exists. Nothing on this site talks to a chain.