Integration sequence
Select the active factory
Use only the current Base or Robinhood factory from Production contracts.
Read launch configuration
Read
configVersion, launchSupply, tickSpacing, feeDefaults, bands, and quotes(selectedQuote) at one recent block.Validate parameters
Apply the hard limits in Limits and validation, confirm the quote remains registered, and calculate the pool supply after allocations.
Build payment
For native quote, set transaction value to the exact creation fee. For ERC-20 quote, ensure the factory allowance covers the exact creation fee.
Commit to the configuration
Set
expectedConfigVersion to the fresh read and choose a short chain-time deadline. The o1 Launchpad interface uses the latest block timestamp plus 30 minutes.Simulate, sign, and confirm
Simulate
createLaunch, present all recipients and economics to the user, then request a wallet signature and wait for a successful receipt.Read the current snapshot with viem
The example below reads Base. For Robinhood, use a Robinhood Chain client and the current Robinhood factory and quote addresses from Production contracts.LaunchParams contains nested vesting arrays, so a partial handwritten write ABI is easy to get wrong.
startTickToken0Frame is the factory’s internal opening-price encoding for a registered quote. The factory handles token ordering and tick spacing when it creates the pool; a launch transaction selects the quote and does not submit a starting tick.
LaunchParams
| Field | Meaning |
|---|---|
name, symbol | Token identity |
contractURI | Pinned token metadata URI |
salt | User salt, scoped by factory to the caller |
quote | Registered quote address; zero address means native ETH |
allocationRecipients, allocationAmounts | Parallel immediate allocation arrays |
vestedAllocations | Beneficiary, amount, and cumulative staircase steps |
expectedConfigVersion | Exact fresh factory version |
deadline | Latest allowed chain timestamp |
roleMode | 0 for immutable metadata, 1 for metadata authority |
metadataKeys, metadataValues | Parallel on-chain metadata arrays |
Trading integration
Launch pools are ordinary Uniswap v4 pools with a required hook. Use the listed v4 Quoter for price discovery and the Universal Router plus Permit2 for execution. Preserve the exact pool key: sorted currencies, LP fee0, launch tick spacing, and the active hook address.
tickSpacing is part of the exact Uniswap pool identifier and controls valid liquidity range boundaries. The current value 200 represents about 2.02% between allowed boundaries; it does not make swap prices move in fixed 2.02% increments.
Use exact-input during the anti-snipe window. Encode optional hook data as the referrer address followed by a bytes32 comment. Simulate at current timestamp and include slippage and deadline protection.
Failure handling
TreatStaleConfig and LaunchExpired as refresh-and-rebuild errors. Treat quote removal, fee mismatch, allocation validation, salt reuse, immutability, and single-sided failures as blocking errors that require changed inputs or configuration. Do not silently fall back to another factory or quote.