Hopium
Launch app
Documentation

Everything about Hopium

How the pools work, where the yield comes from, how a Nad.fun token lives from launch to DEX, and exactly what the contracts can — and cannot — do.

Overview

Hopium is a staking protocol for $HOPIUM, a token launched on Nad.fun, the token launchpad of the Monad blockchain. Holders lock the token in a pool — alone, or paired with MON or another token — and earn rewards funded by real revenue: the creator share of the token's trading fees and buybacks of the token on the market.

Meet Hopium & Copium

Our mascots are two pills fused together. Hopium wears the shades and is bullish on everything; Copium is the one who explains, calmly, why the dip was actually healthy. They can't be split, they never sell the bottom, and they always stake as a pair — the whole idea of a duo pool. A wink to the old degen pill that once had arms and legs, now with a partner.

Three ideas drive the design:

  • Real yield, not inflation. Nothing is minted to pay stakers. Every reward was first earned by the token (fees) or bought on the market.
  • Commitment is rewarded. Pairing MON and locking longer both raise your share of the rewards.
  • Code over promises. Funded rewards are locked in the contract, withdrawals can never be paused, and the pool's rules are immutable.

Getting started

  1. Get an EVM walletMetaMask, Rabby or any EVM wallet works. The app adds the Monad network to it for you when you connect.
  2. Get MON for gasEvery transaction on Monad pays a small gas fee in MON. On the testnet, MON is free from the Monad faucet.
  3. Get the tokenBuy it on its Nad.fun page. For a duo stake, also keep the pool's paired asset (MON or the other token) ready.
  4. StakeOpen a pool, choose solo or duo and a lock, approve the token once, then stake. Rewards start accruing the next second.

The first stake of a token asks for an approval transaction (allowing the pool to take the exact amount) before the stake itself. Native MON needs no approval.

Pools: solo & duo

Each pool is its own contract with three settings fixed forever at deployment: the paired asset (native MON or a major ERC-20 such as USDC or WETH), the duo ratio and the duo boost. One pool is single-sided: the Hopium Vault, where you stake $HOPIUM alone and earn $HOPIUM.

PoolPairDuo boostRewardsReserve share
Hopium Vault— (solo only)—HOPIUM25%
HOPIUM + MON 🎓native MON×1.5HOPIUM + MON25%
HOPIUM + USDC 🎓Circle USDC×2HOPIUM + MON15%
HOPIUM + WETH 🎓Wrapped Ether×2HOPIUM + MON10%
LP farmHOPIUM-WMON LP (Nad.fun DEX)—HOPIUM25%

🎓 = duo pools locked until graduation (see below). Duo pairs are only offered with major assets — native MON, USDC and WETH — never with other memecoins. The LP farm opens when $HOPIUM graduates: its share of the reserve builds up until then and is streamed to the first LP stakers.

ModeYou depositWeight
Solothe token only×1
Duothe token + the paired asset, at the pool's fixed ratio×boost

The ratio is how much of the paired asset goes with each token — for example 10 MON per 1,000,000 tokens. The app computes the exact amount for you. The boost is between ×1 and ×2.5: ×1.5 for the MON pair, ×2 for USDC and WETH, which commit capital from outside the HOPIUM–MON loop.

Why a fixed ratio? A ratio based on market prices would need a price feed, and a token's price on a bonding curve can be pushed up in one transaction. A fixed ratio has nothing to manipulate.

Locks & multipliers

LockMultiplierRewards
Flexible×1claim anytime
30 days×1.25claimable at unlock
90 days×1.5claimable at unlock

The lock multiplier stacks with the duo boost. Your position's weight is:

weight = amount × (duo ? boost : 1) × lock multiplier
// duo ×1.5 + 90 days ×1.5 = ×2.25

Leaving early

You can always leave a lock before its end. You get your full stake and paired asset back; only that position's pending rewards are forfeited. They are not lost: they go back into the pool and are streamed again to everyone still staking. Without this rule, anyone could take a 90-day boost and leave the next minute.

Emergency withdraw

If a reward can't be delivered to your address (for example a smart-contract wallet that refuses native MON), emergencyWithdraw returns your stake and paired asset anyway, forfeiting the rewards. Your principal can never be stuck.

