MonoPump
MonoPump is a bonding curve token launchpad that enables anyone to create and launch ERC-20 tokens along a mathematically-defined price curve. When a token reaches its graduation threshold, liquidity automatically migrates to MonoSwap (the DEX), creating a permanent trading pair.
How It Works
The lifecycle of a MonoPump token follows three phases:
Phase 1: LAUNCH Phase 2: BONDING CURVE Phase 3: GRADUATION
+------------------+ +------------------------+ +-------------------+
| Creator calls | | Users buy/sell tokens | | Threshold reached |
| launch() or | -----> | along the price curve | ----> | Liquidity migrates|
| launchAdvanced() | | Price rises with supply| | to MonoSwap DEX |
+------------------+ +------------------------+ +-------------------+
Price = p0 + k * supply LP tokens burned
2% buy fee 1.5% graduation fee
20%->0% sell tax (7d decay) Token trades freely
Key Parameters
| Parameter | Default Value | Description |
|---|---|---|
| Total Supply | 1,000,000,000 (1B) | Fixed supply per token launch |
| Graduation Threshold | 10 LYTH | Native LYTH raised to trigger graduation |
| Initial Price (p0) | 0.000001 LYTH | Starting price per token |
| Curve Coefficient (k) | 1e6 | Price growth rate per token sold |
| Buy Fee | 2% (200 bps) | Platform fee on purchases |
| Sell Tax (initial) | 20% (2000 bps) | Decaying sell tax at launch |
| Sell Tax Decay Period | 7 days | Time for sell tax to reach 0% |
| Graduation Fee | 1.5% (150 bps) | Fee on raised LYTH at graduation |
| Min Graduation Threshold | 0.1 LYTH | Prevents dust exploits |
| Min Price Floor | 1e12 wei | Prevents underflow attacks |
Launch Tiers
MonoPump supports four launch tiers with increasing feature sets:
| Tier | Features | How to Qualify |
|---|---|---|
| Basic | Name and symbol only | Call launch(name, symbol) |
| Standard | Full metadata (logo, description, socials) | Provide image URI or website URL |
| Premium | Metadata + anti-whale protection + creator vesting | Enable anti-whale configs or vesting |
| Verified | Everything + KYC verification (optional) | Set externally by platform |
Basic Launch
The simplest launch creates a PumpToken with no extra features:
// Creates a Basic tier token
function launch(string calldata name, string calldata symbol)
external returns (address token);
The entire 1B token supply is minted to the MonoPump contract. Tokens are sold to buyers along the bonding curve and cannot be directly claimed by the creator.
Advanced Launch
The advanced launch creates a PumpTokenV2 with optional metadata, anti-whale protection, and creator vesting:
function launchAdvanced(
string calldata name,
string calldata symbol,
TokenMetadata calldata metadata, // Description, logo, socials
AntiWhaleConfig calldata antiWhale, // Max wallet, max tx, cooldown
VestingConfig calldata vesting // Creator allocation with lock
) external payable returns (address token);
Bonding Curve Mathematics
MonoPump uses a linear bonding curve where the token price increases linearly with the number of tokens sold:
price(supply) = initialPrice + (curveCoefficient * supply) / 1e18
With the default configuration:
price(0) = 0.000001 LYTH (first token)
price(100M) = 0.100001 LYTH (100M tokens sold)
price(500M) = 0.500001 LYTH (500M tokens sold)
Buy Calculation
When a user sends LYTH to buy tokens, the contract integrates the curve to determine how many tokens they receive. For a linear curve, this involves solving a quadratic equation:
Given:
s0 = current supply sold
C = LYTH amount (after fee)
p0 = initial price
k = curve coefficient
Cost to buy t tokens: C = p0 * t + k * t * (2 * s0 + t) / (2 * 1e18)
Solving for t (tokens out):
b = 2 * (1e18 * p0 + k * s0)
discriminant = b^2 + 8 * 1e18 * k * C
t = (sqrt(discriminant) - b) / (2 * k)
This integration ensures that large buys are priced accurately -- the buyer pays the area under the curve, not just the spot price.
Sell Calculation
Selling tokens returns the integral of the price curve over the tokens being sold:
Given:
s0 = current supply sold
t = tokens being sold
Return = p0 * t / 1e18 + k * t * (s0 + s0 - t) / (2 * 1e36)
The sell return is the area under the curve between the new supply and the current supply.
Fees
Buy Fee
A 2% (200 basis points) platform fee is deducted from every purchase before calculating tokens out:
User sends 1 LYTH to buy tokens:
Fee = 1 LYTH * 2% = 0.02 LYTH
Net = 0.98 LYTH (used to calculate tokens)
If a referral contract is configured, the fee is sent to the Referral contract. The referrer receives 5% of the fee (configurable up to 10%), and the remainder goes to the FeeCollector. Without a referral contract, the entire fee goes to the FeeCollector.
Decaying Sell Tax
A sell tax starts at 20% (2000 bps) at launch and decays linearly to 0% over 7 days:
sell_tax(t) = decayTaxBps * (decayDuration - elapsed) / decayDuration
Day 0: 20.0% tax
Day 1: 17.1% tax
Day 2: 14.3% tax
Day 3: 11.4% tax
Day 4: 8.6% tax
Day 5: 5.7% tax
Day 6: 2.9% tax
Day 7+: 0.0% tax
The sell tax discourages immediate dumping after launch and incentivizes longer holding.
Graduation Fee
When a token graduates to MonoSwap, 1.5% (150 bps) of the total raised LYTH is sent to the FeeCollector. The remaining 98.5% is used to create the initial liquidity pool.
Anti-Whale Protection
Advanced launches (launchAdvanced) can configure anti-whale limits via PumpTokenV2:
| Setting | Range | Description |
|---|---|---|
maxWalletBps | 0-10000 (0=disabled) | Maximum % of supply any single wallet can hold |
maxTxBps | 0-10000 (0=disabled) | Maximum % of supply per transaction |
cooldownSeconds | 0+ (0=disabled) | Minimum seconds between buys for the same wallet |
enabledPostGraduation | true/false | Whether limits continue after DEX listing |
Example: Setting maxWalletBps to 200 limits each wallet to 2% of the total 1B supply (20M tokens). Setting cooldownSeconds to 60 requires a 1-minute wait between purchases.
The MonoPump contract itself (as launcher) is always exempt from these limits. After graduation, the creator can configure DEX pair addresses as exempt.
Flash Loan Protection
MonoPump includes per-block transaction tracking. A user cannot buy and sell in the same block:
if (block.number == lastTxBlock[msg.sender]) revert FlashLoanDetected();
This prevents atomic arbitrage via flash loans.
Creator Vesting
Advanced launches can optionally lock a creator allocation behind a vesting schedule via the CreatorVesting contract:
| Parameter | Constraint | Description |
|---|---|---|
creatorAllocationBps | Max 1000 (10%) | Percentage of total supply allocated to creator |
cliffDays | Min 30 days | No tokens released before cliff |
vestingDays | Min 180 days | Linear vesting duration after cliff |
The maximum vesting duration is 4 years (1460 days).
Vesting Schedule
Tokens Vested
^
100%| ___________
| /
| /
| / Linear vesting
| / (180+ days)
0%|_________________________/
| Cliff |
+-------(30+ days)-------+----(vesting)-----> Time
After the cliff period, tokens vest linearly. The creator can call claim() at any time to withdraw vested tokens. Tokens with active vesting schedules display a trust badge in the MonoHub UI.
Graduation
When a token's total raised LYTH reaches the graduation threshold (default: 10 LYTH), the _graduate() function triggers automatically at the end of the next buy transaction:
Graduation Process
- Calculate amounts: All raised LYTH and remaining token balance in the contract
- Deduct graduation fee: 1.5% of raised LYTH goes to
FeeCollector - Approve router: MonoPump approves
MonoRouterto spend the remaining tokens - Add liquidity: Calls
MonoRouter.addLiquidityLYTH()with 1% slippage tolerance - Burn LP tokens: LP tokens are sent to
0x...dEaD(dead address), permanently locking liquidity - Mark graduated:
info.graduated = trueprevents further bonding curve trades - Emit event:
Graduated(token, pair, liquidity)for indexer tracking
Graduation Flow:
MonoPump -----> FeeCollector (1.5% fee)
|
+---------> MonoRouter.addLiquidityLYTH()
|
+---> MonoFactory.createPair()
+---> MonoPair.mint() --> LP tokens to 0x...dEaD
After graduation, the token trades freely on MonoSwap like any other pair. The burned LP tokens ensure the initial liquidity can never be withdrawn (rug-proof).
PumpToken vs PumpTokenV2
| Feature | PumpToken (Basic) | PumpTokenV2 (Advanced) |
|---|---|---|
| ERC-20 standard | Yes | Yes |
| Fixed supply (1B) | Yes | Yes |
| Anti-whale limits | No | Yes (maxWallet, maxTx, cooldown) |
| Post-graduation limits | No | Optional |
| Creator field | No | Yes (creator address) |
| Launcher control | No | Yes (exempt addresses, remove limits) |
Both token types are standard ERC-20 and behave identically once graduated (unless enabledPostGraduation is set on V2).
Token Metadata
Advanced launches store on-chain metadata accessible to the indexer and frontend:
| Field | Max Length | Description |
|---|---|---|
description | 500 chars | Token description |
imageUri | Unlimited | IPFS or HTTP URL for token logo |
websiteUrl | Unlimited | Project website |
twitterUrl | Unlimited | Twitter/X profile |
telegramUrl | Unlimited | Telegram group |
discordUrl | Unlimited | Discord server |
The token creator can update metadata at any time via updateMetadata().
How to Launch a Token
Step 1: Connect Wallet
Connect an EVM wallet (MetaMask, etc.) to MonoHub and switch to a supported chain.
Step 2: Navigate to Token Builder
Go to the Token Builder page at /token-builder.
Step 3: Configure Your Token
- Name: The token's display name (e.g., "My Token")
- Symbol: The trading ticker (e.g., "MTK")
- Description (optional): Up to 500 characters describing the project
- Logo (optional): Upload an image or provide an IPFS/HTTP URL
- Social links (optional): Website, Twitter, Telegram, Discord
- Anti-whale settings (optional): Max wallet %, max transaction %, buy cooldown
- Creator vesting (optional): Allocation %, cliff period, vesting duration
Step 4: Launch
Submit the transaction. For Basic launches, only gas fees apply. For Advanced launches, the transaction includes all configuration data on-chain.
Step 5: Share and Grow
Once launched, your token appears on the Pump Screener and Token Markets pages. Share the token page URL to attract buyers. As people buy along the bonding curve, the price increases and the token progresses toward graduation.
Step 6: Graduation
When the graduation threshold is reached, liquidity migrates automatically to MonoSwap. No action is required from the creator. The token is now freely tradable on the DEX with permanent, locked liquidity.
Contract Constants
| Constant | Value | Description |
|---|---|---|
MAX_TOKEN_SUPPLY | 1,000,000,000 (1B) | Fixed supply for all launches |
MAX_FEE_BPS | 1000 (10%) | Maximum allowed platform fee |
MAX_DECAY_TAX_BPS | 3000 (30%) | Maximum allowed initial sell tax |
MIN_GRADUATION_THRESHOLD | 0.1 LYTH | Minimum graduation threshold |
MAX_DECAY_DURATION | 30 days | Maximum sell tax decay period |
MIN_PRICE | 1e12 wei | Minimum price floor |
DEAD_ADDRESS | 0x...dEaD | LP burn address for graduation |
Related
- Trading & Liquidity -- How to trade graduated tokens on MonoSwap
- LP Farming -- Earn rewards by providing liquidity
- DeFi Overview -- Full ecosystem overview
- Fee Model -- L1 transaction fee structure