Skip to content

A Uniswap v4 hook on Hedera

The pool that
says no.

A Uniswap v4 hook that refuses two things a pool has never been able to refuse: a buyer who isn’t qualified, and a manager exceeding his mandate.

Try the attack
SCROLL

May 2026

Nothing in the stack could tell a decision from an injection.

In May 2026 an attacker drained roughly $150,000 from an AI-controlled wallet by asking Grok to translate a Morse code message. The decoded text was a transfer instruction. Content filters saw Morse. Spend limits had already been escalated away by an NFT the agent accepted. Nothing in the stack could tell a decision from an injection, because nothing was looking at decisions.

$1.1B

stolen across on-chain AI exploits, H1 2026

3.4×

all of 2025, in six months

$216k

the Bankr injection, single incident

SOURCE · BLOCKAID, H1 2026 · 212 EXPLOITS

Try it

Take the manager. It won’t help you.

MANAGERCOMPROMISED

context received

its reasoning

VALIDATORINDEPENDENT

structured input — it never reads the prompt

verdict

HOOKON-CHAIN

covenant checks

✓ mandate_hash_matches

✓ validator_signature

✓ price_within_band

✗ max_position_pct

Fund balance

$482,150.00

Watch this figure, not the panes. It is the only thing on the page that would have changed.

One hook, two policies

Two things a pool has never been able to refuse.

IdentityNotVerified

  • Refused: a buyer whose wallet is not in the ERC-3643 identity registry.
  • Checked inside beforeSwap, before the pool prices anything at all.
  • A permissionless pool cannot know its counterparty. This one asks.

CovenantBreach("max_position_pct")

  • Refused: the fund's own manager, proposing a position over the ceiling.
  • Evaluated against covenants the manager holds no key to amend.
  • The validator signed nothing, so the hook had nothing to honour.

How

Five steps, and the manager is trusted at none of them.

  1. 1

    Propose

    The manager reads whatever it has been given and proposes a trade. It is assumed compromised, so nothing about this step is trusted — including its reasoning.

  2. 2

    Validate

    An independent validator re-derives the decision from structured inputs it fetches itself. It never reads the prompt, the reasoning, or any text the manager saw.

  3. 3

    Sign

    If the decision survives, the validator signs an EIP-712 receipt over the pool and the parameters. If it does not, there is no signature and nothing to present.

  4. 4

    Enforce

    The hook verifies that signature inside beforeSwap and evaluates the covenants itself. Anything outside the mandate reverts with a named reason.

  5. 5

    Journal

    The outcome is written to Hedera consensus — approvals, refusals and breaches alike — before it is anyone's word against anyone else's.

The stack

Three pieces, each doing one job.

Hederathe register

The identity registry and the journal. Every decision the fund makes is written to a consensus topic before it is anyone's word against anyone's.

Uniswap v4the trustee

The hook is where the refusal happens. Not a wrapper around the pool, not a guard in front of it — inside beforeSwap, where the swap either clears or does not.

Chainlinkthe author

Prices the validator re-derives its decision from, fetched independently. The manager never supplies the numbers it is judged against.

3s

finality, Hedera consensus

$0.0008

per journal entry

296

chain id, Hedera testnet

~35k

gas overhead per swap