Scanner Decision Matrix¶
Date: 2026-04-12
Purpose: - map verifier and trust outcomes to scanner-visible decisions - give platform and SDK discussions a concrete policy table
Decision Table¶
| Issuer enrolled | Signature valid | Destination bound | Runtime safe | Suggested state | Suggested action |
|---|---|---|---|---|---|
| No | No | Unknown | Unknown | Unverified | Show normalized destination and caution |
| No | Yes | Unknown | Unknown | Signed, unaccepted issuer | Show caution, no trusted badge |
| Yes | Yes | Yes | Yes | Verified issuer | Allow with positive trust signal |
| Yes | Yes | No | Unknown | Destination changed | Strong warning or block |
| Yes | Yes | Yes | No | Verified issuer, destination risky | Caution or block depending on severity |
| Yes | No | Unknown | Unknown | Blocked | Block or high-severity warning |
| Yes | Revoked | Unknown | Unknown | Blocked | Block |
Example Mappings¶
Music teacher flyer¶
- enrolled as verified individual
- QR binds to
music.teacher.example - destination still approved
- no current runtime danger
State:
- Verified individual
Restaurant menu¶
- enrolled as verified business
- QR binds to approved menu host
- host is later compromised
State:
- Verified business, destination risky
Random street poster¶
- no enrollment
- plain URL QR
State:
- Unverified QR
Self-signed ecosystem QR¶
- signature valid
- scanner does not recognize issuer trust root
State:
- Signed, unaccepted issuer
Policy Principle¶
Do not conflate: - lack of trust enrollment with - active maliciousness
Those are different user states and should produce different UX.