Supported Chains

The SDK supports multiple blockchain networks through a unified interface.

Chain Overview

ChainTypeNative TokenChain IDSwapTransferBridge
SolanaNon-EVMSOL-YesYesNo
EthereumEVMETH1YesYesYes
BaseEVMETH8453YesYesYes
ArbitrumEVMETH42161YesYesYes

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

FromToSupported
EthereumBaseYes
EthereumArbitrumYes
BaseEthereumYes
BaseArbitrumYes
ArbitrumEthereumYes
ArbitrumBaseYes
SolanaAny EVMNo
Any EVMSolanaNo

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