# Uniswap v4 hooks: custom pool behavior and extra dependencies

A Uniswap v4 hook is an optional external contract that customizes a pool at specified operation boundaries, such as before or after a swap or liquidity change. The hook address forms part of the pool’s identity. Its code and permissions can change the experience and risks of that particular pool, so the v4 label alone does not describe the complete behavior.

Evidence: [Uniswap v4 Hooks](https://docs.uniswap.org/contracts/v4/concepts/hooks)

Canonical: https://degreesofsatoshi.com/encyclopedia/uniswap-v4-hooks/
Published: 2026-10-02
Substantively modified: 2026-10-02
Independently verified by an automated reviewer: 2026-10-02T18:19:48.887Z
Data current through: 2026-10-02

AI-assisted research and drafting with a separate automated source-verification pass; no external expert or named human review is implied.

## Key facts

- **Optional:** A v4 pool can operate without an attached hook. ([Uniswap v4 Hooks](https://docs.uniswap.org/contracts/v4/concepts/hooks))
- **Permissions:** Hook address bits identify which callbacks the PoolManager invokes. ([Uniswap v4 Hooks](https://docs.uniswap.org/contracts/v4/concepts/hooks))
- **Pool identity:** A pool’s hook is specified at creation and cannot simply be replaced in that pool’s key. ([Uniswap v4 Hooks](https://docs.uniswap.org/contracts/v4/concepts/hooks))

## Custom logic runs at defined points

The documented callbacks cover initialization, adding or removing liquidity, swaps and donations. A developer selects the callbacks the contract implements; a hook need not implement all of them.

For example, a hypothetical hook could check eligibility before adding liquidity. A wallet holding the right tokens would still need to satisfy that pool’s additional rule.

Evidence: [Uniswap v4 Hooks](https://docs.uniswap.org/contracts/v4/concepts/hooks)

## The same token pair can have different behavior

Two pools for the same assets can use different hooks. One might apply custom fee logic, while another uses no hook. Comparing only the asset symbols would miss that distinction.

Record the pool key and hook address when assessing a route. The documentation states that changing the attached hook requires a different pool, although the attached contract’s own code and administrative design still need inspection.

Evidence: [Uniswap v4 Hooks](https://docs.uniswap.org/contracts/v4/concepts/hooks)

## Core mechanics do not establish every hook’s properties

Hook permissions tell you which execution points are enabled, not whether the custom logic is sound. Inspect restrictions, balance adjustments, external dependencies and any authority within the hook’s design.

A hook can introduce useful behavior, but its presence does not guarantee routing, liquidity or better returns. Evaluate the actual pool that will receive the transaction.

Evidence: [Uniswap v4 Hooks](https://docs.uniswap.org/contracts/v4/concepts/hooks)

## Questions

### Can someone add a hook to a pool that already has none?

The documented v4 design fixes the hook in the PoolKey at initialization. Adding or replacing that attachment requires creating a different pool with the desired key.

Evidence: [Uniswap v4 Hooks](https://docs.uniswap.org/contracts/v4/concepts/hooks)

## Claims and scope

### uniswap-v4-hooks-quick-answer

A Uniswap v4 hook is an optional external contract that customizes a pool at specified operation boundaries, such as before or after a swap or liquidity change. The hook address forms part of the pool’s identity. Its code and permissions can change the experience and risks of that particular pool, so the v4 label alone does not describe the complete behavior.

Scope: {"collection":"defi","dataAsOf":"2026-10-02","blockHeight":null}

### uniswap-v4-hooks-fact-optional

Optional: A v4 pool can operate without an attached hook.

Scope: {"collection":"defi","dataAsOf":"2026-10-02","blockHeight":null}

### uniswap-v4-hooks-fact-permissions

Permissions: Hook address bits identify which callbacks the PoolManager invokes.

Scope: {"collection":"defi","dataAsOf":"2026-10-02","blockHeight":null}

### uniswap-v4-hooks-fact-pool-identity

Pool identity: A pool’s hook is specified at creation and cannot simply be replaced in that pool’s key.

Scope: {"collection":"defi","dataAsOf":"2026-10-02","blockHeight":null}

## Sources

- [Uniswap v4 Hooks](https://docs.uniswap.org/contracts/v4/concepts/hooks) — Uniswap. Hooks execute custom logic at pool operation boundaries. Locator: Core Hook Functions; Hook lifecycle. Retrieved: 2026-10-02T17:03:45.793Z.

## Revision history

- 2026-10-02: First publication after primary-source research and independent automated verification.

## Cite this entry

Degrees of Satoshi editorial project. “Uniswap v4 hooks: custom pool behavior and extra dependencies.” Published 2026-10-02; updated 2026-10-02. https://degreesofsatoshi.com/encyclopedia/uniswap-v4-hooks/
