Swap Widget
The Swap widget is the terminal's on-chain trade execution engine. Solana swaps route through Jupiter Ultra; EVM swaps route through 0x. Every quick-buy / quick-sell across the app — News Feed, Chart overlay, Trenches, Portfolio — goes through this same engine.
Features
- Solana via Jupiter Ultra — sub-second, MEV-protected execution, no RPC config needed
- EVM via 0x — Ethereum, BSC, Base, Polygon; approvals handled automatically
- Cross-chain token search — switch chain in-widget, paste a contract, trade
- Quick Buy / Quick Sell — preset amounts surface everywhere in the terminal
- Auto slippage — or per-widget custom tolerance
- Real-time quotes with price impact, route, and minimum-received
- Transaction tracking with chain-correct explorer links
Requirements
- Unlock a Terminal Wallet for the chain you want to trade on (Solana or EVM)
- Hold native gas (SOL / ETH / BNB / POL) for fees and (on EVM) first-time token approvals
Solana Swaps — Jupiter Ultra
Jupiter Ultra is Jupiter's hosted execution layer. Your wallet signs the transaction; Jupiter lands it on-chain with optimized fee markets, slot targeting, and MEV protection. You don't need to configure an RPC or manage priority fees.
How It Works
- You enter an input amount (or click a quick-buy preset)
- The widget requests an Ultra quote — route, expected out, impact
- You click Swap; the quote is signed by your terminal wallet
- Jupiter's infrastructure lands the transaction — typically in sub-second
Fallback
If Ultra is unavailable (rate limit or outage), the widget transparently falls back to Jupiter V1 (swap API) with your own signed-and-sent flow. Behavior is identical from the user's side.
Platform Fee
A small platform fee is applied to all token pairs. The fee is included in the quote you see — not added at the end. This supports continued development and is collected via Jupiter's referral mechanism (clamped to Jupiter's allowed 50–255 bps range).
EVM Swaps — 0x
Supported chains: Ethereum, BSC, Base, Polygon.
How It Works
- You enter an input amount and select input / output tokens
- The widget requests a 0x quote for the active chain
- First swap of a new token — an
approvetransaction runs first; the widget waits for confirmation, then submits the swap - The swap transaction is signed and sent via your terminal wallet
- Receipt is tracked on the chain's explorer; the quote auto-refreshes while waiting
Approvals
0x uses the standard ERC-20 approve-then-swap pattern. The widget:
- Detects missing or insufficient allowance before the swap
- Runs an approval for an amount just over what the trade needs (not infinite, unless you opt in)
- Shows an inline progress indicator; once the approval confirms, the swap submits automatically
Cross-Chain Token Selection
The token picker has a chain selector. Click it to switch between Solana / Ethereum / BSC / Base / Polygon. The token list, favorites, and balances all update for the selected chain without leaving the widget.
Popular Tokens
When the search field is empty, a curated list for the active chain shows (SOL, USDC, USDT, BONK, WIF on Solana; WETH, USDC, USDT on EVM chains; etc.).
Search by Address
Paste a contract address in any chain's format — the widget auto-detects the chain and resolves the token.
Quick Buy / Quick Sell
Pre-configured amount buttons for fast execution:
- Defaults for Solana:
0.1,0.25,0.5,1SOL - Fully customizable in Settings (per-chain and per-widget)
- Three button sizes: Small, Medium, Large
Quick-buy buttons also appear:
- In the News Feed when a contract address is detected
- In the Chart overlay when viewing an on-chain token
- In Trenches token cards
- In Portfolio holdings (quick-sell pills: 25/50/75/100%)
All of them route through the Swap engine with your configured slippage.
Swap Interface
Input Section
- Input token + amount (or preset button)
- Balance display with Max shortcut
Quote Display
Before you confirm, the widget shows:
- Output Amount — tokens you'll receive
- Price Impact — estimated market impact
- Route — DEX / pool path (e.g.
Raydium → Orcaon Solana, or 0x's aggregated path on EVM) - Minimum Received — slippage-protected floor
- Estimated gas (EVM) / Priority fee (Solana Ultra)
Execution
- Review the quote
- Click Swap
- Approve in your wallet (terminal wallet prompts inline)
- Wait for confirmation — "View TX" links to the correct chain's explorer
Settings
Click the Settings gear to configure:
Slippage Tolerance
- Auto — dynamic based on pair liquidity and volatility
- Custom — 0.1% to 5% (or any custom value)
- Default: 0.5% on Solana, 1% on EVM
Quick Buy Amounts
Four customizable presets in native token units (SOL on Solana, ETH on Ethereum / Base, BNB on BSC, POL on Polygon).
Button Size
Small / Medium / Large — applies across every widget that uses quick-buy pills.
Mini Chart Timeframe
1m / 5m / 30m — used for the hover price preview rendered in the News Feed and Trenches.
News Feed Integration
When the Swap widget is added to your layout:
- Contract addresses in news posts show inline quick-buy buttons
- Hover the chart icon for a mini price preview (last 50 candles)
- Click the chart icon to load the token in the Chart widget
- All trades use your current slippage + quick-buy amount settings
Troubleshooting
Quote Not Loading
- Confirm the token address and chain are correct
- Token may lack on-chain liquidity — try a different route or smaller size
- Solana: Jupiter Ultra may be rate-limited; wait a beat and the V1 fallback kicks in
Swap Failed
- Wallet rejected the transaction
- Insufficient native gas (SOL / ETH / BNB / POL)
- Slippage exceeded — increase tolerance or lower size
- EVM approval didn't confirm — check the explorer for the approval tx before retrying
Token Not Found
- Verify the contract address is correct and on the selected chain
- Brand-new tokens can take a few minutes to index
- For on-chain memecoins on Solana, try switching to On-Chain mode in the Chart widget to verify the mint exists
EVM Trade Stuck on "Approving"
- Check the chain's explorer for the approval transaction status
- If the approval reverted (out of gas, low gas price), retry — the widget re-runs approve before swap