> ## Documentation Index
> Fetch the complete documentation index at: https://docs.o1.exchange/llms.txt
> Use this file to discover all available pages before exploring further.

# Functions and events

> Public functions, important reads, and events for the current o1 Launchpad contracts.

This developer reference summarizes the public contract surface. Use the verified explorer ABI for exact transaction encoding.

## Launch factories

Base uses `B20LaunchpadFactory`; Robinhood uses `ERC20LaunchpadFactory`. Both expose the same launch flow.

| Surface                  | Important members                                                                                                                             |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| Create                   | `createLaunch(LaunchParams)` creates the token, distributes allocations, registers vesting, opens the pool, and seeds permanent liquidity     |
| Configuration reads      | `quotes`, `feeDefaults`, `launchSupply`, `tickSpacing`, `bands`, `announcementRegistry`, and `vestingVault`                                   |
| Transaction-safety reads | `configVersion` and `usedLaunchSalts`                                                                                                         |
| Contract limits          | `MIN_SUPPLY`, `MAX_SUPPLY`, `MAX_ALLOCATIONS`, `MAX_VESTED_ALLOCATIONS`, `MIN_VESTING_DURATION`, `MAX_VEST_STEPS`, and `MAX_TOTAL_VEST_STEPS` |
| Future-launch governance | Quote, opening setting, creation fee, supply, liquidity, fee, treasury, announcement, and ownership updates                                   |

### Launch events

| Event                                               | Meaning                                                       |
| --------------------------------------------------- | ------------------------------------------------------------- |
| `Launched`                                          | Token, pool ID, creator, quote, supply, and liquidity spacing |
| `LaunchFeePaid`                                     | Creation-fee payer, quote, fee receiver, and amount           |
| `QuoteRegistered` / `QuoteUnregistered`             | Supported quote changes                                       |
| `QuoteCreationFeeUpdated`                           | Creation-fee change for a quote                               |
| `BandTemplateUpdated`                               | Future liquidity-range change                                 |
| `FeeDefaultsUpdated`                                | Future fee split, anti-snipe, or treasury change              |
| `LaunchSupplyUpdated` / `TickSpacingUpdated`        | Future supply or range-alignment change                       |
| `OwnershipTransferStarted` / `OwnershipTransferred` | Governance ownership change                                   |

## LaunchHook

The hook exposes `poolConfig` for each launch pool. The factory registers and seeds a pool; ordinary trading then occurs through Uniswap v4.

| Event            | Meaning                                                                                                                  |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------ |
| `PoolRegistered` | The pool's frozen creator, platform fee receiver, and fee settings                                                       |
| `Seeded`         | Token amount placed into the permanent position                                                                          |
| `Trade`          | Executor, referrer, fee currency, fee amount, and optional comment; swap direction comes from the matching Uniswap event |

## FeeEscrow

| Function                     | Who can call  | Result                                          |
| ---------------------------- | ------------- | ----------------------------------------------- |
| `owed(recipient, currency)`  | Anyone        | Returns the raw claimable fee balance           |
| `claim(recipient, currency)` | Anyone        | Pays the full balance to the recorded recipient |
| `claimTo(currency, to)`      | Balance owner | Pays the caller's balance to a chosen address   |

Events: `Credited` and `Claimed`.

## VestingVault

| Function                          | Who can call | Result                                                   |
| --------------------------------- | ------------ | -------------------------------------------------------- |
| `claimable(token, beneficiary)`   | Anyone       | Returns tokens currently available to claim              |
| `getSchedule(token, beneficiary)` | Anyone       | Returns the allocation, claimed amount, and unlock steps |
| `claim(token, beneficiary)`       | Anyone       | Sends available tokens to the recorded beneficiary       |

Events: `Registered` and `Claimed`.

## AnnouncementRegistry

| Function                            | Who can call     | Result                                                |
| ----------------------------------- | ---------------- | ----------------------------------------------------- |
| `creatorOf(token)`                  | Anyone           | Returns the creator allowed to announce for the token |
| `usedId(token, id)`                 | Anyone           | Checks whether an announcement ID was used            |
| `post(token, id, description, uri)` | Recorded creator | Publishes a unique announcement                       |

Events: `CreatorRegistered` and `Announcement`.

## Robinhood launch tokens

Robinhood tokens expose standard ERC-20 reads and transfers. When profile editing was enabled at launch, the metadata authority can call `updateName`, `updateSymbol`, `updateContractURI`, and `updateExtraMetadata`. No mint, burn, pause, owner, upgrade, or recovery function exists.

## Common launch errors

| Error                                | Meaning                                                             |
| ------------------------------------ | ------------------------------------------------------------------- |
| `StaleConfig`                        | Refresh the current factory settings and rebuild the transaction    |
| `LaunchExpired`                      | Use a fresh deadline                                                |
| `QuoteNotRegistered`                 | The selected quote is unavailable                                   |
| `LaunchSaltUsed`                     | Use a new launch identifier                                         |
| `InvalidLaunchFeePayment`            | The creation-fee payment was not exact                              |
| `OutOfBounds` / `InvalidConfig`      | A hard limit or related-field rule failed                           |
| `NotImmutable`                       | The created token failed its fixed-authority checks                 |
| `NotSingleSided`                     | Opening liquidity would require quote currency                      |
| `LiquidityLocked`                    | The requested liquidity change is not allowed                       |
| `ExactOutputDisabledDuringAntiSnipe` | Use an input-amount trade or wait until the normal fee begins       |
| `PartialFillUnsupported`             | The requested quote-specified amount could not be filled completely |
