Supported Chains

Sponge supports multiple blockchain networks across EVM and Solana ecosystems.

Chain Overview

ChainIDTypeEnvironment
EthereumethereumEVMMainnet
BasebaseEVMMainnet
SolanasolanaSolanaMainnet
SepoliasepoliaEVMTestnet
Base Sepoliabase-sepoliaEVMTestnet
Solana Devnetsolana-devnetSolanaTestnet
TempotempoEVMTestnet

API Key Chain Access

Chain Restrictions

Your API key type determines which chains you can access. Test keys can only use testnets, and live keys can only use mainnets.

Test Keys (sponge_test_*)

ChainChain IDDescription
sepolia11155111Ethereum testnet, moderate block times
base-sepolia84532Base testnet, fast and cheap
solana-devnet102Solana development network
tempo42431Fast testnet with instant finality

Live Keys (sponge_live_*)

ChainChain IDDescription
ethereum1Ethereum mainnet
base8453Base L2, low fees
solana101Solana mainnet

EVM Chains

Ethereum

The original smart contract platform.

// Transfer ETH
await wallet.transfer({
  chain: "ethereum",
  to: "0x...",
  amount: "0.1",
  currency: "ETH"
});
 
// Transfer USDC
await wallet.transfer({
  chain: "ethereum",
  to: "0x...",
  amount: "100.0",
  currency: "USDC"
});

Supported Tokens:

  • ETH (native)
  • USDC (0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48)

Base

Coinbase's L2 with low fees and fast transactions.

await wallet.transfer({
  chain: "base",
  to: "0x...",
  amount: "50.0",
  currency: "USDC"
});

Supported Tokens:

  • ETH (native)
  • USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)

Sepolia (Testnet)

Ethereum's primary testnet.

// Get testnet ETH from faucet
await wallet.requestFaucet({ chain: "sepolia" });
 
await wallet.transfer({
  chain: "sepolia",
  to: "0x...",
  amount: "0.1",
  currency: "ETH"
});

Base Sepolia (Testnet)

Base's testnet environment.

await wallet.transfer({
  chain: "base-sepolia",
  to: "0x...",
  amount: "10.0",
  currency: "USDC"
});

Tempo (Testnet)

A specialized testnet with instant transaction finality. Ideal for development and testing.

// Get free pathUSD
await wallet.requestFaucet({ chain: "tempo" });
 
// Transfer pathUSD
await wallet.transfer({
  chain: "tempo",
  to: "0x...",
  amount: "100.0",
  currency: "pathUSD"
});

Features:

  • Instant finality
  • Free faucet tokens
  • Ideal for rapid iteration

Solana Chains

Solana Mainnet

High-performance blockchain with sub-second finality.

// Transfer SOL
await wallet.transfer({
  chain: "solana",
  to: "RecipientAddress",
  amount: "1.0",
  currency: "SOL"
});
 
// Transfer USDC
await wallet.transfer({
  chain: "solana",
  to: "RecipientAddress",
  amount: "50.0",
  currency: "USDC"
});
 
// Swap using Jupiter
await wallet.swap({
  chain: "solana",
  fromToken: "SOL",
  toToken: "USDC",
  amount: "1.0"
});

Features:

  • Sub-second finality
  • Low fees (~$0.00025 per tx)
  • Jupiter DEX integration for swaps

Solana Devnet (Testnet)

await wallet.transfer({
  chain: "solana-devnet",
  to: "RecipientAddress",
  amount: "1.0",
  currency: "SOL"
});

Getting Available Chains

// List all chains available for your API key
const chains = await wallet.getAvailableChains();
 
// [
//   { id: "ethereum", name: "Ethereum", type: "evm", chainId: 1 },
//   { id: "base", name: "Base", type: "evm", chainId: 8453 },
//   { id: "solana", name: "Solana", type: "solana", chainId: 101 }
// ]

Chain Configuration

Each chain has the following configuration:

interface ChainConfig {
  id: string;           // Chain identifier (e.g., "ethereum")
  name: string;         // Human-readable name
  chainId: number;      // Numeric chain ID
  type: "evm" | "solana";
  symbol: string;       // Native token symbol
  isTestnet: boolean;
  explorerUrl: string;  // Block explorer URL
}

Working with Chain IDs

// Get chain by ID
const config = await wallet.getChainConfig("base");
console.log(config.chainId); // 8453
 
// Check if chain is available
const isAvailable = await wallet.isChainAvailable("ethereum");

Cross-Chain Considerations

Address Compatibility

EVM addresses are compatible across all EVM chains. However, you cannot send from an EVM chain to a Solana address or vice versa.

EVM Address Sharing

Your EVM wallet address works on all EVM chains:

const addresses = await wallet.getAddresses();
// addresses.evm is the same for ethereum, base, sepolia, etc.

Chain-Specific Tokens

Token contracts differ across chains. USDC on Ethereum has a different contract address than USDC on Base:

ChainUSDC Contract
Ethereum0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Base0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
SolanaEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

The SDK handles this automatically - just specify currency: "USDC" and the correct contract is used.

Gas and Fees

EVM Gas

Gas is automatically estimated for EVM transactions:

const tx = await wallet.transfer({
  chain: "base",
  to: "0x...",
  amount: "10.0",
  currency: "USDC"
});
 
// Gas is paid from your ETH balance on that chain

Solana Fees

Solana transactions have minimal fees (~0.000005 SOL per transaction).

Explorer URLs

Transaction results include explorer URLs:

const tx = await wallet.transfer({
  chain: "ethereum",
  to: "0x...",
  amount: "0.1",
  currency: "ETH"
});
 
console.log(tx.explorerUrl);
// https://etherscan.io/tx/0x...
ChainExplorer
Ethereumetherscan.io
Basebasescan.org
Solanasolscan.io
Sepoliasepolia.etherscan.io
Base Sepoliasepolia.basescan.org
Solana Devnetsolscan.io?cluster=devnet

Next Steps

Was this page helpful? /