bitpro가 원문에서 글자만 모은 내용이에요. 표·그림·수식은 빠지거나 깨질 수 있어요. 전체 35쪽 중 21쪽
osed wallet.
<Steps>
<Step title="Accept the creator rights">
Accept the creator rights of the launchpad token on the launchpad page or on the token page.
</Step>
<Step title="Accept the launchpad">
Select **Accept ownership** and confirm the payout address. The app sends your wallet address as the expected creator. The registry rejects the acceptance when your wallet does not hold the creator rights.
</Step>
<Step title="Pay the seller">
Pay only after both acceptances complete.
</Step>
</Steps>
## What changes after the handover
* Owner fees go to the payout address of the new owner.
* The new owner controls the launch rules, identity, page, tokens and payout address.
* The URL, the launchpad token, the owner share and the burn amount do not change.
* Existing tokens on the launchpad keep their tax and their membership.
When the registry allowlist is on, the new owner must be on it. The allowlist is off.
## Known limit
The contracts do not escrow payment, and they do not make sure that both transfers complete.
* A seller can cancel the launchpad proposal after the buyer accepts the creator rights.
* After both acceptances, the buyer can refuse to pay. The seller cannot reverse either transfer.
* The app makes the buyer hold the creator rights before the launchpad acceptance. A direct contract call with zero as `expectedCreator` skips that check.
Payment after both acceptances protects the buyer. The seller keeps the payment risk. Use a trusted counterparty or a separate escrow arrangement.
# Prepare fee claims
Source: https://docs.o1.exchange/launchpad/public-api/reference/claims/prepare-fee-claims
/launchpad-api-openapi.yaml post /claims/fees/prepare
Verify fee-claim positions and return one independent unsigned transaction per position.
# Prepare holder Dividend claims
Source: https://docs.o1.exchange/launchpad/public-api/reference/claims/prepare-holder-dividend-claims
/launchpad-api-openapi.yaml post /claims/dividends/prepare
Resolve each publicly supported token's factory-bound Dividend clone, read live assigned rewards and recorded receiver, simulate the holder's exact claim, and return 1 to 10 independent unsigned transactions (atomic: false). Uses claims:prepare. The holder must initiate each claim, including smart wallets; no token approvals are required. Fee-accrual rewards are already assigned. Claim automatically retrieves the clone's full escrow entry when local backing is insufficient and pays only the claimant's earned amount. Historical distribution operation values return 422 unsupported_operation; index-only old suites are not publicly preparable. Claims can remain available after selling. Deficit or backing totals alone do not guarantee or preclude payment; exact simulation checks receiver and full-entry redemption behavior. simulated_holder_paid is a simulation result, not an executed payment. This API does not use the browser's atomic Claim all helper, and independently submitted transactions can succeed or fail separately.
# Prepare vesting claims
Source: https://docs.o1.exchange/launchpad/public-api/reference/claims/prepare-vesting-claims
/launchpad-api-openapi.yaml post /claims/vesting/prepare
Verify unlocked vesting positions and return one independent unsigned transaction per position.
# Prepare a metadata document update
Source: https://docs.o1.exchange/launchpad/public-api/reference/creators/prepare-a-metadata-document-update
/launchpad-api-openapi.yaml post /tokens/{chain_id}/{token_address}/metadata/document/prepare
Merge and pin token description, image, website, X, or Telegram updates, then return one unsigned contract-URI transaction.
# Prepare an announcement
Source: https://docs.o1.exchange/launchpad/public-api/reference/creators/prepare-an-announcement
/launchpad-api-openapi.yaml post /tokens/{chain_id}/{token_address}/announcements/prepare
Verify the launch creator and return an unsigned AnnouncementRegistry transaction.
# Prepare an on-chain metadata update
Source: https://docs.o1.exchange/launchpad/public-api/reference/creators/prepare-an-on-chain-metadata-update
/launchpad-api-openapi.yaml post /tokens/{chain_id}/{token_address}/metadata/onchain/prepare
Update the token name, symbol, or one on-chain extra-metadata key.
# Prepare a launch
Source: https://docs.o1.exchange/launchpad/public-api/reference/launches/prepare-a-launch
/launchpad-api-openapi.yaml post /launches/prepare
Validate inputs and any current creation-fee requirement, pin metadata, mine an 01 address, simulate against the verified chain snapshot, and return unsigned wallet steps.
# Check API health
Source: https://docs.o1.exchange/launchpad/public-api/reference/meta/check-api-health
/launchpad-api-openapi.yaml get /health
Check service availability and the running API build without querying launchpad data.
# Get API configuration
Source: https://docs.o1.exchange/launchpad/public-api/reference/meta/get-api-configuration
/launchpad-api-openapi.yaml get /config
Get production suites, contract addresses, quote assets, capabilities, and live creation state for one chain.
# Prepare a swap
Source: https://docs.o1.exchange/launchpad/public-api/reference/swaps/prepare-a-swap
/launchpad-api-openapi.yaml post /swaps/prepare
Requote an unmodified quote_id, preserve its reviewed slippage floor, simulate, and return an unsigned Universal Router transaction.
# Quote a swap
Source: https://docs.o1.exchange/launchpad/public-api/reference/swaps/quote-a-swap
/launchpad-api-openapi.yaml post /swaps/quote
Get a live exact-input launch-pool quote, minimum output, and any ERC-20 approval or Permit2 signature requirements. The quote expires after 2 minutes.
# Get token details
Source: https://docs.o1.exchange/launchpad/public-api/reference/tokens/get-token-details
/launchpad-api-openapi.yaml get /tokens/{chain_id}/{token_address}
Get one token's launch data and optionally include its pool, market, allocations, vesting, and recent announcements.
# List announcements
Source: https://docs.o1.exchange/launchpad/public-api/reference/tokens/list-announcements
/launchpad-api-openapi.yaml get /tokens/{chain_id}/{token_address}/announcements
Page through creator announcements for one tracked launch token.
# List creator tokens
Source: https://docs.o1.exchange/launchpad/public-api/reference/tokens/list-creator-tokens
/launchpad-api-openapi.yaml get /creators/{address}/tokens
List launches created by one wallet in newest or oldest order.
# List token holders
Source: https://docs.o1.exchange/launchpad/public-api/reference/tokens/list-token-holders
/launchpad-api-openapi.yaml get /tokens/{chain_id}/{token_address}/holders
Get a provider-backed holder snapshot for one tracked launch token.
# List token trades
Source: https://docs.o1.exchange/launchpad/public-api/reference/tokens/list-token-trades
/launchpad-api-openapi.yaml get /tokens/{chain_id}/{token_address}/trades
Page through canonical trades for one tracked launch token. Use at most one identity filter per request.
# List tokens
Source: https://docs.o1.exchange/launchpad/public-api/reference/tokens/list-tokens
/launchpad-api-openapi.yaml get /tokens
Browse launches by market, quote, and indexed ordering with cursor pagination.
# Search tokens
Source: https://docs.o1.exchange/launchpad/public-api/reference/tokens/search-tokens
/launchpad-api-openapi.yaml get /tokens/search
Search tracked launches by token address, name, symbol, creator, pool ID, or launch transaction. Matching results use one deterministic liquidity ordering.
# Get transaction status
Source: https://docs.o1.exchange/launchpad/public-api/reference/transactions/get-transaction-status
/launchpad-api-openapi.yaml get /transactions/{chain_id}/{tx_hash}
Read indexed status for a wallet-broadcast transaction. Data is null until the transaction is observed.
# Discover holder dividend positions
Source: https://docs.o1.exchange/launchpad/public-api/reference/wallets/discover-holder-dividend-positions
/launchpad-api-openapi.yaml get /wallets/{address}/dividends
Indexed position directory, including former holders with retained rewards. Balances and receivers are index snapshots; prepare a claim to verify the current onchain state. No current claimable amount is inferred from pending balance.
# Get wallet overview
Source: https://docs.o1.exchange/launchpad/public-api/reference/wallets/get-wallet-overview
/launchpad-api-openapi.yaml get /wallets/{address}
Get a compact launchpad overview with the wallet's latest launch, latest activity, and claimable-position flags.
# List fee claims
Source: https://docs.o1.exchange/launchpad/public-api/reference/wallets/list-fee-claims
/launchpad-api-openapi.yaml get /wallets/{address}/fee-claims
Page through fee positions for one wallet.
# List vesting positions
Source: https://docs.o1.exchange/launchpad/public-api/reference/wallets/list-vesting-positions
/launchpad-api-openapi.yaml get /wallets/{address}/vesting
Page through vesting positions for one beneficiary.
# List wallet activity
Source: https://docs.o1.exchange/launchpad/public-api/reference/wallets/list-wallet-activity
/launchpad-api-openapi.yaml get /wallets/{address}/activity
Page through structured public launchpad activity involving one wallet.
# Functions and events
Source: https://docs.o1.exchange/launchpad/reference/events-functions
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.
<span />
## Standard launch factories
For Standard tokens, Base, Robinhood, BSC and X Layer each use one current launch factory for both crypto-paired and stock-paired creation. The current and historical addresses are linked from [Production contracts](/launchpad/reference/production-contracts), and the complete topology is available in [`launch-contract-suites.json`](/launchpad/reference/launch-contract-suites.json). Event consumers must retain historical factories and use the ABI matching each suite's `contractVersion`.
### Active production factories
| Surface | Important members |
| - | - |
| Create | `createLaunch(LaunchParams)` creates and seeds a launch; `createLaunchAndBuy(LaunchParams, LaunchBuyParams)` also executes one protected buy through the configured adapter |
| Core configuration | `configVersion`, `launchSupply`, `tickSpacing`, `bandTemplate`, `nativeLaunchFee`, `announcementRegistry`, and `launchBuyAdapter` |
| Fee configuration | `baseFeeBps`, `antiSnipeStartTotalBps`, `antiSnipeWindowSeconds`, `feeComponentCount`, indexed `feeComponents(index)`, and `platformFeeRecipient` |
| Quote state | `quoteConfig(quote)` and `quoteRevision(quote)` |
| Creation state | `launchCreationEnabled`, `priceUpdater`, and `TOKEN_ADDRESS_SUFFIX` |
| Transaction safety | `isLaunchSaltUsed(scopedSalt)` plus the fresh `configVersion` supplied in `LaunchParams` |
| Quote management | `registerQuote`, `setQuoteStartTick`, and `unregisterQuote`, plus their bounded batch forms with at most 64 entries |
| Creator-rights reads | `creatorRights(token)` and `currentCreatorOf(token)` |
| Creator self-service | `proposeCreatorRightsTransfer`, `acceptCreatorRightsTransfer`, `cancelCreatorRightsTransfer`, `safeTransferCreatorRights`, and `setCreatorFeeRecipient` |
| Creator-rights administration | `creatorAdmin`, `pendingCreatorAdmin`, `adminReassignCreatorRights`, `transferCreatorAdmin`, `acceptCreatorAdmin`, `cancelCreatorAdminTransfer`, and `revokeCreatorAdmin` |
| Token metadata | `updateTokenName`, `updateTokenSymbol`, `updateTokenContractURI`, and `updateTokenExtraMetadata` for launches that enabled editing |
The current Base, Robinhood, Monad, Arc, BSC and X Layer factories do not expose the older `feeDefaults()` aggregate read. Read the named fee getters and enumerate `feeComponents(0..feeComponentCount-1)`. They also replace the older `quotes()` tuple with `quoteConfig()`, use one global `nativeLaunchFee()` for every quote, and use `bandTemplate()` instead of `bands()`.
The current fee component rows on all six chains are `CREATOR` at 50 bps, `PLATFORM` at 30 bps, and `REFERRER` at 20 bps. Their sum is the 100 bps base fee. Component bps are direct shares of the trade amount, not percentages that need to be applied to `baseFeeBps` again.
### Chain-specific token deployment
Base creates and validates native B20 tokens. Robinhood, Monad, Arc, BSC and X Layer call their dedicated `LaunchTokenDeployer` to create immutable ERC-20 tokens. Robinhood, Monad, Arc, BSC and X Layer integrations can read `launchTokenBytecodeHash(LaunchParams)` and `TOKEN_ADDRESS_SUFFIX` to prepare a deterministic token address ending in `01` before signing.
### Launch events
| Event | Meaning |
| - | - |
| `Launched` | Token, pool ID, creator, quote, supply, and liquidity spacing |
| `NativeLaunchFeePaid` | Creation-fee payer, configured recipient, and native amount |
| `LaunchBuyExecuted` | Token, pool, creator, funding token, input amount, output amount, and adapter for an atomic launch-buy |
| `QuoteRegistered` / `QuoteUnregistered` | Supported quote changes |
| `QuoteStartTickUpdated` | Revision-aware future opening-frame update |
| `BandTemplateUpdated` | Future liquidity-range change |
| `FeeConfigurationUpdated` / `FeeComponentConfigured` | Future base fee, anti-snipe, and component configuration |
| `LaunchSupplyUpdated` / `TickSpacingUpdated` | Future supply or range-alignment change |
| `NativeLaunchFeeUpdated` / `LaunchBuyAdapterUpdated` | Future global launch-fee or atomic adapter change |
| `ConfigVersionUpdated` / `AnnouncementRegistrySet` | Future launch configuration version or announcement-registry change |
| `CreatorRightsTransferProposed` / `CreatorRightsTransferCancelled` / `CreatorRightsTransferred` | Two-step creator-rights transfer history |
| `CreatorRightsReassigned` / creator-admin transfer events | Administrative creator-rights reassignment or creator-admin authority changes |
| `CreatorFeeRecipientUpdated` | Future creator-fee routing |
| `OwnershipTransferStarted` / `OwnershipTransferred` | Governance ownership change |
All current minimal factories additionally emit `PriceUpdaterUpdated` and `LaunchCreationEnabledUpdated`. Historical factories retain their original event names; use the ABI for the exact contract that produced the event.
## LaunchHook
The hook exposes `poolConfig(poolId)` and `poolFeeComponents(poolId)` for each launch pool. These reads return the pool's frozen fee and anti-snipe configuration plus its current creator and creator fee recipient. The factory registers and seeds a pool; ordinary trading then occurs through Uniswap v4.
| Event | Meaning |
| - | - |
| `PoolRegistered` | The pool's immutable original creator, initial creator fee recipient, and base fee |
| `CreatorRightsUpdated` | Current creator and creator fee-recipient changes |
| `FeeComponentCredited` | Per-component fee credit, recipient, currency, and amount |
| `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 |
`Trade.executor` is the router or callback sender and is not guaranteed to be the trader's wallet. Indexers should derive direction and trader attribution from the complete transaction receipt, including the matching Uniswap swap and router execution context.
## FeeEscrow
| Function | Who can call | Result |
| - | - | - |
| `owed(recipient, currency)` | Anyone | Returns the raw claimable fee balance |
| `claimFor(recipient, currency)` | Anyone | Pays the full balance to the recorded recipient on the current fee contract |
| `claimTo(currency, destination)` | Balance owner | Pays the caller's balance to a chosen address |
Events: `Credited` and `Claimed`.
Earlier launch contracts use their original claim function names. Resolve the fee contract recorded for the launch before encoding a claim.
## AnnouncementRegistry
| Function | Who can call | Result |
| - | - | - |
| `isTokenRegistered(token)` | Anyone | Checks whether the active registry knows the launch token |
| `isAnnouncementIdUsed(token, id)` | Anyone | Checks whether an announcement ID was used |
| `postAnnouncement(token, id, description, uri)` | Current recorded creator | Publishes a unique announcement |
Events: `TokenRegistered` and `AnnouncementPosted`.
Earlier launch contracts retain their original `creatorOf`, `usedId`, `post`, `CreatorRegistered`, and `Announcement` surface.
<span />
<span />
<span />
## Robinhood, Monad, Arc, BSC and X Layer launch tokens
Standard launch tokens on Robinhood, Monad, Arc, BSC and X Layer expose 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.
Standard ERC-20 launches on Robinhood, Monad, Arc, BSC and X Layer use `LaunchToken`; Tax launches use `TaxLaunchToken`. Each is created through its own bound factory and must end in `01`.
<span />
## Tax surface
The Base, Robinhood, BSC, Monad, X Layer and Arc Tax suites use `TaxRWAERC20LaunchpadFactory`, `TaxLaunchHook`, optional `TaxDividend` clones (`ArcTaxDividend` on Arc) and one fixed `TaxDividendClaimHelper` per suite. Each keeps FeeEscrow and creator-rights concepts but has different launch tuples, inclusive units and fee events.
Arc reward/payment event amounts use the fixed ERC-20 quote units: six decimals for USDC and eight for cirBTC. Native launch fees and native recovery use 18-decimal USDC units. The payment preference does not convert Arc rewards to a wrapped or separate native asset.
| Surface | Important members |
| - | - |
| Policy and preview | `taxPolicy`, `previewTaxConfiguration`, `configVersion` |
| Owner policy updates | `setTaxPolicy`, `setTaxFeeBounds`, `setProtocolFeeConfiguration`, `setAntiSnipeConfiguration`, `setMinimumDividendHoldingRequirement` |
| Launch | Tax `createLaunch` / `createLaunchAndBuy` tuples; `launchTokenInitCodeHash`; `dividendOf` |
| Pool rates | `poolConfig`, `effectiveFeeRates` |
| Dividend earnings | Hook-only `notifyDividendFee`; `withdrawableDividendOf`, `accumulativeDividendOf`, `withdrawnDividends` |
| Dividend backing | `pendingDividendFunding`, `availableRewardBacking`, `requiredRewardBacking`, `rewardBackingDeficit` |
| Dividend withdrawals | Holder-authorized `withdrawDividends` and `withdrawDividendsFor` |
| Voluntary contributions | `depositDividends` assigns new rewards; `replenishBacking` restores backing without new entitlements |
| Cross-token claims | Fixed helper `claimDividends`; caller is the holder, no arbitrary beneficiary parameter |
| Burn delivery | Unchanged `FeeEscrow.claimFor(deadAddress, token)` |
Tax events include `LaunchTaxConfigured`, `TaxPolicyUpdated`, category-specific quote/burn credit events, `DividendTaxRedirected`, Dividend share/accrual/allocation/payment events and the helper's `DividendsClaimed`. Do not decode them with Standard fee-component tuples. [Tax contract integration](/launchpad/integration/tax-tokens) gives the complete mapping, precision, authorization and accounting distinctions.
<span />
## \$O launch contracts
Use the `wsto-burn-v1` ABI for [\$O launches on Base and Robinhood](/launchpad/integration/wsto), not Standard fee components or Tax allocation tuples.
| Surface | Members and meaning |
| - | - |
| Creation | `createLaunch`, `createLaunchAndBuy`, `launchTokenBytecodeHash`, `configVersion`, `launchCreationEnabled` |
| Burn defaults | `defaultBurnRates`, `setDefaultBurnRates`, `DefaultBurnRatesUpdated`; only new pools use updated rates |
| Pool read | Hook `poolConfig(poolId)` returns initialization, token ordering and frozen buy/sell burn rates |
| Quote lifecycle | `quoteConfig`, `quoteRevision`, registration/removal 프로젝트로 돌아가기