Solana
Everything you can do on Solana: wallet login, finding coins (including pump.fun), creating Orca Whirlpools & Raydium CLMM pools, one-transaction Zap, managing positions from the dashboard, on-chain history, keeper automation and the Fee Advisor.
Solana wallet login
The easiest way: the **Connect wallet** button at the top right. Solana browser wallets (Phantom, Solflare, Backpack, or a wallet app's built-in browser) are listed with a "Solana" tag. On a phone without a browser wallet, choose **WalletConnect · Solana**: the wallet is asked for the Solana network only, so a wallet holding only Solana accounts (e.g. a Bitget Solana wallet) is not asked to add EVM networks.
**Dual EVM + Solana session:** after logging in with an EVM wallet, open the wallet dialog again and add a Solana wallet (or the other way round). Both stay logged in within one session: Solana pages use the Solana address, other pages use the EVM address, and the Dashboard combines the positions of both. Each wallet can be removed on its own with the Remove button.
Choose the "Solana" network and click Login wallet. Wallets supporting Wallet Standard (Phantom, Solflare, Backpack) are detected automatically; if there are several, pick one from the list. The login signature (Sign in with Solana) grants no transaction permission and costs no SOL.
Phantom sometimes shows "Request blocked / This dApp could be malicious" for new domains. This is a domain rating by the Phantom scanner, not the content of the BaniPool transaction. Check the balance preview in your wallet before continuing, or use Solflare/Backpack.
Finding coins (including pump.fun)
The Solana token picker searches every Solana token by name, symbol or mint address through the Jupiter token list — not limited to tokens registered by BaniPool. Every SPL & Token-2022 token in your wallet is listed too, with its balance.
- Results are sorted: verified first, then by largest liquidity. Each row shows liquidity, holder count, a short mint and the label "pump.fun · graduated to DEX" or "pump.fun · bonding curve".
- Many coins share the same name/symbol. When there are duplicates, a warning asks you to match the mint address from an official source.
- The Token A / Token B cards show the logo, full name, mint program (SPL / Token-2022), decimals, price, liquidity, market cap, holder count, first-pool date and the full mint with Copy & Solscan buttons.
Create Orca & Raydium pools
At /pools/create choose Solana, then: 1) Token A and 2) Token B — each is security-checked immediately; 3) Protocol & fee — Orca Whirlpools or Raydium CLMM, with the fee tier picked automatically by the Fee Advisor; 4) a summary, then the Create pool window for the initial price, the range (narrow ±10%, wide ±30%, full, or custom min/max) and how to deposit.
| Situation | Signatures | Description |
|---|---|---|
| Zap into an existing pool | 1 | Jupiter swap + open position + deposit in one atomic transaction (any failure = everything is reverted). |
| New pool + Zap | 2 | Create the pool first, then swap + deposit in one transaction. |
| Jupiter route too long | 2–3 | The server tries shorter routes (24/16/10 accounts); if it still does not fit 1232 bytes, the step-by-step flow is used. |
| Manual (deposit both tokens) | 1–2 | No platform fee. |
- The initial price is filled automatically from a Jupiter quote (the mid of executable buy & sell prices); if the quote is slow (>3.5 s) the USD price ratio is used. A deviation >2% from the market price must be confirmed.
- Zap slippage can be set to 1%, 3% or 5%. New/volatile tokens often need 3–5%.
- In the step-by-step flow, the deposit uses the swap output actually received by the wallet (read directly from the chain), so the leftover tokens in your wallet stay as small as possible.
- Rent: creating an Orca pool costs ±0.015 SOL and Raydium ±0.045 SOL (non-refundable); the position rent of ±0.01 SOL is returned when the position is closed.
- Raydium creates a 10 KB tick array (±0.053 SOL, non-refundable) when your range uses a part of the pool never used before. The Create pool window estimates it first and asks for your consent.
- Pool permission per DEX is checked automatically: Orca and Raydium reject some Token-2022 extensions (e.g. transfer hook, permanent delegate without a TokenBadge). A DEX that rejects the token is disabled in step 3.
- An existing pool that is empty or whose price deviates >2% from the market gets a warning: a deposit at that price is immediately taken by arbitrage.
Fee Advisor: choosing the best fee tier
The "Fee analysis" card in step 3 computes the best fee tier for every coin pair from real market data and selects it automatically (your manual choice is never overwritten).
- Data: every pool of the pair on every DEX (liquidity, 1h/6h/24h volume), each competing pool fee (Orca, Raydium, Meteora DLMM read on-chain; PumpSwap estimated from pump.fun market-cap tiers) and the volatility of the price ratio from 24 hours of 5-minute candles.
- Model: net APR = fee APR (share of volume the router sends to this pool × fee) − LVR/impermanent-loss cost from arbitrage (σ²/8, reduced by higher fees). Router efficiency is calibrated on real pools.
- Set "Planned capital (USD)" and "Range" for the simulation. The table shows the captured volume per day, fee APR, IL cost and net APR per tier, with a competing-pool table and the reasons for the recommendation.
- If every tier is expected to lose money (usually very volatile tokens), the system says so plainly and suggests a wider range, less capital, or not providing liquidity.
LP fees are proportional to your share of liquidity at the active price: routers split swaps across all pools by depth. A new small pool gets a small share of the volume, even if its APR per dollar can be very high.
Positions, dashboard & history
- Position action buttons & dialogs match EVM (dashboard, wallet profile and position detail page): + Add liquidity (Zap In with any token, or Manual — fill one token, the other is computed from price & range), − Withdraw liquidity (Zap Out to one of the pool tokens, or Manual; at 100% it can also close the position so the account rent returns), and ⋯ Claim fees, Compound fees, Rebalance, Automation.
- Compound fees on Solana = two transactions: claim the fees, then add them back to the same position range. Tokens that don't fit the range ratio stay in your wallet.
- Position history is read directly from the blockchain: every transaction touching the position (including outside BaniPool) with the action type, tokens into/out of the pool, estimated value, network fee and a Solscan link.
- Names & symbols of Token-2022 tokens without Metaplex metadata (e.g. new pump.fun coins) are read from the metadata extension, so they no longer show "?".
Solana swap
At /swap choose the Solana tab. Swaps use the best Jupiter route and are sent as ONE v0 transaction simulated by the server first: platform swap fee, account setup, the swap and cleanup (SOL is wrapped/unwrapped automatically).
- Quote preview: minimum received, price impact, route and fee. Slippage & Expert Mode are set via ⚙ (the same setting as the EVM Swap).
- The Transaction history panel shows Solana swaps from this browser; "All transactions" opens your account on Solscan.
- Price impact above 5% can only be executed with Expert Mode.
- Tokens on the BaniPool blacklist show a warning table and require confirmation before swapping.
Solana pool pages & pool search
Every Solana pool has a page, including pools outside the BaniPool index (e.g. a pool you just created). Data is read directly from the blockchain when the page opens.
- Summary: pool price vs Jupiter market price (warning when the gap is >2%), TVL from on-chain vault balances, 24h volume & transactions, fee, estimated fee APR (hidden when TVL < $50), number of LP positions and how many are in range.
- Liquidity distribution from all LP positions of the pool, a price chart, token composition, the Pool security panel, and your wallet positions in that pool with action buttons.
- Same layout as EVM pools: Fee simulation (range, amount, estimated earnings, impermanent loss), a chart with Price/APR/TVL/Volume/Fee tabs (price from DexScreener), Liquidity distribution and Range backtest. The Add liquidity button opens the same dialog as EVM (range chart, Zap In / Manual).
- Page address:
/pools/<pool address>(same as EVM). Fee/APR/Volume charts and the backtest use BaniPool snapshot history (Orca/Raydium fee accumulators), so they fill in gradually after a pool is indexed. Pool security results are stored like EVM so later visits show them immediately. - Pool search (magnifier icon) accepts a Solana pool address, token mint or symbol and lists pools on every DEX (Orca & Raydium first because BaniPool can transact on them). Pools on other DEXes (PumpSwap, Meteora) still show market & security data.
Zap Out & manual rebalance
In the − (Withdraw liquidity) dialog choose the **Zap Out** tab and the target token (one of the pool tokens), or the **Manual** tab to receive both tokens. Zap Out withdraws liquidity and swaps the other token through Jupiter in ONE atomic transaction; any failure cancels everything.
- The swap amount is the minimum withdrawal output (1% slippage), so a small remainder of the other token may stay in your wallet. SOL proceeds arrive as native SOL.
- The platform Zap fee applies only to the swapped part. A position holding only the target token (out of range) is withdrawn without a swap and without a fee.
- Rebalance (⋯ menu → Rebalance): close the position + Zap Out to an intermediate token, then Zap In the amount actually received into the same pool with a new ±5/10/20/50% or full range. Two atomic transactions; if step 2 fails, the funds are safe in your wallet as the intermediate token.
- The same + / − / ⋯ actions are available on the dashboard and on the position detail page.
Position performance (result vs HODL)
On a Solana position page, the "Position performance" card is computed from the on-chain history: the deposited capital valued at current prices (its value if the tokens were simply held) versus the current position value + everything already withdrawn/claimed. The difference is the LP result: positive means fees exceeded impermanent loss.
- It also shows the fees earned (claimed + unclaimed) with the fee APR since the position was opened, and the total network fees.
- The card only appears when the history includes the position-opening transaction. Zap/swap costs and rent are not included.
Solana keeper automation
Orca positions can be automated through the BaniPool on-chain program bani_keeper (mainnet). The position NFT is held in a program PDA vault; the keeper executor may only run compound, rebalance or exit according to the policy you sign (interval, daily limit, slippage, expiry), and results always return to your wallet. You can take the NFT back at any time.