Solana API
Solana-specific endpoints: token search, token & pool security, Fee Advisor, one-transaction Zap, position actions and on-chain history. Transaction endpoints use a Solana wallet session (Sign in with Solana).
Endpoint list
| Method | Endpoint | Description |
|---|---|---|
GET | `/v1/solana/token-search?q=` | Search tokens by name/symbol/mint (public). |
GET | `/v1/solana/wallet-tokens` | All SPL/Token-2022 tokens in the session wallet with metadata. |
GET | `/v1/pool-create/token?chain=solana&token=` | Token info + security report + blacklist + pool permission per DEX. |
GET | `/v1/pools/security?chain=solana&q=` | Solana pool security report (same shape as EVM). |
GET | `/v1/security/blacklist` | Token blacklist (optional chain & token). |
GET | `/v1/solana/orca/check` · `/v1/solana/raydium/check` | Fee tiers, existing pools, reference price & pair market. |
POST | `/v1/solana/fee-advice` | Fee tier ranking (fee APR, LVR, net APR) + recommendation. |
POST | `/v1/solana/zap/one` | One-transaction Zap (Jupiter swap + open position + deposit) into an existing pool. |
POST | `/v1/solana/{orca|raydium}/create-pool` · `/open-position` | Create a pool & open a position (transaction ready to sign). |
POST | `/v1/solana/{orca|raydium}/position-action` | add (with preview), remove, collect, close. |
GET | `/v1/solana/raydium/tick-rent` | Estimate of non-refundable Raydium tick-array rent. |
GET | `/v1/solana/position-history?position=` | Position history straight from the chain (public). |
GET | `/v1/solana/pool?address=` | Solana pool page data: on-chain state, DexScreener market, Jupiter price, liquidity distribution (public, 60 s cache). |
GET | `/v1/pools/search?chain=solana&q=` | Search Solana pools (pool address / mint / symbol), including outside the index. |
POST | `/v1/solana/swap` | One-transaction v0 Jupiter swap (preview with preview). |
POST | `position-action` + `zapTo` | Zap Out: remove/close then swap the other side to mint zapTo in one v0 transaction. |
GET | `/v1/solana/token-balance?mint=` | Balance of one mint in the session wallet (uncached). |
Examples
bash
curl -s "https://banipool.com/api/v1/solana/token-search?q=JUP" | jq '.data.tokens[0]'
curl -s "https://banipool.com/api/v1/solana/position-history?position=<POSITION>" | jq '.data.items'json
{
"pool": "<WHIRLPOOL>",
"tokenIn": "So11111111111111111111111111111111111111112",
"amountIn": "100000000",
"range": { "minPct": -10, "maxPct": 10 },
"slippageBps": 100
}Returned transactions are already simulated; sign them with the session wallet (signAndSendTransaction). If the Zap does not fit one transaction, the response contains details.reason = "too_large" — use the step-by-step flow (/zap/plan → /zap/swap → /open-position).