Rewards

A pool can pay up to five reward tokens at once, typically MON (from creator fees) and the token itself (from buybacks). Each deposit of rewards is streamed linearly over 30 days, together with what remains of the current stream. Rewards accrue every second, pro rata to weight:

your rewards / second = pool rate × your weight / total weight
pool rate             = (new deposit + rest of current stream) / 30 days
  • Locked in for good. Deposited rewards can only go to stakers. No function lets anyone take them back.
  • Nothing wasted. Rewards streamed while nobody is staking, and forfeited rewards, are kept and streamed again later.
  • No griefing. Only approved funders can deposit rewards, so nobody can stretch a stream with dust deposits.

A worked example

A MON pool with a ×1.5 duo boost streams 30 MON per day. The total weight of all stakers is 100,000,000. You stake 2,000,000 tokens in duo (paying 20 MON at a 10 MON / 1M ratio) with a 90-day lock:

your weight  = 2,000,000 × 1.5 (duo) × 1.5 (90 days) = 4,500,000
your share   = 4,500,000 / (100,000,000 + 4,500,000)    ≈ 4.31 %
your rewards ≈ 4.31 % × 30 MON                           ≈ 1.29 MON / day

The same 2,000,000 tokens staked solo and flexible would weigh 2,000,000 — about 0.59 MON / day. Real numbers move as stakers come and go and as new rewards are deposited; the app always shows the live estimate before you stake.

Graduation lock

While $HOPIUM is still on its Nad.fun bonding curve, every duo stake is fully locked: no withdraw, no emergency withdraw, no claim. Rewards keep accruing the whole time. The lock lifts by itself for everyone the moment the token graduates — the contract asks Nad.fun's router, which only answers yes or no on a real event.

  • Why: locked tokens can't be sold, so every buy pushes the curve further. Graduation unlocks the duo pools and opens the LP farm — a goal the whole community can see on the progress bar.
  • Safety deadline: if graduation never comes, the lock ends anyway on a date fixed when the pool is deployed (60 days). Funds can never stay stuck, and nobody can move that date.
  • Not concerned: solo stakes (Hopium Vault), and duo stakes opened after graduation.

A pre-graduation duo stake can't be exited early, even at a loss. Only stake in duo what you're ready to hold until graduation or the deadline.

Reward reserve

$HOPIUM rewards are never minted: the supply is fixed at 1 billion. They come from the dev buy at launch, sent straight to the reward reserve contract — a contract with no owner, no withdrawal and no setter, which can only feed the pools.

The launch plan: a dev buy of 10,000 MON in the creation transaction (free of the anti-sniping penalty) returns 130,245,316 HOPIUM — 13.0% of the supply, all of it locked in the reserve. It is released on a front-loaded 12-month schedule:

QuarterShareHOPIUMPer day
Months 1–340%52.1M≈ 579K
Months 4–630%39.1M≈ 434K
Months 7–920%26.0M≈ 289K
Months 10–1210%13.0M≈ 145K

Anyone can trigger a release (once a day at most): the due amount is split between the pools by the shares in the pool table and streamed over 30 days in each. A pool that can't take its share keeps it owed for later; it is never shifted to another pool. On top of it, the duo pools receive MON from creator fees.

Simulator

Play with the launch numbers. The curve math is Nad.fun's (checked to the token against real launches).

Tokens on Nad.fun

Nad.fun is Monad's launchpad: anyone can create a token in one transaction. Every token goes through the same life cycle:

  1. Creation10 MON fee. A fixed supply of 1,000,000,000 tokens. The creator may buy in the same transaction, free of the anti-sniping penalty. The fee routing is chosen here, for good.
  2. Bonding curveEveryone buys and sells against the curve: price rises with each buy and falls with each sell. No liquidity provider needed.
  3. GraduationOnce about 80% of the supply is sold (≈ 225,000 MON raised), the remaining tokens and the MON move to a DEX pool.
  4. DEXThe token trades on Nad.fun's DEX pool, with its own fee schedule.

