01

FUEL

Every swap through the pool pays a fee. That fee is the only input this mechanism consumes.

Chalk drawing of a fuel tank feeding the reaction

FUEL ENTERS HERE.

EVERY SWAP
ADDS INPUT.

→ TO 02 CATALYST

A Uniswap v4 pool charges a fee on every swap. Where that fee goes is not fixed by the pool — it is decided by the pool key and by the hook attached to it. COMBUSTION treats that flow as fuel: an input that arrives only when the pool is used, and that the mechanism converts into a reduction of supply.

No fee is invented on this page. The figures below are the pool's own configured parameters and the amounts carried by events the deployed contract actually emitted.

FUEL INPUT

FEE FLOW
READING…
FEES CAPTURED
READING…
LAST INPUT
READING…
LAST INPUT AT
READING…

POOL FEE PARAMETERS

Read from the configured pool key.

POOL FEE
0.30%
FEE MODE
STATIC
TICK SPACING
30
BUY FEE
NOT CONFIGURED
SELL FEE
NOT CONFIGURED

FEE FLOW OVER TIME

READING CHAIN…
F(t) = Σ fee captured up to t
CONCEPTUAL — FUEL AVAILABLE AT TIME t
  • F(t)captured fee flow
  • tblock time

PROTOCOL ELEMENTS — NOTATION ONLY

01ETHFUEL
03FEEINPUT
02

CATALYST

A Uniswap v4 Hook is a contract the pool calls at defined moments in its own lifecycle.

Chalk drawing of a catalyst lattice bonded to a hook

THE CATALYST CONTROLS THE REACTION.

WITHOUT A HOOK

SWAP
POOL
RESULT

WITH A HOOK

SWAP
HOOK
CUSTOM LOGIC
POOL
RESULT

WHY THE HOOK?

In Uniswap v4 every pool lives inside a single contract, the PoolManager. A pool key may name a hook address, and when it does, the PoolManager calls that contract at specific points around initialization, liquidity changes, swaps and donations. The hook can read the operation, run its own logic, and — where its permissions allow — return a balance delta that changes what the pool settles.

Which callbacks a hook may use is not a claim it makes; it is encoded in the low bits of its own address, and the PoolManager enforces it. That is why the list below can be read off the address with nothing to trust.

DEPLOYMENT ABI

Event and function names come from the deployment's own ABI.

HOOK ABI NOT CONFIGURED — no event of this deployment can be named or decoded until it is supplied in src/lib/contracts/hookAbi.ts

HOOK CALLBACKS

Decoded from the hook address, per Uniswap v4's Hooks library.

  • beforeInitialize()Runs once, before the pool's first price is set.
  • afterInitialize()not permitted by this hook's address
  • beforeAddLiquidity()not permitted by this hook's address
  • afterAddLiquidity()not permitted by this hook's address
  • beforeRemoveLiquidity()not permitted by this hook's address
  • afterRemoveLiquidity()not permitted by this hook's address
  • beforeSwap()Runs before the pool computes the swap.
  • afterSwap()Runs after the swap, with the resulting balance deltas.
  • beforeDonate()not permitted by this hook's address
  • afterDonate()not permitted by this hook's address

RETURN-DELTA PERMISSIONS

  • beforeSwap → returns deltanot permitted by this hook's address
  • afterSwap → returns deltaPermits afterSwap to take or add an amount of the output currency.
  • afterAddLiquidity → returns deltanot permitted by this hook's address
  • afterRemoveLiquidity → returns deltanot permitted by this hook's address
PERMISSION MASK10000011000100getHookPermissions() NOT EXPOSED

ADDRESSES

HOOK

0xef0Cc29D1d830aeD2d9D43B8fd8fCf4C87AAA0c4VIEW

POOL MANAGER

0x000000000004444c5dc75cB358380D2e3dE08A90VIEW

POOL ID

0xc89f84ff2a731be86fd13b68b12af764e7158eb905e3ced5e4c1cd7e5fa87ddb

keccak256 of the abi-encoded pool key.

POOL KEY

CURRENCY 0
0x00000000…00000000VIEW
CURRENCY 1
0xD6ada2Ea…54aA878BVIEW
FEE
0.30%
TICK SPACING
30

UNISWAP V4 CAPABILITY vs COMBUSTION IMPLEMENTATION

Everything in the callback list is a capability of Uniswap v4. What COMBUSTION does inside those callbacks is defined by its own contract, and this board only describes it from that contract's ABI and the events it emits.

UNISWAP V4 DOCUMENTATION →
03

COMBUSTION

The chamber. Fee in, buyback and burn out, supply down — and every step of it on chain.

REACTION STATUS

STATE
AWAITING CHAIN
FUEL FLOW
READING…
REACTION RATE
READING…
BURN RATE
DATA UNAVAILABLE
SUPPLY
READING…

EXPERIMENT RECORD

EXPERIMENT
EXPERIMENT #001
REACTION
FEE → BURN
ENVIRONMENT
UNISWAP V4
NETWORK
Ethereum
BLOCK
RPC UNAVAILABLE

PROTOCOL ELEMENTS — NOTATION ONLY

01ETHFUEL
02HOOKCATALYST
03FEEINPUT
04BURNCONSUMPTION

COMBUSTION

FEES ARE FUEL.

EVERY FEE FEEDS THE REACTION.

Chalk drawing of the combustion chamber with a flame at its centre

THE REACTION IS ON-CHAIN.

