Developers
Contracts
Seven contracts, and what each one is responsible for.
| Contract | Responsibility | Owner |
|---|---|---|
| TapeFactory | validates and launches markets | protocol owner |
| TapeToken | fixed-supply ERC-20, deployed per launch | none |
| TapeHook | market rules, enforced in the swap | none |
| TapeQuoteRegistry | quote assets permitted for new markets | protocol owner |
| TapeLiquidityLocker | holds every launch position, permanently | none |
| TapeFeeVault | fee accounting and claims | protocol owner |
| TapePreviewer | read-only simulation | none |
| TapeFeeRight | transferable creator-fee entitlement | factory (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
burncallable by the hook - Permissions
- no owner, no mint after construction
- Security note
burnreducestotalSupply; 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;
setFactoryis 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
modifyLiquidityis called twice: once with a positive delta at launch, once with the literal constant0
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.