nad.fun bundler is a Pump.fun-inspired bundler that runs entirely on Monad’s EVM-compatible. It lets anyone launch viral tokens, route buys and sells through a bonding curve, and migrate mature pools onto Uniswap liquidity—without leaving the Solidity/Hardhat toolchain.
| Path | Purpose |
|---|---|
contracts/Core.sol |
Main router for buys, sells, slippage-protected orders, and fee routing. |
contracts/Bundler.sol |
Deploys bonding-curve instances and orchestrates launch/migration flows. |
contracts/utils/* |
Math helpers, safe transfer libs, and native-asset handling. |
contracts/interfaces/* |
Minimal ABI surface for frontends, scripts, and auditors. |
scripts/createAndBuy.ts |
Example Hardhat script that deploys, buys, and prints receipts. |
- One-click launches – deploy a bonding curve, seed reserves, and mint supply in one transaction.
- Bundled buys – ETH deposit, fee capture, reserve math, and token mint happen atomically.
- Sell variations – standard sells, permit-based sells, and slippage-protected variants.
- Fee vaulting – protocol fees stream to a vault contract for later withdrawal.
- Liquidity migration hooks – once thresholds are met, liquidity can hop to Uniswap pools.
- Safety rails – transfer helpers, allowance checks, bonding-curve math guards, and deadlines.
- Install
npm install
- Configure
cp .env.example .env
- Compile
npx hardhat compile # or npm run build - Test
npx hardhat test # or npm run test
- Demo script
ts-node scripts/createAndBuy.ts ## or npm run createAndBuy
- Launch:
Bundlerdeploys curve + token contracts, initializes virtual reserves, and records config. - Buy:
Corecalculates amountOut viaBondingCurveLibrary, mints tokens, forwards ETH, and sweeps protocol fees. - Sell: Users transfer tokens into the curve;
Coreunwraps WNative, sends ETH out, and routes fees to the vault. - Protect:
protectBuyandprotectSellenforce min/max outputs to guard against slippage. - Migrate: Once the curve hits its liquidity threshold, prepared hooks move liquidity to Uniswap (future expansion).
hardhat.config.ts ships with:
monadMainnet–https://rpc.monad.xyz(chain ID143)monadTestnet–https://testnet-rpc.monad.xyz(chain ID10143)
Add your PRIVATE_KEY to the .env file so scripts and deployments can sign transactions.
test/Bundler.test.tsexercises the new Bundler contract end-to-end (curve creation, buys, sells, fees). A fresh Hardhat run is documented inscreenshot.png.- Artifacts for each interface/contract can be found under
artifacts/. - Unit Test Result
