Supported Chains

Explore mainnet and testnet support, curve abstraction, RPC handling, and share selection for supported blockchains.

Curve Abstraction

The SDK separates chains by their signing curve. When you call sign(), sendAssets(), or any enclave method, you pass the share for the curve that chain uses — not a chain-specific share. This means one wallet covers all chains.

CurveUsed for
SECP256K1All EVM chains, Bitcoin, Tron
ED25519Solana, Stellar

Supported Mainnets

ChainWalletChain enum valueCAIP-2CurveRequires rpcUrl
MonadMONAD_MAINNETeip155:143SECP256K1
EthereumETHEREUM_MAINNETeip155:1SECP256K1No
SolanaSOLANA_MAINNETsolana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpED25519No
StellarSTELLAR_MAINNETstellar:pubnetED25519Yes
TronTRON_MAINNETtron:mainnetSECP256K1Yes
BitcoinBITCOIN_MAINNETbip122:000000000019d6689c085ae165831e93-p2wpkhSECP256K1Yes
Arbitrum OneARBITRUM_MAINNETeip155:42161SECP256K1No
Avalanche C-ChainAVALANCHE_MAINNETeip155:43114SECP256K1No
BaseBASE_MAINNETeip155:8453SECP256K1No
OptimismOPTIMISM_MAINNETeip155:10SECP256K1No
PolygonPOLYGON_MAINNETeip155:137SECP256K1No
CeloCELO_MAINNETeip155:42220SECP256K1Yes
BNB Smart ChainBSC_MAINNETeip155:56SECP256K1
Arbitrum NovaARBITRUM_NOVA_MAINNETeip155:42170SECP256K1
Gnosis ChainGNOSIS_MAINNETeip155:100SECP256K1
FantomFANTOM_MAINNETeip155:250SECP256K1
RootstockROOTSTOCK_MAINNETeip155:30SECP256K1
zkSync EraZKSYNC_MAINNETeip155:324SECP256K1
ChilizCHILIZ_MAINNETeip155:88888SECP256K1
CronosCRONOS_MAINNETeip155:25SECP256K1
RoninRONIN_MAINNETeip155:2020SECP256K1
LiskLISK_MAINNETeip155:1135SECP256K1
LitecoinLITECOIN_MAINNETbip122:12a765e31ffd4059bada1e25190f6e9SECP256K1

Supported Testnets

ChainWalletChain enum valueCAIP-2CurveRequires rpcUrl
Ethereum SepoliaETHEREUM_SEPOLIAeip155:11155111SECP256K1No
Solana DevnetSOLANA_DEVNETsolana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1ED25519
Stellar TestnetSTELLAR_TESTNETstellar:testnetED25519
Tron NileTRON_NILEtron:nileSECP256K1
Tron ShastaTRON_SHASTAtron:shastaSECP256K1
Bitcoin TestnetBITCOIN_TESTNETbip122:000000000933ea01ad0ee984209779ba-p2wpkhSECP256K1
Arbitrum SepoliaARBITRUM_SEPOLIAeip155:421614SECP256K1
Avalanche FujiAVALANCHE_FUJIeip155:43113SECP256K1
Base SepoliaBASE_SEPOLIAeip155:84532SECP256K1
Optimism SepoliaOPTIMISM_SEPOLIAeip155:11155420SECP256K1
Polygon AmoyPOLYGON_AMOYeip155:80002SECP256K1
BNB Smart Chain TestnetBSC_TESTNETeip155:97SECP256K1
Monad TestnetMONAD_TESTNETeip155:10143SECP256K1
Gnosis ChiadoGNOSIS_CHIADOeip155:10200SECP256K1
Rootstock TestnetROOTSTOCK_TESTNETeip155:31SECP256K1
zkSync SepoliaZKSYNC_SEPOLIAeip155:300SECP256K1
Chiliz TestnetCHILIZ_TESTNETeip155:88882SECP256K1

Choosing the Right Share

Use WALLET_CHAINS[chain].curve to look up which share to pass at runtime:

import { WALLET_CHAINS, WalletChain } from "@tatumio/wallet-sdk";

const chain = WalletChain.SOLANA_MAINNET;
const curve = WALLET_CHAINS[chain].curve; // "ED25519"

await client.sendAssets({
  body: {
    share: shares[curve].share,  // shares.ED25519.share
    chain,
    to: "SolanaAddressHere",
    token: "NATIVE",
    amount: "0.5",
  },
});

Chain Configuration

getWalletChainConfig(chain) returns the full config object for a chain:

import { getWalletChainConfig, WalletChain } from "@tatumio/wallet-sdk";

const config = getWalletChainConfig(WalletChain.ETHEREUM_MAINNET);
// {
//   chainId: "eip155:1",
//   curve: "SECP256K1",
//   requiresRpcUrl: false,
//   tatumRpcNetwork: "ethereum-mainnet"
// }

RPC Handling

Automatic RPC Resolution

For chains where requiresRpcUrl is false, the SDK automatically resolves a Tatum RPC URL using your API key. You don't need to pass rpcUrl.

Check getWalletChainConfig(chain).requiresRpcUrl for the selected chain before you build a request.

Custom RPC URLs

For chains where requiresRpcUrl is true, supply an rpcUrl in the call body:

await client.sendAssets({
  body: {
    share: shares.SECP256K1.share,
    chain: WalletChain.TRON_MAINNET,
    to: "TRecipientAddress",
    token: "NATIVE",
    amount: "10",
    rpcUrl: "https://api.trongrid.io",
  },
});

You can also pass a custom rpcUrl on any chain to override the automatic one.


Did this page help you?