Solana ICO / token presale dApp
DeFi Protocol Interface
Next.js Solana interface for Rabbitholes Finance ($RHFI)—wallet connect, live ICO progress, and buyWithSol purchases against an Anchor ico_program IDL.

Background & Context
Rabbithole-fi is a client-side Solana ICO / token presale dApp for Rabbitholes Finance (`$RHFI`). The Next.js app (package name did under rabbithole-fi/rabbithole-fi) presents marketing landing UI, wallet connect, countdown, live on-chain progress, and buyWithSol purchases against an Anchor ico_program. Layout metadata titles the app “Rabbit Finance.”
On-chain interactions are hard to demo without a wallet-aware UI. This interface wires Solana Wallet Adapter flows, reads ICO PDA state (tokens sold / progress) via Anchor Program + IDL, and executes purchases that create a buyer ATA when needed before calling program.methods.buyWithSol(solAmount). SOL ↔ RHFI conversion UI uses a hardcoded rate helper (LAMPORTS_PER_SOL / 600 in calculate helpers).
Optional sign-in calls an external API_URL (/auth/signup, /auth/signin) with wallet message signing and stores a JWT in localStorage. The /chart route is a stub rendering “Chart page” only. IDL also lists initiateAndCreateProgramAta and withdrawTokens, but those admin paths are not first-class app pages in this UI.
The Challenge
Rabbitholes Finance needed a usable wallet-connected web surface for ICO participation—countdown, live progress, and SOL purchases—without forcing users into raw CLI or explorer tooling. Without a coherent solana ico / token presale dapp foundation, DeFi Protocol Interface stakeholders faced fragmented tools, slow handoffs, and limited visibility—classic failure modes Tekvers designs against.
The Solution
Tekvers delivered a Next.js Solana dApp with Wallet Adapter connect/disconnect, Anchor IDL-driven buyWithSol, on-chain progress reads, optional external auth, and marketing accordion sections on the home experience. Tekvers delivered a maintainable solana ico / token presale dapp system for DeFi Protocol Interface using Next.js 14, React 18, TypeScript, Tailwind CSS, with phased rollout, operator workflows, and documentation suited to long-term ownership.
Our Approach
Wallet-first UX
Wallet modal + multi-button connect/disconnect via Adapter providers and `useWalletMultiButton`, with toast feedback for mainstream crypto users—not only power users.
Anchor program wiring
Front-end purchase path maps to IDL instruction `buyWithSol` with accounts for buyer, receiver, ATAs, icoPda, and token/system programs; ATA creation runs when required before the buy.
Presale presentation + scoped extras
Countdown from `NEXT_PUBLIC_PRESALE_END_DATE`, progress from on-chain ICO PDA reads, marketing sections in `HomePage`, optional axios auth against localhost API, and an explicit chart placeholder—not a fabricated analytics product.
What We Delivered
- Next.js 14 React dApp with Tailwind styling
- Solana Wallet Adapter suite (modal + multi-button connect)
- Anchor `ico_program` IDL integration for live progress and `buyWithSol`
- SPL token ATA creation path for buyers
- SOL ↔ RHFI amount conversion UI (rate helper)
- Presale countdown driven by public env end date
- Optional wallet-signed signup/signin against external auth API
- Home marketing/accordion UI and stub `/chart` route
Outcomes & Impact
- Usable wallet-connected ICO participation surface for `$RHFI`
- Clear demo path for on-chain progress and SOL purchases
- Extensible UI boundary for future chart/admin features without claiming them as shipped
- Typed Web3 stack suitable for protocol iteration
Rabbitholes Finance gained a credible product face—users connect a wallet, see live ICO progress, and buy with SOL inside the branded experience—while Tekvers kept chart and admin withdraw flows honestly scoped as IDL-only or stub.
Technology Stack
Services Delivered
Related Case Studies
Guides & articles from this niche
Planning a similar platform? Share your scope and we will map architecture, delivery phases, and a realistic timeline.