Authproof gives every agent action a cryptographic receipt that existed before execution started. Not reconstructed from logs. Not the operator's word against yours. Proof you can check after the fact. An audit and attribution layer for honest deployments: it proves what the user authorized before the agent acted. It does not stop a dishonest operator from refusing to run the gate.
# JavaScript npm install authproof # Python pip install authproof-py
Want managed infrastructure? cloud.authproof.dev â free tier available.
Read the white paper âRight now there is no cryptographic record of what you actually told your agent to do. The company running it can say anything.
An operator can substitute a modified model after authorization. Model-state attestation (an optional gate check) detects the drift and blocks the action, and the mismatch is recorded in the audit log.
Logs can be written after the incident. A Delegation Receipt exists before the first action. That is not the same thing.
Bind receipts to enclave measurements on TDX and Nitro hosts. The measurements are software-computed and self-attested by default, not hardware-signed quotes. Real hardware guarantees require real TEE hardware.
Adaptive risk-aware authorization. Trust decay, sensitivity classification, real-time threat scoring.
Noise vs signal scoring. Threshold recalibration. Approval fatigue detection.
Thirteen verification checks (slots 1–11, 14, 15). Every one must pass before execution proceeds. Scope defined from observed behavior, not guesswork.
Three scenarios. Watch the decision happen in real time.
One client. One receipt. Every subsequent action is locked to it.
import { AuthProofClient, ScopeSchema } from 'authproof' const receipt = await client.delegate({ scope: new ScopeSchema({ allowedActions: [{ operation: 'read', resource: 'email' }], deniedActions: [{ operation: 'delete', resource: '*' }] }), operatorInstructions: 'Summarize inbox only', expiresIn: '2h' }) // Actions routed through the gate cannot exceed this receipt // The signed receipt wins over operator log metadata // Model substitution is detectable with model-state attestation wired in
I am Ryan Nelson. HVAC technician at Arctic Air. Accounting student at Oklahoma State University. Father of a daughter turning three in June.
I spent the last month building Authproof because the PocketOS incident showed what happens when AI agents act without cryptographic proof of what they were authorized to do. Nobody else was solving this at the protocol layer.
IETF Internet-Draft filed April 2026. 1,392 JS tests + 36 Python tests, all green. MIT licensed.
Full time job. Full time school. Built it anyway.