Onchain Verification
Check the market yourself, without trusting this interface.
Everything the manifest asserts is readable from the chain. This is the recipe.
- 01Find the market
From
MarketLaunchedon the factory, or from the market page's pool id. - 02Read 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.
- 03Read the market struct
hook.market(poolId)returns every frozen rule. Compare each field with what the interface shows. - 04Recompute the config hash
Encode the configuration canonically and hash it. Compare with the
configHashin the struct and in the launch event. - 05Verify 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. - 06Inspect the launch transaction
One transaction should contain the token deployment, the pool initialisation,
MarketConfigured,LiquidityLockedandMarketLaunched. 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
MarketConfiguredin a different transaction fromMarketLaunched- 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.