Skip to main content

Getting started

This page gets you connected to the launchpad and explains the handful of concepts that show up everywhere else: the launchpad contract, the ABI, roles, and fees.

Connect to the launchpad​

CheesePad is one contract per chain. Pools, microsales, and Melt Pools are all flows on that same contract, not separate deployments, so there is a single address to configure. Grab the one for your network from the overview, and instantiate it with the Launchpad ABI.

import { ethers } from "ethers";
// https://docs.cheesepad.ai/abi/Launchpad.json
import LaunchpadABI from "./abi/Launchpad.json";

const provider = new ethers.JsonRpcProvider(RPC_URL);
const LAUNCHPAD = "0x0AA21d47b600B04527c09BbD9A30aF32cb64f6cF"; // bnbTestnet

// Read-only
const launchpad = new ethers.Contract(LAUNCHPAD, LaunchpadABI, provider);

// Write (attach a signer)
const signer = await provider.getSigner();
const launchpadRW = launchpad.connect(signer);

Where the ABI comes from​

Download it here: Launchpad.json.

The launchpad is a diamond, so its functions and events are spread across around 39 facet contracts behind a single address. That file is all of them flattened into one ABI: every function, event, and error described in these docs. Point your contract instance at the launchpad address and use it as-is.

Networks​

NetworkChain IDRPCExplorer
BNB Chain56any BSC RPCbscscan.com
BNB testnet97any BSC testnet RPCtestnet.bscscan.com
Robinhood Chain4663https://rpc.mainnet.chain.robinhood.com/robinhoodchain.blockscout.com

BNB testnet relaxes one rule: the minimum LP lock drops to 5 minutes so you can exercise unlocking during QA. On both mainnets the floor is 30 days for a pool and 365 days for a microsale. Note that Robinhood Chain is a mainnet, so it does not get the testnet relaxation. Everything else behaves the same across all three networks; see the constants table for the exact values.

Who can do what​

Most calls are permissionless. The ones that manage a specific sale are gated to that sale's owner:

  • Anyone. Creating a sale, contributing, trading a Melt Pool, claiming, refunding, and every view function are open to any address.
  • Sale owner. The address that created a given sale. It can finalize, cancel, and edit that sale's details.
  • Admin. The platform. A few steps happen on the platform side rather than yours: publishing the microsale templates and Melt Pool config you launch against, and computing a Subscription pool's allocation. These are called out where they come up; you never need admin rights to launch or participate.

Fees​

Two fees matter to an integrator.

Creation fee. Creating a sale may cost a flat native fee, and the two launch styles read it from different fields: pools use masterConfig.creationFee, microsales use masterConfig.microSaleCreationFee. Send it as msg.value on the create call; it is forwarded to the platform fee address. Pools require the exact amount, microsales require at least it. Read the value before quoting a cost:

const cfg = await launchpad.getMasterConfig();
const poolFee = cfg.creationFee; // for pool launches
const microFee = cfg.microSaleCreationFee; // for microsale launches

Platform fee at finalize. When a sale finalizes, a cut of the raise is taken off the top and sent to the platform fee address; the rest is paired with LP tokens and added to the DEX. Microsales use a flat 5%. Pools use the platform's nativeFeePercent. Either way you do not pay it directly; it comes out of the raise, which is why the listing math is applied to the post-fee amount.

Melt Pool trade fee. Every Melt Pool curve trade pays a flat 1% fee, taken off the top of each buy and sell. It applies during the curve phase and stops once the pool graduates to a DEX.

Tax-token platform fee. A tax token (CheeseTaxTokenV2) collects the creator's buy/sell tax, and on top of it CheesePad takes an additional 10% platform fee on that creator tax — during a Melt Pool's curve phase and after listing alike. The rate is stored on-chain; read it with getPlatformCutBps() (returns preBps, postBps — the curve-phase and post-listing rates in BPS). See the token fee model for the full picture.

One more fee to be aware of: an emergency withdrawal (leaving a live sale early) costs the contributor 10% of their contribution.

Reading the platform config​

getMasterConfig() returns the platform-wide settings. The fields you are most likely to read:

FieldMeaning
feeTowhere platform fees and creation fees go
lockerthe LP locker used when a sale locks liquidity
microSaleCreationFeeflat native fee to create a microsale (may be 0)
platformRolethe vault emergency-rescue backstop address
giftRelayerSignerthe signer that attests GiftVault identity binds

The full struct is in events-and-data.md.

Next​

Pick your launch style: pools.md, microsale.md, or melt-pool.md. If you care about where a tax token's revenue lands, see vaults.md.