@semaphore:verify
Check a Semaphore membership proof against a group with the contract's view verifier: no transaction and no nullifier recording.
On-chain (@semaphore:verify!): The proof and group id are taken as constants; validity is judged against the group's state when the assertion runs, so a root rotation flips the answer.
⚗️ Experimental — available at next.evmcrispr.com.
Returns: bool
Syntax
Section titled “Syntax”@semaphore:verify(proof group)Arguments
Section titled “Arguments”| Name | Type | Description |
|---|---|---|
proof | string | Proof JSON from semaphore:prove |
group | number | Group id |
On-chain face (@semaphore:verify!)
Section titled “On-chain face (@semaphore:verify!)”The proof JSON and group id are taken as composition-time constants — the
proof tuple is all value types, so the whole verification is one flat
literal staticcall to the singleton's view verifyProof. What the face
buys over the plain one is WHEN it answers: validity is judged against the
group's state at assertion time, so a root rotation between composition
and judgement flips the answer. A group that does not exist reverts the
judge on both faces.
See Also
Section titled “See Also”- semaphore:validate — the transactional counterpart