Inspiration
DeFi on Solana is powerful but intimidating. One bad token, a wrong route, or a transaction you don't understand can cost you. AI agents could help, but most want control of your wallet. I wanted an agent that does all the research and none of the risky part.
What it does
You ask in plain English: "swap 2 SOL to USDC", "stake 5 SOL", "lend 500 USDC", "borrow 200 USDC against 3 SOL", "buy JUP with 300 USDC every week".
Kuiper finds the best route, checks the tokens for traps (freeze authority, mint authority, Token-2022 transfer taxes and permanent delegates, holder concentration), and simulates the exact transaction on Solana mainnet. It then hands you a readable ticket: what you pay, what you get, your balance changes, and any warnings.
Nothing moves until you approve the ticket in your own wallet. The server never holds keys.
How I built it
- Swap engine: my own router that splits orders across Orca Whirlpool, Meteora DLMM and Raydium CPMM pools, with Jupiter as a fallback when it's cheaper. Every pool adapter is verified to match real on-chain swap results exactly, to the base unit.
- On-chain program: an Anchor (Rust) router for atomic multi-hop and split routes. It feeds each hop the amount the previous hop actually produced and enforces one final slippage check. It only calls whitelisted DEXes. Tested in LiteSVM.
- Agent: Claude with tool use. Jupiter Lend and Recurring power the non-swap actions.
- Landing: Helius Sender with MEV protection for fast, sandwich-resistant transaction delivery.
- Stack: TypeScript, Next.js, Hono, Rust/Anchor, Helius RPC.
I'm a solo builder and used AI coding tools (Claude) to move fast. I directed the architecture, safety design and mainnet testing.
Challenges I ran into
- Getting quotes to match what actually happens on-chain to the exact unit.
- A Meteora SDK that made too many RPC calls for a free plan. I rewrote the adapter to read pool data in one batched fetch.
- A subtle bug where simulated balances looked wrong for wallets that already held wrapped SOL.
- Rate limits everywhere.
Accomplishments that I'm proud of
- Pricing matches mainnet exactly across Orca, Meteora and Raydium.
- 35 live pools refreshing every 2 seconds on a free RPC plan.
- Every agent ticket (swap, stake, lend, borrow, recurring) simulates correctly on mainnet.
- An agent that can't move funds, by design.
What I learned
How Solana DEXes price trades (constant product, concentrated liquidity, bins), how aggregators like Jupiter work under the hood, and how to design AI agents with safety built in from the start.
What's next for Kuiper
Deploy the router program to mainnet, add Raydium CLMM, ship a full token list, and apply for the MLH x Solana micro-grant.
Built With
- anchor
- claude
- helius
- jupiter
- next.js
- node.js
- rust
- solana
- tailwind
- typescript