One root, cheap per-user verification
A Merkle tree lets a contract commit to an entire list — an allowlist, an airdrop claim table — with a single 32-byte root stored on-chain, while each user proves their own membership with a small proof at claim time instead of the contract storing the whole list upfront.
How it works
Built with OpenZeppelin’s own @openzeppelin/merkle-tree library — the same one their docs recommend pairing with MerkleProof.sol — so the root and proofs generated here are guaranteed to verify correctly against that contract, using the standard double-hashed leaf encoding shown in the verification snippet.