# Proof Verification - Verifier

This command is used **after you have already generated a proof** for your circuit. It verifies whether the proof is valid based on the logic and constraints defined in your `.circom` circuit.

```
py poseidon.py --verify
```

**What it does:**

* Takes the following 3 files as input:

  * `verification_key.json`: A public key generated during the trusted setup. It contains information about your compiled circuit's constraints.
  * `public.json`: The public inputs that were used when the proof was generated.
  * `proof.json`: The actual zk-proof generated by the prover.

  If the proof satisfies all constraints, verification will **succeed**, confirming that the prover knows valid private inputs **without revealing them**.

***

## Sample Output

```
[*] Proof verification started...make sure to modify proof.json
[INFO]  snarkJS: OK!
[+] Proof verification successfull
```
