Back to launches
Documentation

Everything about Ovus, in one place.

Ovus is a non-custodial bonding-curve launchpad on Solana. This page covers how launches, trading, migration, fees, and refunds actually work on-chain, plus what you need to build an integration against it.

Overview

Ovus is a place to launch and trade tokens on Solana. You browse launches, open any token to see its bonding-curve progress, and trade straight from your wallet.

Ovus never holds your funds. Every launch, buy, claim, and refund is a transaction your wallet asks you to approve.

Names and symbols can be copied. Always check the token mint address.
Prices come from each token's live bonding curve (pre-migration) or Raydium pool (post-migration).
Launches can be volatile, illiquid, or fail to hit their target entirely.
A failed launch is auto-refundable on-chain — see Refund protection below.

Launch mechanism

Creating a launch deploys the token mint and its bonding-curve pool in a single signature. The creator sets the name, symbol, image, description, links, and can optionally bundle a first dev buy into the same transaction.

Every token launches with a fixed total supply of 1,000,000,000 tokens and trades only against SOL, inside its own bonding curve — there is no external liquidity pool yet. A flat … SOL launch fee is paid once, at creation, separate from any trading fee.

Each curve self-calibrates: at creation, Ovus reads the live SOL/USD price from Pyth and derives the exact virtual SOL reserves needed so the curve's migration point lands on a target USD market cap — no manual recalibration needed as SOL's price moves between launches.

01 Create

The mint and bonding-curve pool are created in one transaction, self-calibrated to today's SOL price.

02 Trade

Buys move the curve and the price. The curve is buy-only pre-migration — there is no sell instruction on it.

03 Graduate

Once the SOL target is reached, liquidity migrates to a new, permanently-locked Raydium CPMM pool.

Launch protection: tokens bought within the first 30% of total supply sold are locked (subject to post-migration vesting tiers). Creator/dev-bundle wallets can be locked up to a separate, higher cap — anything a dev buys past that cap is unlocked immediately, by design.

Trading & pricing

Pre-migration, every token trades against SOL on a constant-product bonding curve (the same x·y=k shape as a Uniswap-style AMM). The price you see is the live curve price, and it moves with every buy.

Price
The current bonding-curve spot price for one token.
Market cap
Price multiplied by circulating (sold) supply.
Migration progress
real_sol_reserves ÷ migration_quote_threshold.
Price impact
The curve movement caused by the size of your buy.
Slippage
The minimum tokens-out your transaction will still accept.
Curve reserves
SOL and tokens actually escrowed in the curve, live.

There is no sell on the pre-migration curve by design — the only ways SOL leaves a curve before migration are a successful graduation or a refund on a failed launch.

Graduation

A launch graduates once its curve's real_sol_reserves reaches the pool's self-calibrated migration_quote_threshold. Graduation confirms the target was reached — it is not a quality signal and does not guarantee future liquidity, price, or an exit.

At migration, 100% of the collected SOL (including any AddLiquidity-mode donations) and the remaining unsold token supply seed a brand-new Raydium CPMM pool. The LP position is permanently burned — nobody, including Ovus, can withdraw it. Trading continues in that Raydium pool from then on; nothing about the token or its holders moves again.

Post-migration, buy and sell trade against the same Raydium pool at the same rate — see Fees below for the exact split.

Fees

