saturnswap-cross-chain
Installation
SKILL.md
SaturnSwap Cross-Chain Swap (Cosmic Router)
Swap tokens across 119 blockchains via SaturnSwap's UEX aggregator.
How It Works
Cross-chain swaps use a deposit-based flow — different from on-chain DEX swaps:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 1. QUOTE │────▶│ 2. ORDER │────▶│ 3. DEPOSIT │────▶│ 4. RECEIVE │
│ Get rate │ │ Get deposit │ │ Send funds │ │ Tokens arrive│
│ & fees │ │ address │ │ to address │ │ on dest chain│
└──────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
- Quote — Check rate, fees, and min/max amounts
- Create Order — Get a unique deposit address and exact amount
- Deposit — Send the exact amount to the deposit address (on source chain)
- Receive — Tokens arrive at destination address on the target chain
API Endpoints
All endpoints are at https://saturnswap.io/api/uex/:
| Endpoint | Method | Description |
|---|---|---|
/metadata |
GET | List all supported chains and tokens |
/quote |
POST | Get swap quote with rate and fees |
/order |
POST | Create swap order, get deposit address |
Scripts
List Supported Chains
node scripts/list-chains.js [--type cardano|evm|solana|other]
Find Token
node scripts/find-token.js --symbol ETH [--chain ethereum-mainnet]
Get Quote
node scripts/get-quote.js --from ADA --to ETH --amount 500
node scripts/get-quote.js --from-chain cardano-mainnet --from-token ADA@ADA --to-chain ethereum-mainnet --to-token ETH@ETH --amount 500
Create Order
node scripts/create-order.js --from ADA --to ETH --amount 500 --destination 0xYourEthAddress
Key Concepts
- Token IDs use the format
SYMBOL@CHAIN_SYMBOL(e.g.ADA@ADA,ETH@ETH,SOL@SOL) - Chain IDs are slugified (e.g.
cardano-mainnet,ethereum-mainnet,solana-mainnet) - Cardano tokens use
cardano:<policyId><assetName>format for non-ADA tokens - Deposit address is unique per order — send the EXACT
depositAmount - Orders that require Cardano signing return
requiresSignature: true+unsignedTxCbor - Cross-chain swaps typically take 5-30 minutes depending on chain confirmation times
- Min/max amounts are enforced — quote returns
minAmountInandmaxAmountIn
Chain Types
| Type | Examples | Wallet |
|---|---|---|
cardano |
Cardano mainnet | CIP-30 (Nami, Eternl) |
evm |
Ethereum, Polygon, Arbitrum, Base, Optimism | MetaMask |
solana |
Solana mainnet | Phantom |
other |
Bitcoin, BSC, DOGE, TRX, etc. | Deposit-only (send to address) |
Order Status Flow
waiting_for_deposit → confirming → swapping → sending → completed
↘ expired / refunded / failed
Safety Rules
- Always show the quote before creating an order (rate, fees, min/max)
- Verify destination address matches the correct chain — wrong chain = lost funds
- Check min/max amounts — amounts outside range will fail
- Warn about fees — cross-chain fees are shown in
feeAmount - Confirm before order creation — orders create real deposit addresses
- Display units everywhere — amounts are human-readable, not base units
Related skills