Supported Chains

May 5, 2026 · View on GitHub

Canonical reference for OWS chain families, identifiers, derivation paths, and address formats.

Identifier Types

OWS uses CAIP identifiers throughout. All wallet files, policy contexts, audit logs, and API parameters use these canonical formats — never shorthand aliases.

/** CAIP-2 chain identifier: namespace:reference */
type ChainId = `${string}:${string}`;
// e.g. "eip155:8453", "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp"

/** CAIP-10 account identifier: chain_id:address */
type AccountId = `${ChainId}:${string}`;
// e.g. "eip155:1:0xab16a96D359eC26a11e2C2b3d8f8B8942d5Bfcdb"

/** Asset identifier: chain_id:contract_address or chain_id:native */
type AssetId = `${ChainId}:${string}`;
// e.g. "eip155:8453:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913" (USDC on Base)
// e.g. "eip155:8453:native" (ETH on Base)

The native token refers to the chain's native currency (ETH, SOL, SUI, XRP, BTC, ATOM, TRX, TON, etc.).

Chain Families

OWS groups chains into families that share a cryptographic curve and address derivation scheme. A single mnemonic derives accounts for all families.

FamilyCurveCoin TypeDerivation PathAddress FormatCAIP-2 Namespace
EVMsecp256k160m/44'/60'/0'/0/{index}EIP-55 checksummed hex (0x...)eip155
Solanaed25519501m/44'/501'/{index}'/0'Base58-encoded public keysolana
Bitcoinsecp256k10m/84'/0'/0'/0/{index}Bech32 native segwit (bc1...)bip122
Cosmossecp256k1118m/44'/118'/0'/0/{index}Bech32 (cosmos1...)cosmos
Tronsecp256k1195m/44'/195'/0'/0/{index}Base58Check (T...)tron
TONed25519607m/44'/607'/{index}'Base64url wallet v5r1 (UQ...)ton
Suied25519784m/44'/784'/{index}'/0'/0'0x + BLAKE2b-256 hex (32 bytes)sui
XRPLsecp256k1144m/44'/144'/0'/0/{index}Base58Check (r...)xrpl
Sparksecp256k18797555m/84'/0'/0'/0/{index}spark: + compressed pubkey hexspark
Filecoinsecp256k1461m/44'/461'/0'/0/{index}f1 + base32(blake2b-160)fil
NEARed25519397m/44'/397'/{index}'64-char lowercase hex of pubkey (implicit account)near

Known Networks

Each network has a canonical chain identifier. Endpoint discovery and transport configuration are implementation-specific and are therefore out of scope for the core specification.

EVM Networks

NameCAIP-2 Chain ID
Ethereumeip155:1
Polygoneip155:137
Arbitrumeip155:42161
Optimismeip155:10
Baseeip155:8453
Plasmaeip155:9745
BSCeip155:56
Avalancheeip155:43114
Etherlinkeip155:42793
Tempoeip155:4217
Hyperliquideip155:999

Non-EVM Networks

NameCAIP-2 Chain ID
Solanasolana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Bitcoinbip122:000000000019d6689c085ae165831e93
Cosmoscosmos:cosmoshub-4
Trontron:mainnet
TONton:mainnet
Suisui:mainnet
XRPLxrpl:mainnet
Sparkspark:mainnet
Filecoinfil:mainnet
NEARnear:mainnet
NEAR (testnet)near:testnet

Implementations MAY ship convenience endpoint defaults, but those defaults are deployment choices rather than OWS interoperability requirements.

Shorthand Aliases

Implementations MAY support shorthand aliases in CLI contexts:

ethereum  → eip155:1
base      → eip155:8453
plasma    → eip155:9745
polygon   → eip155:137
arbitrum  → eip155:42161
optimism  → eip155:10
bsc       → eip155:56
avalanche → eip155:43114
etherlink → eip155:42793
tempo       → eip155:4217
hyperliquid → eip155:999
solana    → solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
bitcoin   → bip122:000000000019d6689c085ae165831e93
cosmos    → cosmos:cosmoshub-4
tron      → tron:mainnet
ton       → ton:mainnet
sui       → sui:mainnet
xrpl          → xrpl:mainnet
xrpl-mainnet  → xrpl:mainnet
xrpl-testnet  → xrpl:testnet
xrpl-devnet   → xrpl:devnet
spark     → spark:mainnet
filecoin  → fil:mainnet
near          → near:mainnet
near-testnet  → near:testnet

Aliases MUST be resolved to full CAIP-2 identifiers before any processing. They MUST NOT appear in wallet files, policy files, or audit logs.

HD Derivation

OWS uses BIP-39 mnemonics as the root key material, with BIP-32/BIP-44 derivation for all chains:

Mnemonic (BIP-39)


Master Seed (512 bits via PBKDF2)

    ├── m/44'/60'/0'/0/0    → EVM Account 0
    ├── m/44'/501'/0'/0'    → Solana Account 0
    ├── m/84'/0'/0'/0/0     → Bitcoin Account 0 (native segwit)
    ├── m/44'/118'/0'/0/0   → Cosmos Account 0
    ├── m/44'/195'/0'/0/0   → Tron Account 0
    ├── m/44'/607'/0'       → TON Account 0
    ├── m/44'/784'/0'/0'/0' → Sui Account 0
    ├── m/44'/144'/0'/0/0   → XRPL Account 0
    ├── m/84'/0'/0'/0/0     → Spark Account 0
    ├── m/44'/461'/0'/0/0   → Filecoin Account 0
    └── m/44'/397'/0'       → NEAR Account 0

For mnemonic-based wallets, a single mnemonic derives accounts across all supported chains. Those wallet files store the encrypted mnemonic, and the signer derives the appropriate private key using each chain's coin type and derivation path. Wallets imported from raw private keys instead store encrypted curve-key material directly.

Adding a New Chain

  1. Define a canonical chain identifier, preferably using CAIP-2.
  2. Specify the derivation path and coin type, if applicable.
  3. Specify the address encoding and checksum behavior.
  4. Define the signing and message-signing behavior required by 02-signing-interface.md.
  5. Document any transaction serialization rules needed to produce deterministic signatures.

No changes to OWS core, the signing interface, or the policy engine are needed.

References