lemon.fun.
Every on-chain component of the lemon.fun launchpad, the token lifecycle from creation to graduation, and the public HTTP API for third-party terminals, indexers and market-data providers. All contracts are immutable, unowned, and verified on Blockscout.
§1Chain & Infrastructure
§2Token Lifecycle
2.1 Creation
A creator calls LemonCurveFactory.launch(...) with token metadata (name, ticker, image, socials) and an optional dev-buy amount in ETH. In a single transaction the factory:
- Deploys a new LemonToken directly from LemonCurveFactory (ERC-20, 1,000,000,000 fixed supply).
- Deploys a new BondingCurve with platform defaults (graduation 4.0 WETH, virtual reserve 1.05 WETH).
- Mints the full supply to the curve.
- Executes the creator's optional dev-buy against the freshly deployed curve.
- Emits
Launched(token, curve, creator, dex, threshold).
2.2 Bonding phase
While raised WETH is below threshold, all trading happens against BondingCurve. Every buy and sell pays a fixed 1% platform + 1% creator fee; the remainder is routed through the constant-product formula. Events: Buy(...) / Sell(...).
2.3 Graduation
When cumulative raised WETH reaches the threshold, the next buy triggers graduate() atomically: wraps raised ETH, creates the Uniswap V3 pool (TOKEN/WETH, 1% tier) if missing, mints a full-range LP position with retained tokens + raised WETH, and transfers the LP NFT to a fresh LpLocker. Emits Graduated(token, pool, lpLocker, tokenId).
2.4 Post-graduation
Trading moves to the Uniswap V3 pool via the canonical SwapRouter02. Standard pool fees accrue to the LP NFT held by LpLocker. Any caller may invoke LpLocker.collect(); the contract splits the collected fees 50/50 between platform and creator. LP principal is permanently locked — no withdraw or migrate function exists.
§3Per-Launch Contracts
§4Platform Contracts
Lemon platform
Robinhood Chain — Uniswap V3 (default)
Robinhood Chain — SushiSwap V3 (legacy fallback)
Robinhood Chain — Core tokens
§5Fee Model
§6Public HTTP API
Base URL: https://lemon.fun. All endpoints are unauthenticated, CORS-enabled, and return application/json. Rate limits are per-IP and generous for indexers — contact the team for whitelisting.
6.1 Example — token detail
GET https://lemon.fun/api/public/launchpad/token/0x438ac56065af7c091bfa8f4d6d0214f36e273e02
{
"address": "0x438a...3e02",
"name": "catfrog",
"ticker": "CATFROG",
"curve": "0x...",
"graduated": false,
"raised_eth": "3.323",
"graduation_threshold_eth": "4.0",
"mcap_eth": 2.65,
"price_eth": 0.00000000265,
"holders": 128,
"created_at": "2026-07-18T..."
}6.2 On-chain event schema
LemonCurveFactory.Launched(address token, address curve, address creator, uint8 dex, uint256 graduationThresholdWei)BondingCurve.Buy(address buyer, uint256 ethIn, uint256 tokensOut, uint256 feePlatform, uint256 feeCreator)BondingCurve.Sell(address seller, uint256 tokensIn, uint256 ethOut, uint256 feePlatform, uint256 feeCreator)BondingCurve.Graduated(address token, address pool, address lpLocker, uint256 lpTokenId)LpLocker.FeesCollected(uint256 amount0, uint256 amount1, uint256 platformShare, uint256 creatorShare)§7Security Posture
- All platform contracts are ownerless once deployed; no upgrade proxy is used.
- Fee percentages during bonding are compiled constants (1% + 1%); they cannot be changed by any party.
- Graduation is atomic and permissionless: any buy that pushes cumulative raised WETH over the threshold triggers migration in the same transaction.
- LP NFTs are held by a per-token LpLocker with no withdraw path; only fee collection is exposed.
- Every launch is emitted as a canonical event on the factory, enabling deterministic reconstruction of the launchpad from chain history alone.
§8Contact & Verification
Bytecode for every contract in §4 is verified on Blockscout; the source Solidity is available in the platform's public repository.
© 2026 lemon.fun — Independent, community-built launchpad on Robinhood Chain.