Figures from the official Nad.fun docs, checked against the live contracts on Monad mainnet (2026-10).

Bonding curve

The curve is a constant-product formula (x · y = k) on virtual reserves. As read on-chain for current tokens:

ParameterValue
Virtual MON reserve at start70,000 MON
Virtual token reserve at start1,060,569,000
Starting price≈ 0.000066 MON
Starting market cap≈ 66,000 MON
Tokens sold at graduation≈ 808,900,000
Real MON raised at graduation≈ 225,000 MON
Market cap at graduation≈ 1,170,000 MON

The price is therefore about 17.8× higher at graduation than at launch. Big buys move the price a lot early on: the app and Nad.fun both quote the exact output, fees included, before you trade.

Anti-sniping penalty

To blunt bots that buy in the very first blocks, Nad.fun applies a decreasing penalty to buys right after a token's creation:

block 080%
block 140%
block 220%
block 315%
blocks 4–510%
block 65%
block 7+0%

The creator's initial buy, made in the creation transaction, is exempt. Monad produces a block about every 0.4 s: the window lasts roughly 3 seconds.

Graduation

When the curve has gathered about 225,000 MON and around 80% of the supply is sold, the token graduates: the remaining supply and the gathered MON are moved to Nad.fun's DEX liquidity pool (its pair is created at launch). A 1,000 MON graduation fee is charged at that moment.

Pools work the same before and after graduation: staking only needs the token, never a liquidity-pool position.

Fees

StageFeeAmount
CreationToken creation10 MON
Bonding curveProtocol fee, per trade1%
Customizable fee, per trade1%
GraduationGraduation fee1,000 MON
DEXCustomizable fee1%
Protocol fee0.35%
LP fee (0.05% protocol, 0.20% pool)0.25%

So a trade pays 2% on the curve and 1.6% on the DEX, plus gas. The customizable 1% is not a protocol fee: it belongs to the token and is routed through the fee vaults chosen at creation. It is the fee that funds Hopium.

Fee vaults

At creation, the token's customizable fee is split between fee vaults. The routing cannot be changed afterwards.

VaultWhat it doesPayout
Creator FeeSends its share to the token creator. The claim wallet is set at creation.manual claim
Buyback & BurnBuys the token back on the market and burns it.automatic
LP SupportStrengthens the DEX liquidity after graduation.automatic
Gift VaultPays a verified X account. Unverified after 7 days → Buyback & Burn.manual claim

The Creator Fee vault holds the fees in WMON; a claim unwraps them and pays native MON to the creator wallet, and only that wallet can claim.

From fees to stakers

  1. VolumeEach trade of the token pays the 1% customizable fee into its vaults.
  2. ClaimThe creator wallet claims its Creator Fee share, paid in native MON.
  3. DepositThe MON is deposited into the pools, where it is locked and streamed over 30 days.
  4. Buyback & burnAnother part of the fee buys $HOPIUM back on the market and burns it, every trade.

$HOPIUM's routing: 70% Creator Fee (claimed in MON and paid into the duo pools), 20% Buyback & Burn, 10% liquidity. Order of magnitude — an illustration, not a forecast: 1,000,000 MON of trading volume pays 10,000 MON of customizable fee: 7,000 MON can go to stakers and 2,000 MON of $HOPIUM is bought back and burned. The routing is fixed at launch and shown on its Nad.fun page.

Security model

The pool's owner key exists for a few chores. Everything that touches money is out of its reach:

The owner…Possible?
takes stakes, paired assets or deposited rewardsnever
pauses withdrawals or claimsnever
extends a graduation locknever (deadline fixed at deployment)
takes or redirects the reward reservenever (no owner)
changes the paired asset, the ratio or the boostnever (immutable)
lowers the deposit capnever (only up)
pauses new stakesyes
raises the deposit capyes
adds a reward token (5 max) or a funderyes
returns a token sent to the pool by mistakeyes, never a pool token

