Approval tokens
When CODEGUARD asks a person and they approve, CAIN issues an approval token for that exact action.
- Bound: it covers one action hash; another command or another workspace is refused.
- Short-lived: 10 minutes by default.
- Typed (since 2026-11-02):
typ = cain42.codeguard.approval.v2. Receipts, Black Box seals and SurfGuard tokens are signed with the same key family and are refused as approvals by type, not by luck. - Single use (since 2026-11-02): the first use turns REQUIRE_APPROVAL into ALLOW and spends the token; a second
attempt asks the person again (
approval_token_reused). A token is spent only when it is what allows the action, never on a command that was allowed anyway or denied anyway. - A forged or altered token is a CRITICAL finding: DENY.
FIRME AI CORPORATION · CAIN-42 is a Byzantine trust fabric. Numbers marked "our own check" were run by us, not by an independent party. Nothing on these pages is a certification.