vyt) is proof, not a verdict; it exchanges for 30 minutes, secret key only. Do it inside the handler that performs the gated action so the proof and the action never exist apart.
- With the token
- Without a token
The token-free read needs a credential to match on. An anonymous
verification binds none, so it answers
404 no_settled_pass every time. On
those checks the vyt is your only route to the verdict. See
Anonymous checks.verified: true | false. Pass or fail is your decision, and routing lives in your code, next to the action.
- Gate on
verified.vycin the URL is a UI hint. - Fail closed on
404or410from the token exchange, or a timeout: start a fresh session and try again. - A
404from the token-free lookup isn’t a broken session, just no confirmed pass yet — don’t retry it in a loop. If the account reached its daily verification limit, retries keep failing until it resets. - Test keys read test runs only. Never point a live action at a test key.
- Consume each token once. Prefer your own idempotency over lock unless you mean one pass per human, ever.
- Strip
vytandvycfrom the URL after handoff.
GET /v3/confirmations/{token}.