FEE + HOOK → BUYBACK + BURN
CONCEPTUAL REACTION — ANALOGY, NOT CHEMISTRY
BURN → SUPPLY ↓
RESULTING SUPPLY EFFECT

PROTOCOL EQUATION

SWAP
FEE
HOOK
FEE LOGIC
BUYBACK
BURN
SUPPLY ↓

ANALOGY

MECHANISM

FUELFEE
++
CATALYSTHOOK
→→
REACTIONBUYBACK / BURN
→→
PRODUCTSUPPLY CHANGE

CHEMISTRY IS THE METAPHOR.
THE CONTRACT IS THE MECHANISM.

SWAP FLOW

  1. USERsigns a swap
  2. SWAProuted to the v4 singleton
  3. POOL MANAGERopens the lock, reads the pool key
  4. COMBUSTION HOOKinvoked at the callbacks its address permits
  5. FEE LOGICthe hook's own accounting of the fee
  6. BUYBACKas implemented by the deployed contract
  7. BURNsupply removed from circulation
  8. STATE UPDATEbalances settled, deltas cleared

FEE MECHANISM

SWAP
FEE
CAPTURE
BUYBACK
BURN
POOL FEE
0.30%
BUY FEE
NOT CONFIGURED
SELL FEE
NOT CONFIGURED
BURN RATE
NOT CONFIGURED
FEE EVENT
soon

Rates that a deployment does not publish through its pool key or its events are shown as NOT CONFIGURED. None are inferred.

THE BUYBACK

FEE
LIQUIDITY
BUY $COMBUSTION
BURN
TOTAL BUYBACK
READING…
LAST BUYBACK
READING…
AT
—
TRANSACTION
DATA UNAVAILABLE
BUYBACK EVENT
soon

The route a buyback takes is whatever the deployed contract implements. This panel reports the amounts its own events carry and nothing beyond them.

$COMBUSTION

CONTRACT

0xD6ada2Ea3D8f32055831f1bDa831c69a54aA878BVIEW
TOTAL SUPPLY
READING…
CIRCULATING
READING…
BURNED
READING…
WALLET DISCONNECTED
04

BURN

Matter is consumed. Tokens leave circulation by the mechanism the deployment implements, and the chain records it.

Chalk drawing of tokens dissolving into a crucible

MATTER IS CONSUMED.

S(t+1) = S(t) − B(t)
CONCEPTUAL SUPPLY MODEL
  • Stoken supply
  • Bburned amount
  • ΔSchange in supply, ΔS < 0

Removed supply is measured, not asserted. Where a deployment sends tokens to an address nobody controls, the removed amount is that address's balance. Where a deployment destroys tokens outright, the removed amount is the fall in total supply against the baseline the operator configured. This board reads whichever model is declared and says so.

CONSUMED

TOTAL BURNED
READING…
CURRENT SUPPLY
READING…
SUPPLY REMOVED
DATA UNAVAILABLE
LAST BURN
NO BURN EVENTS
LAST BURN AT
—
TRANSACTION
DATA UNAVAILABLE

BURN ACCOUNTING

MODEL
SUPPLY REDUCTION
SINK
0x00000000…00000000VIEW
SINK TYPE
ZERO ADDRESS
SINK BALANCE
READING…
BASELINE SUPPLY
NOT CONFIGURED

BURN PER EVENT

READING CHAIN…

OBSERVED BURNS

Chalk drawing of a molecular chain

WHAT LEAVES DOES NOT COME BACK.

05

AFTERMATH

What the chain says is left once the reaction has run.

RESULTING STATE

CURRENT SUPPLY
READING…
CIRCULATING SUPPLY
READING…
TOTAL BURNED
READING…
BURN EVENTS
DATA UNAVAILABLE
LAST BLOCK
RPC UNAVAILABLE
LAST REACTION
DATA UNAVAILABLE

TOKEN

CONTRACT

0xD6ada2Ea3D8f32055831f1bDa831c69a54aA878BVIEW
NAME
READING…
SYMBOL
READING…
DECIMALS
READING…
ΔS < 0
CONCEPTUAL — SUPPLY ONLY MOVES ONE WAY
  • F(t)captured fee flow
  • B(t)burned supply
  • S(t)token supply
  • B=f(F)burn as a function of fuel

CIRCULATING SUPPLY

RECONSTRUCTED FROM OBSERVED BURNS
READING CHAIN…

THE CURVE ONLY DESCENDS.

RUNNING RECORD

REACTION LOG

READING CHAIN…

REACTION TELEMETRY

STATUS
AWAITING CHAIN
CHAIN
Ethereum · 1
BLOCK
RPC UNAVAILABLE
HOOK
0xef0Cc2…AAA0c4
POOL
0xc89f84ff…a87ddb
FUEL FLOW
READING…
TOTAL BURNED
READING…
SUPPLY
READING…
INDEXER
CONNECTED
LAST UPDATE
—

COMBUSTION

FEES ARE FUEL.

UNISWAP V4 · Ethereum

CONTRACT

0xD6ada2Ea3D8f32055831f1bDa831c69a54aA878BVIEW

HOOK

0xef0Cc29D1d830aeD2d9D43B8fd8fCf4C87AAA0c4VIEW

POOL MANAGER

0x000000000004444c5dc75cB358380D2e3dE08A90VIEW

Everything on this board is read from the configured chain, the deployed contracts and the indexer. Where an answer is not available it is left blank and labelled, never filled in.

COMBUSTION
scroll · drag · ← → to travel the board