Tapezero docs
Developers

Contracts

Seven contracts, and what each one is responsible for.

ContractResponsibilityOwner
TapeFactoryvalidates and launches marketsprotocol owner
TapeTokenfixed-supply ERC-20, deployed per launchnone
TapeHookmarket rules, enforced in the swapnone
TapeQuoteRegistryquote assets permitted for new marketsprotocol owner
TapeLiquidityLockerholds every launch position, permanentlynone
TapeFeeVaultfee accounting and claimsprotocol owner
TapePreviewerread-only simulationnone
TapeFeeRighttransferable creator-fee entitlementfactory (disabled in V1)

TapeFactory

Purpose
the only way a TAPEZERO market comes into existence
Key entry point
launch(params)
State
protocol fee bps, module flags, locker and fee-right addresses
Events
MarketLaunched, DustBurned, ProtocolFeeSet, LaunchesEnabledSet, ModuleFlagSet, FeeRightIssued
Permissions
owner may set the default fee, module flags, and the one-shot wiring
Security note
cannot modify a launched market; its constructor rejects a hook whose address does not encode the required permission bits

TapeToken

Purpose
the launch token
State
standard ERC-20 plus a metadata URI
External methods
ERC-20, plus burn callable by the hook
Permissions
no owner, no mint after construction
Security note
burn reduces totalSupply; there is no dead-address convention

TapeHook

Purpose
enforces one market's frozen rules on every swap
Callbacks
beforeInitialize, beforeSwap, afterSwap
State
poolId => Market, per-block anti-snipe state, pot counters
External methods
registerMarket (factory, once), market(poolId) (view)
Events
MarketConfigured, QuoteFeeTaken, TokensBurned, PotAdvanced, PotAwarded
Permissions
no owner; setFactory is callable once, before a factory exists
Security note
no setter exists for a registered market

TapeQuoteRegistry

Purpose
the set of quote assets new markets may use
State
quote => QuoteConfig
External methods
config, checkQuote (non-reverting), requireLaunchable (reverting), setQuote, disableQuote
Events
QuoteAdded, QuoteUpdated, QuoteDisabled
Permissions
owner may add, update and disable
Security note
never consulted on a swap, so disabling a quote cannot affect a live market

TapeLiquidityLocker

Purpose
owns every market's initial position, forever
State
poolId => Position
External methods
lockLaunchLiquidity (factory only), collectLpFees (anyone), unlockCallback
Events
LiquidityLocked, LpFeesCollected
Permissions
none — the contract has no owner
Security note
modifyLiquidity is called twice: once with a positive delta at launch, once with the literal constant 0

TapeFeeVault

Purpose
accounts every fee, per market and per token
State
accruals, splits, pot balances, claimable balances
External methods
accrue, accrueLp, awardPot, claimCreator, claim, sweepProtocol
Events
see Events
Permissions
owner sets the treasury and the one-shot wiring; claims are permissionless
Security note
reentrancy-guarded on every claim path; holds Uniswap ERC-6909 claims it redeems on demand

TapePreviewer

Purpose
read-only preview of a launch and of sample trades
External methods
previewLaunch, checkRules, quote and price views
Permissions
none; it is entirely view
Security note
shares the production libraries, and reports status codes alongside the arithmetic instead of refusing to compute

TAPEZERO is an independent protocol and is not affiliated with Robinhood, Uniswap or Chainlink. The contracts are unaudited. Nothing here is investment advice.