DelegusDocsv0.2

Docs/Profile delegus-base-v1

Protocol

Profile delegus-base-v1

Frozen v0.2 copy. This page is kept as it stood on 25 Sep 2026, before v0.3 went live. v0.3 runs in production as release candidate 1; v0.2 stays the normative text until v0.3 is frozen after an external cryptographic review. Current documentation.

The protocol checks, P1 to P20, in the order they run. Every receipt pins this document by its SHA-256 as protocol.profile_hash, so anyone can re-run the same checks and get the same answer.

Exact bytes /profiles/delegus-base-v1 · sha256 23d4ace09635816acf058cf86f0db15dae3ea802fce4ab2e916df0412ac7aa4e · immutable; a change is a new profile with a new name

5.2 Protocol layer — delegus-base-v1 (OPEN)#

Reproducible by anyone given: Grant, Proof, Action, RP DID, a clock, the issuer's DID document snapshot, and the status-list credential snapshot. Each check yields true | false | "skipped".

#CheckDENY reason
P1Grant parses and conforms to §3 (incl. parentGrant absent)GRANT_MALFORMED / UNSUPPORTED_FEATURE
P2kid names a verification method present in the DID document snapshotISSUER_KEY_NOT_FOUND
P3Grant signature verifiesGRANT_SIGNATURE_INVALID
P4now ≥ validFromGRANT_NOT_YET_VALID
P5now < validUntilGRANT_EXPIRED
P6Status credential signed by Delegus; bit at statusListIndex is 0AUTHORITY_REVOKED
P7audience, if present, contains RPAUDIENCE_MISMATCH
P8Proof parses and conforms to §4 (incl. jti format)PROOF_MALFORMED
P9Proof signature verifies against Agent keyPROOF_SIGNATURE_INVALID
P10Proof iss == Grant subPROOF_AGENT_MISMATCH
P11Proof grant == Grant idPROOF_GRANT_MISMATCH
P12Proof aud == RP DIDPROOF_AUDIENCE_MISMATCH
P13iat within windowPROOF_EXPIRED
P14action_hash == hash of submitted ActionPROOF_ACTION_MISMATCH
P15Action valid for its typeACTION_MALFORMED
P16Some Capability matches action.typeACTION_NOT_AUTHORIZED
P17All constraint keys knownUNKNOWN_CONSTRAINT
P18Currency authorizedCURRENCY_NOT_AUTHORIZED
P19amount ≤ maxAmountAMOUNT_EXCEEDS_AUTHORITY
P20resource matches a patternRESOURCE_NOT_AUTHORIZED

The normative text of this table, published at a stable URL, is the profile document; its SHA-256 is protocol.profile_hash in every receipt.