BaseLaunchDeployer
Deploys each coin and its bonding curve with CREATE2 for the factory, so their addresses can be computed before the launch is sent.
Deploys the bonding curve and launch token pair for one launcher launch on BaseLaunchFactory's behalf. Split out into its own contract purely so BaseLaunchFactory's own bytecode stays under EIP-170's 24576-byte deployed-code limit: embedding two full contracts' creation code via new inside the factory itself was the single largest contributor to its size. Both new contracts still record the real factory's address explicitly (never this deployer's), since they gate privileged calls on it.
Part of the contract reference.
Deployed at
Read functions (2)
| Function | What it does |
|---|---|
factoryfactory() view returns (address)selector 0xc45a0155Anyone | The launch factory, the only caller allowed to deploy, and the privileged caller written into every coin and curve. |
predictLaunchAddressespredictLaunchAddresses(LaunchDeployment params) view returns (address token, address curve)selector 0x33a86336Anyone | Returns the addresses Lets a caller confirm that a launch it has not seen confirmed yet will land where it expects, and lets the launch path be checked for a salt the creator has already used. The token is derived from the curve because the curve's address is one of the token's constructor arguments, so the pair has to be computed in deployment order. |
Write functions (1)
| Function | What it does |
|---|---|
deployLaunchdeployLaunch(LaunchDeployment params) returns (address token, address curve)selector 0x36a2c099Factory only | Deploys a fresh curve/token pair and returns both addresses. Both contracts are told Deployed with CREATE2 rather than CREATE so neither address depends on this deployer's nonce, and therefore on the order launches happen to land in. Under CREATE the Nth launch simply took the Nth address, so an address predicted before its launch confirmed committed to nothing and a different launch could arrive there instead. Under CREATE2 the address is a function of the salt and the creation code, and the creation code carries every constructor argument, so an address can only ever hold the exact launch it was computed from. Reverts through |
Structs
| Struct | Fields, in ABI order |
|---|---|
FeePolicySnapshot | uint16 protocolFeeShareBps, uint16 buybackBurnBps, uint16 hookFeeBps, uint16 maxInternalPriceImpactBps |
LaunchDeployment | address pairToken, address creatorFeeRecipient, address originalDeployer, address feePolicy, FeePolicySnapshot policy, address feeEscrow, address buybackVault, uint256 phantomQuote, uint256 curveFeeBps, uint256 creatorTaxBps, bool buybackEnabled, uint256 graduationThreshold, uint256 supply, bytes32 salt, string name, string symbol, string logo, string description, Socials socials |
Socials | string twitter, string telegram, string discord, string website, string farcaster |
Addresses are listed for launcher 2.1.0, where new coins launch, and for launcher 2.0, which keeps serving the coins launched before the cutover. A coin stays on the set that launched it. The functions and events are the 2.1.0 contracts'; the 2.0 contracts are an earlier version of the same code and have no interface registry, so check a 2.0 contract's verified source on Basescan before relying on a detail listed here.