HHamza Yassine
All work
Recurve logo
LIVE · 2026

Recurve

A rug-resistant token launchpad on Robinhood Chain

A DeFi launchpad with its own Solidity contracts, a Next.js app, a realtime indexer and a Discord bot. You launch a coin in one transaction for about a dollar, and it trades as a real Uniswap V3 pair from the first block. Liquidity is locked, and creators keep 90% of every trade.

Live app Analytics Docs Protocol · contracts · app · infra
Recurve brand
182 ETH
volume (30 days)
65
coins launched
414
wallets in a day
Context

The problem with launchpads

Token launchpads have a well-known trust problem. Most work in two steps: you trade on a bonding curve first, then the coin migrates to a real DEX once it gets big enough. That migration is where things go wrong. Liquidity sits in a custodial contract, the migration transaction can be front-run, and an admin can often pull the funds.

I wanted a launchpad where those failure modes simply cannot happen, not because I promise to behave, but because the contracts make misbehaving impossible.

The idea

Make the curve a real pool from day one

The core insight: a Uniswap V3 position placed entirely above the current price behaves like a bonding curve. So at launch, Recurve deploys a fixed-supply ERC-20 and mints the whole supply into a single V3 range that holds only the token and zero ETH. As buyers push the price up through that range, tokens convert into ETH inside the pool.

Because it is a genuine WETH pair, the coin is chartable on any terminal from the first block, there is no separate curve contract, and there is no migration transaction to front-run. Graduation (around 4.2 ETH bought in) is just a read-only status. Nothing happens on-chain, because liquidity was locked from the start.

Recurve create page: launch a coin with a live preview card and fixed launch economics

Launching a coin: one form, one transaction, with the economics fixed at launch.

Highlights

What makes it interesting

Recurve is a full protocol: contracts, app, indexer and bot. A few pieces I am proud of:

Rug-resistant by design

Liquidity stays locked because there is no code path that removes it. The token has no mint, pause or blacklist, and the owner can only lower fees.

A curve with no migration step

The bonding curve is a single-sided Uniswap V3 range placed above spot, so a coin is a real, chartable pair from block one. Nothing to migrate later.

Flat-cost realtime indexer

A Postgres-backed worker captures every launch and trade with one filtered log query per tick across all pools. Indexing cost stays constant however many coins exist.

Hand-rolled Web3 stack

The whole wallet layer runs on raw viem: EIP-6963 multi-wallet discovery, WalletConnect on mobile, chain enforcement. No wagmi or RainbowKit.

Contracts

Solidity, tested against the real chain

The launchpad and token are written in Solidity 0.8.24 and built with Hardhat. The ERC-20 is written from scratch, with no OpenZeppelin, and deployed fresh per launch so explorers never stamp it “proxy” (which reads as ruggable).

Fees split 90% to the creator, 10% to the protocol, snapshotted per coin at launch and floored so creators always keep at least half. An anti-snipe guard caps buys to 5% of supply per wallet for the first 37 seconds, the creator's first buy runs inside the launch transaction, and coin addresses are ground with CREATE2 to a house suffix. It is covered by 13 fork tests that run against the live Uniswap V3 factory, including one that asserts there is no admin withdraw, mint or pause path.

App & infra

The product around the protocol

The app is Next.js 14 with React Server Components and TypeScript, talking to the chain through viem. It handles coin creation with live vanity-address grinding, a trading UI routed through the Uniswap V3 router with live quotes, per-coin pages with server-rendered SVG charts (no charting library), a protocol analytics dashboard, and a community-takeover queue.

Behind it, an always-on indexer on Railway keeps a Postgres mirror of every launch and trade in realtime, and a stateless discord.js bot scaffolds a whole community server with one command and posts launch and graduation alerts.

SolidityHardhatUniswap V3viemNext.js 14React 18TypeScriptPostgreSQLdiscord.jsCREATE2VercelRailway
Recurve coin page: price chart, buy/sell trading panel and live on-chain stats

Every coin gets a full page: a server-rendered chart, a trade panel and live on-chain stats.

Traction

It actually got used

Recurve reports every number straight from the chain, nothing off-chain and nothing it can fake. To date it has done 182 ETH in volume over 30 days across 65 coins launched, with 0.81 ETH in fees paid directly to creators. Liquidity locked across 20 pools sits on-chain and cannot be pulled by anyone, including me.

On its busiest day it out-traded established launchpads like Bags and Klik and sat right behind Doppler on volume, from a brand-new protocol. On top of the 90% creator fees I ran a $50-per-graduation rewards program, plus buybacks and burns on the house token $RECURVE, which has burned 142M tokens, 14.2% of supply. I also built a docs site and the live analytics dashboard the whole launchpad runs on.

Recurve analytics dashboard showing volume, coins launched, fees paid to creators, liquidity locked and tokens burned

The live analytics dashboard. Every number is read straight from the chain.