Supported Chains
Sponge supports multiple blockchain networks across EVM and Solana ecosystems.
Chain Overview
| Chain | ID | Type | Environment |
|---|---|---|---|
| Ethereum | ethereum | EVM | Mainnet |
| Base | base | EVM | Mainnet |
| Solana | solana | Solana | Mainnet |
| Sepolia | sepolia | EVM | Testnet |
| Base Sepolia | base-sepolia | EVM | Testnet |
| Solana Devnet | solana-devnet | Solana | Testnet |
| Tempo | tempo | EVM | Testnet |
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_*)
| Chain | Chain ID | Description |
|---|---|---|
sepolia | 11155111 | Ethereum testnet, moderate block times |
base-sepolia | 84532 | Base testnet, fast and cheap |
solana-devnet | 102 | Solana development network |
tempo | 42431 | Fast testnet with instant finality |
Live Keys (sponge_live_*)
| Chain | Chain ID | Description |
|---|---|---|
ethereum | 1 | Ethereum mainnet |
base | 8453 | Base L2, low fees |
solana | 101 | Solana 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:
| Chain | USDC Contract |
|---|---|
| Ethereum | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 |
| Base | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Solana | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
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 chainSolana 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...| Chain | Explorer |
|---|---|
| Ethereum | etherscan.io |
| Base | basescan.org |
| Solana | solscan.io |
| Sepolia | sepolia.etherscan.io |
| Base Sepolia | sepolia.basescan.org |
| Solana Devnet | solscan.io?cluster=devnet |