Docs
READ BEFORE THE HOUSE LIGHTS DIM.
Overview
SHOWTIME is a programmable Uniswap V4 Hook experiment on Ethereum Mainnet. A Uniswap V4 pool nominates a Hook contract; the PoolManager then calls that contract at defined points in the pool's lifecycle. SHOWTIME uses that programmable layer for its fee and token mechanics.
This site is the front of house. It reads the chain, and where an indexer is configured it reads a cache of the chain. It does not simulate, estimate or extrapolate — if a number cannot be sourced, the page says so.
The metaphor
| On stage | In the protocol |
|---|---|
| The Big Top | The Uniswap V4 pool |
| The Ringmaster | The Hook contract |
| A ticket | A swap |
| Show revenue | Fees generated by pool activity |
| The performance | Programmable logic executed by the Hook |
| The final act | Tokens sent to a burn address |
The metaphor is how the site is organised. It is never a substitute for the mechanism — every claim about the mechanism has to come from the contract.
The Hook
Uniswap V4 introduced Hooks: contracts that a pool can call before and after initialisation, liquidity changes, swaps and donations. Which of those callbacks a hook may receive is encoded in the least significant bits of its deployed address, which is why V4 hooks are mined to a specific address prefix.
The canonical callbacks
- beforeInitialize / afterInitialize
- beforeAddLiquidity / afterAddLiquidity
- beforeRemoveLiquidity / afterRemoveLiquidity
- beforeSwap / afterSwap
- beforeDonate / afterDonate
The site lists these names only to classify entries it finds in the installed ABI. It never asserts that SHOWTIME implements any of them.
Data sources
- Chain (source of truth). viem + wagmi read the token contract directly for supply, decimals, symbol and burn-sink balances.
- Alchemy. Asset transfers and block height, used for wallet history and burn transfers.
- Supabase (optional cache). Aggregated swap counts, fee events and burn events, populated by your own indexer. When it is absent the site shows INDEXER OFFLINE and keeps the chain-derived figures working.
All queries go through TanStack Query with a 30-second stale time and a 60-second refetch interval, so a busy page does not hammer your RPC quota.
What this site will not claim
The Hook ABI file ships empty. Until a deployed artifact is installed, every Hook surface reads HOOK ABI NOT CONFIGURED, no Hook function is called, and no callback, permission or fee route is described.
Likewise, the token ABI contains the EIP-20 standard interface only. Any project-specific function — a tax, a claim, a buyback trigger — is only real once it appears in the verified artifact.
Demo mode exists for development. When NEXT_PUBLIC_DEMO_MODE=true, a permanent DEMO SHOW banner is displayed and every sample value is tagged as such in the UI.
Addresses
Configuration
Everything is read from environment variables and centralised in src/config/project.ts. Chain id is currently 1 (Ethereum Mainnet); there is no chain selector, by design.
NEXT_PUBLIC_CHAIN_ID=1
NEXT_PUBLIC_CHAIN_NAME=Ethereum Mainnet
NEXT_PUBLIC_RPC_URL=
NEXT_PUBLIC_ALCHEMY_API_KEY=
NEXT_PUBLIC_TOKEN_ADDRESS=
NEXT_PUBLIC_HOOK_ADDRESS=
NEXT_PUBLIC_POOL_MANAGER_ADDRESS=
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=
NEXT_PUBLIC_DEMO_MODE=falseSee README.md for the full list, including the optional fee/burn description fields and the indexer lookback window.