Tapezero docs
Verification

Onchain Verification

Check the market yourself, without trusting this interface.

Everything the manifest asserts is readable from the chain. This is the recipe.

  1. 01
    Find the market

    From MarketLaunched on the factory, or from the market page's pool id.

  2. 02
    Read the pool id

    Recompute it yourself: it is the keccak256 of the pool key — both currencies in sorted order, the fee tier, the tick spacing and the hook address. If your recomputation differs, the pool being shown is not the pool being described.

  3. 03
    Read the market struct

    hook.market(poolId) returns every frozen rule. Compare each field with what the interface shows.

  4. 04
    Recompute the config hash

    Encode the configuration canonically and hash it. Compare with the configHash in the struct and in the launch event.

  5. 05
    Verify the liquidity lock

    locker.positions(poolId) returns the tick range and liquidity. Then read the locker's source: confirm for yourself that no code path passes a negative liquidity delta.

  6. 06
    Inspect the launch transaction

    One transaction should contain the token deployment, the pool initialisation, MarketConfigured, LiquidityLocked and MarketLaunched. If the configuration were mutable, it would have to appear in a later transaction — and there is none.

What to be suspicious of

  • a pool id that does not recompute from its stated pool key
  • a hook address that does not encode the expected permission bits
  • a market whose hook is not the deployed TAPEZERO hook
  • MarketConfigured in a different transaction from MarketLaunched
  • any locked position whose owner is not the deployed locker

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