# User decrypt flow (checklist)

1. **Collect handles** — from view functions returning **`bytes32`** / events, per contract design.
2. **Build EIP-712 payload** — schema name and fields match **current** `@zama-fhe/sdk` / relayer docs (`UserDecryptRequestVerification` or successor).
3. **`eth_signTypedData_v4`** — user approves in wallet; **chainId** and **verifyingContract** must match deployment.
4. **Complete request** — POST to relayer with signature + **`requestId`**; map cleartext results by handle for UI.

**Do not** shortcut with fake signatures in production. For **local Hardhat**, use template **mock** paths if provided.

Cross-read: **`zama-fhevm-public-decryption`** when the protocol allows **public** cleartext without user key.
