Supported Chains
The SDK supports multiple blockchain networks through a unified interface.
Chain Overview
| Chain | Type | Native Token | Chain ID | Swap | Transfer | Bridge |
|---|---|---|---|---|---|---|
| Solana | Non-EVM | SOL | - | Yes | Yes | No |
| Ethereum | EVM | ETH | 1 | Yes | Yes | Yes |
| Base | EVM | ETH | 8453 | Yes | Yes | Yes |
| Arbitrum | EVM | ETH | 42161 | Yes | Yes | Yes |
Chain Details
Solana
Full trading support via Jupiter aggregator.
// Swap on Solana (default chain)
await wallet.trading.swap({
inputToken: 'SOL',
outputToken: 'USDC',
amount: '1',
});
// Transfer SOL
await wallet.trading.transfer({
to: 'recipient_solana_address',
token: 'SOL',
amount: '1',
chain: 'solana',
});
// Launch tokens (Solana only)
await wallet.tokenize.launch({
name: 'My Token',
symbol: 'MTK',
description: 'A new token',
image: 'https://...',
initialLiquidity: '10',
});Features:
- Token swaps via Jupiter Ultra
- Native SOL and SPL token transfers
- Token launches with instant liquidity
- Sub-second transaction finality
Ethereum
EVM support via Relay aggregator.
// Swap on Ethereum
await wallet.trading.swap({
inputToken: 'ETH',
outputToken: 'USDC',
amount: '0.1',
chain: 'ethereum',
});
// Transfer ETH
await wallet.trading.transfer({
to: '0x...',
token: 'ETH',
amount: '0.1',
chain: 'ethereum',
});Features:
- Token swaps via Relay
- Native ETH and ERC-20 transfers
- Bridge source and destination
Base
L2 with low fees via Relay.
// Swap on Base
await wallet.trading.swap({
inputToken: 'ETH',
outputToken: 'USDC',
amount: '0.1',
chain: 'base',
});
// Bridge from Ethereum to Base
await wallet.trading.bridge({
fromChain: 'ethereum',
toChain: 'base',
token: 'USDC',
amount: '100',
});Features:
- Low transaction fees
- Fast confirmation times
- Bridge from/to other EVM chains
Arbitrum
L2 with Ethereum security via Relay.
// Swap on Arbitrum
await wallet.trading.swap({
inputToken: 'ETH',
outputToken: 'USDC',
amount: '0.1',
chain: 'arbitrum',
});Features:
- Low transaction fees
- Ethereum-level security
- Bridge from/to other EVM chains
Bridges
Bridges are only available between EVM chains. Solana bridges are not yet supported.
Supported Bridge Routes
| From | To | Supported |
|---|---|---|
| Ethereum | Base | Yes |
| Ethereum | Arbitrum | Yes |
| Base | Ethereum | Yes |
| Base | Arbitrum | Yes |
| Arbitrum | Ethereum | Yes |
| Arbitrum | Base | Yes |
| Solana | Any EVM | No |
| Any EVM | Solana | No |
Bridge Example
// Bridge USDC from Ethereum to Base
const result = await wallet.trading.bridge({
fromChain: 'ethereum',
toChain: 'base',
token: 'USDC',
amount: '100',
});
console.log('Source tx:', result.sourceTxHash);
console.log('Estimated time:', result.estimatedTime);Wallet Addresses
One seed phrase generates addresses for all chains:
const created = await wallet.wallet.create();
// Single seed phrase
console.log('Seed phrase:', created.seedPhrase);
// Generates both addresses
console.log('Solana:', created.solanaAddress); // Base58
console.log('EVM:', created.evmAddress); // 0x... (same for all EVM chains)The EVM address is shared across Ethereum, Base, and Arbitrum.
Balances
Check balances across all chains:
const info = await wallet.wallet.get();
// Solana
console.log('SOL:', info.balances.solana.native);
// EVM chains
console.log('ETH (Ethereum):', info.balances.ethereum.native);
console.log('ETH (Base):', info.balances.base.native);
console.log('ETH (Arbitrum):', info.balances.arbitrum.native);Token Resolution
The SDK resolves token symbols to addresses automatically:
// These all work
await wallet.trading.swap({ inputToken: 'SOL', ... });
await wallet.trading.swap({ inputToken: 'ETH', chain: 'ethereum', ... });
await wallet.trading.swap({ inputToken: 'USDC', chain: 'base', ... });
// Or use contract addresses directly
await wallet.trading.swap({
inputToken: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', // USDC on Solana
...
});Coming Soon
- Solana to EVM bridges
- Additional EVM chains (Polygon, Optimism)
- Cross-chain swap in single transaction