Also built in

  • Reentrancy guards on every state-changing function; state is updated before any transfer.
  • Taxed tokens refused: a deposit that doesn't arrive in full is rejected, so the pool always holds what it owes.
  • Two-step ownership transfer, so the owner key can't be handed to a wrong address by mistake.
  • Tested: 31 tests including attack scenarios (reentrancy, taxed tokens, owner trying to take funds), the graduation lock (locked, unlocked at graduation, freed at the deadline, broken router) and the reserve schedule, plus 512 randomized runs checking that a pool never pays more than it received and returns every stake. The full deployment was rehearsed on a copy of Monad mainnet.

Not audited yet. Tests reduce risk, they don't remove it. Pools start with a deposit cap that is raised over time.

Contracts & addresses

Hopium pools

Not deployed yet — the addresses will appear here, linked to the explorer.

Nad.fun (Monad mainnet)

ContractAddress
Router0x8986C8fD44eb85294A725a7e61AF35E76bA26F91
Bonding curve0x9f3832732923252A21044F21eE6bd87F09514ae4
Creator fee vault0x687f9172D5F4798694811333C5C5696afCF4F6f4
LP vault0xA1A5ea7c9490A25E715351Ddc66A7771e1817e66
WMON0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A

Main functions

stake(amount, duo, tier)   // tier 0 flexible · 1 = 30 days · 2 = 90 days; duo pays the pair too
claim(id)                  // rewards of a position, once unlocked
withdraw(id)               // stake back (+ rewards if unlocked, forfeited if early)
emergencyWithdraw(id)      // stake back, rewards forfeited, always works
earned(id, rewardToken)    // pending rewards
positionsOf(wallet)        // your position ids

Risks

  • Smart-contract risk. The code is tested and verified but not audited. A bug could lose funds.
  • Price risk. Memecoins are extremely volatile. Rewards don't protect the value of your stake.
  • Paired asset risk. In duo you also hold the paired asset; a volatile pair adds its own risk.
  • Variable yield. Rewards depend on trading volume and deposits. They can slow down or stop; past rates don't predict future ones.
  • Wallet security. Only sign transactions from this site, check the contract addresses above, and never share your seed phrase. The team will never DM you first.

FAQ

Where does the yield come from?

From the creator share of the token's Nad.fun trading fees (in MON) and from buybacks of the token. Nothing is minted to pay stakers.

Can the team take the rewards back?

No. The reward reserve has no owner, and rewards deposited in a pool can only be streamed to stakers — there is no function to withdraw them.

Is everything automatic?

Yes. Every day the reserve releases its share to the pools, and the creator fees are claimed and paid into the duo pools in MON as soon as they pile up — no one has to remember to do it. Anyone can also trigger the reserve's daily release.

Can withdrawals be blocked?

Not by anyone. Pausing only stops new stakes. The one lock is built in: duo stakes made before graduation stay locked until $HOPIUM graduates, or until the deadline fixed at deployment (60 days) — nobody can extend it.

What if I unstake before my lock ends?

For a 30- or 90-day lock: you get your stake and paired asset back in full, and that position's pending rewards are forfeited (streamed again to the other stakers). A duo stake made before graduation can't be exited before graduation or its deadline.

Can I add to an existing position?

Each stake is its own position, with its own lock and unlock date. Stake again to open a new one.

Why is the duo ratio not based on the price?

A price read on-chain can be pushed in one transaction. A fixed ratio can't be gamed.

Do I need to claim regularly?

No. Rewards accumulate in the contract until you claim or withdraw.

Does the token need to graduate first?

No. Staking only needs the token, before or after graduation.

Glossary

Bonding curve
A formula that sets the price from the supply sold; trades happen against it.
Graduation
The moment a Nad.fun token leaves its curve for a DEX pool (~225,000 MON raised).
Customizable fee
The token's own 1% trading fee, routed to the vaults chosen at creation.
Creator Fee vault
Holds the creator's share of that fee until the creator claims it in MON.
Duo
A stake of the token plus the paired asset at a fixed ratio, weighted ×boost.
Weight
Your stake × boost × lock multiplier; rewards are shared pro rata to weight.
Stream
A reward deposit paid out evenly, second by second, over 30 days.
Forfeit
Pending rewards given up when leaving a lock early, streamed again to the others.
WMON
Wrapped MON, the ERC-20 form of MON used inside contracts.