A fair-launch bonding-curve token platform on Ethereum
Vellos is a pump.fun-style fair-launch platform on Ethereum. Anyone can launch a token that trades instantly on an on-chain bonding curve — price rises as demand buys in and falls as holders sell, with no seeded liquidity and no team allocation. When a token's curve fills, its liquidity graduates automatically into an AMM pool. A live TradingView chart is driven directly from on-chain trades through an oracle- and WebSocket-backed price pipeline.
What I owned
- Designed and built the bonding-curve contracts in Solidity — a constant-product, virtual-reserve curve where price is set purely by supply and demand (a buy pushes price up, a sell pulls it down), with no pre-seeded liquidity.
- Derived the curve math from the white papers: the closed-form cost/proceeds for any trade against the virtual reserves (X·Y = k), so every buy and sell prices deterministically on-chain.
- Built a token factory that launches each coin and its curve as a cheap minimal-proxy clone with deterministic addresses.
- Implemented automatic graduation — once a curve sells out, the accumulated liquidity migrates into an AMM pool and the LP is locked, so trading continues seamlessly off the curve.
- Built the real-time price pipeline: an indexer streams the on-chain buy/sell events, aggregates them into OHLC candles, and pushes them over WebSockets to a TradingView chart fed straight from contract data.
- Wired a Chainlink ETH/USD oracle to turn on-chain ETH reserves into a live USD market cap — used for both the graduation threshold and the UI.
- Delivered the React/Next.js trading front-end: wallet connect, buy/sell with slippage, and the live candlestick chart.
- Chain Ethereum · Solidity
- Curve Constant-product · virtual reserves
- Pricing 100% on-chain · no seeded LP
- Live data On-chain events → TradingView
▶ WALKTHROUGH
Loom walkthrough of the architecture: launch a token, trade it up the bonding curve, watch the live chart move, and hit graduation into the AMM. Record it and drop the embed URL into caseStudies.ts.