Uniswap V4 Pool Tool
The Uniswap V4 Pool Tool is a tool to quickly encode and decode Uniswap V4 pool IDs. Check out the Live Demo, or the repository on GitHub.

Uniswap History
In Uniswap V3 and V2, each trading pool was an instance of a pool smart contract. So each pool could be uniquely identified by the contracts address. However, this changed in Uniswap V4 with a major design change. In this version, there is only one smart contract, the Position Manager1, which holds all the tokens of any deployed pool.
The Pool ID
Since the contract address cannot be used as an unique identifier anymore, each pool has its own unique ID. The ID is the keccak256 hash of all the properties defining a Uniswap V4 pool. Namely:
currency0andcurrency1(addresses of the tokens in the pool,currency0must always be the smaller of the two)fee(uint24, in bps, for example 3000 = 0.3% fees paid to liquidity providers)tick spacing(int24, the lower and upper tick of the liquidity position must be a multiple of tick spacing)hooks(address, smart contract implementing the IHooks interface, with functions that are executed before/after the pool is used)
These values are then abi encoded as a tuple, and hashed using keccak256. This 32 byte hex value is the unique identifier for a pool on Uniswap V4. For example: 0xdce6394339af009…3e3ae4977f78d is the Ether / USDC pool with a 0.3% fee, tick spacing of 60 and no hook (zero address).

Encoding / Decoding Pool IDs
However, given such a pool ID, how do you find the parameters? And, if you want to check if a pool with specific parameters exist, how can you quickly query it?
When I was working with UniV4, it was a bit of a pain. If you want to decode a pool ID, you need the position manager address for the chain you work with, and the pool ID. To optimize for storage space, the position manager only uses the least significant 25 bytes of the ID. So you first need to truncate it, then you can call the smart contract and retrieve the parameters.
Encoding a pool ID works like described above, packing and hashing the parameters. But then you still need to check if a pool exists with given ID. You could either query the smart contracts again, or you open it on the official Uniswap website.
The Tool
Unfortunately I did not find any tool or service where you can easily do the encoding / decoding. So this is how the Uniswap V4 Pool Tool was born. It is partly vibecoded, and deployed on vercel. Check out the Live Demo. Not surprizingly, like all vibecoded sites, it turned out purple. But other than that, I was surprized by how nice it looked. And, most importantly, it was hepful.