Every fee below is either read live from the on-chain admin config (so this page can't go stale the way hardcoded copy has before) or a compile-time program constant with no update instruction at all. Full worked examples live on the Fee Schedule page.

FeeRateApplies to
Platform trade fee…%Every bonding-curve buy
Creator trade fee…%Every bonding-curve buy
Launch fee… SOL flatOnce, at pool creation
Refund processing fee0.8%Refund on a failed launch
Donation fee10%Every donation (burn or add-liquidity)
Raydium swap fee (post-migration)1.495%Every swap, buy or sell — same rate
↳ creator share≈1.000%of swap volume
↳ platform share≈0.495%of swap volume

Account rent for the ~7 new on-chain accounts a launch creates (≈… SOL) is a separate, one-time Solana network cost — it is not platform or creator revenue. A buy that goes fully into the curve nets …% of what you send.

Protocol revenue

Everything routed to the platform (the platform's share of trade fees, donations, and post-migration Raydium fees) accumulates in one on-chain vault and is split on a permissionless crank, by a fixed ratio hardcoded at deploy time — no admin instruction can change it afterward.

50%
CEO
20%
CTO
10%
Investor
20%
Platform

The platform wallet is paid last, absorbing whatever integer-division rounding leaves over, so dust never gets stuck.

Refund protection

If a launch doesn't reach its migration target before the deadline, every contributor can claim an automated on-chain refund of their contribution — no action needed beyond signing the claim, and anyone can permissionlessly crank refunds on a contributor's behalf.

This is not a 100% refund. The …% trade fee already paid on each buy is non-refundable (it left the curve for the creator/platform vaults the moment you bought), and a further 0.8% refund-processing fee applies to what's left. Net effect: ≈…% of your original contribution comes back.

Risk disclosures

Tokens launched through Ovus are user-created and experimental. Review the mint address, creator, curve progress, and transaction preview before signing anything.

  • Prices can move quickly and curve/pool liquidity can be thin.
  • Similar names and images can represent unrelated tokens — always check the mint address.
  • Smart contracts, wallets, RPCs, and indexers can fail or be congested.
  • Displayed values are estimates, not execution guarantees — actual fills can differ via slippage.
  • A failed launch returns ≈…% of your contribution, not 100% — see Refund protection above.

Ovus is an interface to non-custodial smart contracts, not investment advice or a representation of any token's quality.

Network

Ovus runs on Solana. Devnet is the current active deployment; mainnet addresses below are compiled into the programs but not yet live — check back before building against them.

Network (current)
Solana Devnet
Native asset
SOL
Raydium CPMM (devnet)
DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb
Raydium CPMM (mainnet)
CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C
Pyth SOL/USD (devnet)
J83w4HKfqxwcq3BEMMkPFSppX3gqekLyLJBexebFVkix
Pyth SOL/USD (mainnet)
H6ARHf6YXhGYeQfUzQNGk6rDNnLBQKrenN712K4AQJEG

Programs

Ovus is split into two on-chain programs: launch_pad (bonding-curve business logic and migration — stays upgradeable) and fee_controller (fee-ceiling enforcement and all SOL fee routing — intended to have its upgrade authority revoked once fully verified on mainnet).

launch_pad (devnet)
EDadQntR13ehBMgyXFRw6iAiPzbfwDpPuhFXa2w3R58C
launch_pad (mainnet, not yet deployed)
9qSiVRDfDxHjStPz7vYD3LwUZ3KgaGSCfEvWbfXVC7hu
fee_controller (devnet)
6qypyujwfRV8cLUzyLghz1NMrJCtFfbgd9yrYn9HuEqk
fee_controller (mainnet, not yet deployed)
5rUxxU7SYa3dXuqCRscV8nxYqj89riRcDCBYTpKBQyq7

Onchain events

Index these Anchor events off launch_pad for a trust-minimized integration.

EventEmitted when
PoolCreatedA new token + bonding curve is launched
BuyEventA buy executes against a curve
DonateEventA donation (burn or add-liquidity mode) is made
MigratedA curve graduates to Raydium CPMM
LaunchFailedA launch is marked failed after its deadline
RefundedA contributor claims their refund
TokensClaimedLocked tokens are claimed after unlock

Reading pool state

Every pool is a PDA derived from its mint. Fetch and decode it directly with the program's Anchor IDL — no off-chain indexer required for the current state.

import { PublicKey } from "@solana/web3.js";

const LAUNCH_PAD_PROGRAM_ID = new PublicKey(
  "EDadQntR13ehBMgyXFRw6iAiPzbfwDpPuhFXa2w3R58C" // devnet
);

function derivePoolPda(mint: PublicKey) {
  const [pool] = PublicKey.findProgramAddressSync(
    [Buffer.from("pool"), mint.toBuffer()],
    LAUNCH_PAD_PROGRAM_ID
  );
  return pool;
}

// Decode with the program's own Anchor IDL:
const pool = await program.account.bondingCurvePool.fetch(poolPda);
console.log(
  pool.realSolReserves.toString(),
  pool.migrationQuoteThreshold.toString(),
  pool.status // 0 Active, 1 Migrated, 2 Failed
);

A contributor's own position (tokens bought, SOL spent, lock/refund status) is a second PDA: ["buyer", pool, buyer].

Pricing & migration math

Reproduce the curve's constant-product pricing off-chain for a live quote before signing:

function tokensOutForSol(
  virtualSol: bigint,
  virtualToken: bigint,
  solIn: bigint,
): bigint {
  const k = virtualSol * virtualToken;
  const newVsol = virtualSol + solIn;
  const newVtok = k / newVsol; // floors, same as on-chain
  return virtualToken - newVtok;
}

Graduation is a single comparison: a pool is ready to migrate once real_sol_reserves >= migration_quote_threshold — both fields are readable directly off the pool account above, so progress is just real_sol_reserves / migration_quote_threshold.

Support

Ovus is under active development. Support channels for integrators will be listed here once the project has an official public presence — for now, everything you need to build against it is on this page and in the smart-contract source.

Terms & attribution

Onchain data is public and free to read; you are responsible for how you use it. Ovus is provided as-is — see the Terms of Service and Privacy Policy for the full legal terms, including the current refund and fee disclosures.