Jupiter Setup Guide
Time: 15 minutes | Difficulty: Advanced | Market: DeFi DEX Mode: Full automation | API: REST API + Smart contracts (Solana) | Docs: station.jup.ag/docs
This guide wires a Jupiter trading bot to the Jupiter API and Solana smart contracts using the botwir3 runtime. Configure a wallet, connect to Solana's primary swap aggregator, and run automated DeFi trading strategies locally.
Before you start
Verify that automated operation is permitted under Jupiter's current terms of service before deploying. Jupiter is a permissionless swap aggregator on Solana — interaction is through the Jupiter API and Solana program calls. botwir3 provides tools for building structured automation. The user is responsible for compliance with all applicable regulations.
Jupiter Terms of Service | Last verified: May 2026
What you need
- A Solana wallet with SOL for transaction fees and tokens to trade
- A private key or keystore file for the wallet (stored locally — never shared)
- The botwir3 runtime downloaded and unzipped
- A strategy config file from the builder
Step 1: Configure wallet credentials
Jupiter is a permissionless protocol. There are no API keys — the bot interacts with the Jupiter API for route quotes and submits transactions using a wallet private key.
🔒 Security. The wallet private key controls all funds in the wallet. Use a dedicated wallet for bot operations with only the funds allocated to the strategy. The private key is stored in a local config file and is not transmitted to botwir3 or any third party.
Step 2: Configure the adapter
Create adapter.json in the bot directory:
{
"adapter": "jupiter",
"credentials": {
"private_key": "paste-wallet-private-key-here"
},
"input_mint": "So11111111111111111111111111111111111111112",
"output_mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"chain": "solana",
"slippage_bps": 50,
"environment": "live",
"rate_limit_ms": 2000
}
input_mint / output_mint: Solana token mint addresses. SOL = So111...1112, USDC = EPjFW...Dt1v. Find mint addresses at solscan.io or via the Jupiter token list API.
slippage_bps: Maximum slippage in basis points. 50 = 0.5%.
API keys are not required for the Jupiter API (public). The wallet private key is stored in a local config file and is not transmitted to botwir3 or any third party. botwir3 never sees, stores, or has access to wallet credentials.
Step 3: Test the connection
botwir3 test --adapter jupiter
Expected output:
[botwir3] Adapter: jupiter
[botwir3] Connection: OK (Solana mainnet-beta)
[botwir3] Wallet: 7xKX...9mPq
[botwir3] Chain: solana
[botwir3] Rate limit: ~400ms/slot
Step 4: Start the bot
botwir3 start --config my-strategy.json
The runtime loads the strategy, computes the spec hash, connects to Jupiter and Solana via the configured wallet, and begins evaluating signals. The gate function compares proposed actions against the configured spec. The user is responsible for monitoring the bot and verifying execution outcomes.
Rate limits and considerations
| Component | Limit | Notes |
|---|---|---|
| Jupiter Quote API | Public, rate-limited | Route quotes for optimal swap pricing. |
| Solana transaction throughput | ~400ms/slot | Solana's slot time. Faster than Ethereum. |
| Transaction fees | Low (~$0.001/tx) | Solana transaction fees are minimal. Priority fees may apply during congestion. |
ℹ Swap aggregation. Jupiter routes swaps through multiple Solana DEXs (Raydium, Orca, Lifinity, etc.) to find the optimal price. The bot submits the swap transaction — Jupiter handles routing.
Common Jupiter bot configurations include token pair momentum strategies on Solana (SOL/USDC, meme tokens), arbitrage between Solana DEXs, and scheduled DCA into Solana ecosystem tokens. Solana's low fees and fast finality make high-frequency strategies more viable than on Ethereum. All actions and decisions are recorded in the local ledger.
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
CONNECTION_REFUSED | Solana RPC unreachable | Jupiter uses public Solana RPC by default. For reliability, configure a dedicated RPC (Helius, QuickNode). |
INSUFFICIENT_FUNDS | Wallet balance too low for swap + fees | Fund the wallet with additional SOL (fees) and trading tokens |
TRANSACTION_FAILED | Slippage exceeded, token account missing, or route expired | Increase slippage_bps or retry. Ensure token accounts exist for both input and output mints. |
MANDATE_INTEGRITY_VIOLATION | Config file modified while bot is running | Stop the bot, verify config, restart |
Related guides
- Uniswap Setup Guide — DeFi swaps on Ethereum
- GMX Setup Guide — DeFi perpetual futures on Arbitrum
- Aave Setup Guide — DeFi lending on Ethereum
One bot. $129. No subscription. No $749/mo platform. → Build for Jupiter