[ 03 ] Specification

Authority model

Permission in VACT-P flows downward through a chain of signed authority. A chain can only ever narrow — a verifier computes effective authority as the intersection of every element in it, and anything that can't be represented safely fails closed.

Mandates

A Mandate is the root authorization issued by a principal — human, organizational, or hybrid — to an agent. It must include:

  • Issuer and subject agent
  • Granted actions and resource constraints
  • Validity interval and delegation depth
  • Budgets and approval rules
  • Proof

A Mandate should include a human-readable purpose.

Delegations

A Delegation transfers a subset of effective authority from one authorized actor to another. It must reference its parent, identify issuer and subject, decrement remaining delegation depth, expire no later than its parent, and be signed by the issuer.

Invariant

A Delegation must never add an action absent from the parent, broaden a resource selector, extend time, increase a budget, weaken an approval requirement, reduce data-protection requirements, or permit further delegation the parent forbids.

Effective-authority algorithm

A verifier computes effective authority as the intersection of every element in the Authority Chain:

effective_actions      = intersection(all action sets)
effective_resources    = intersection(all resource selectors)
effective_expiry       = minimum(all expiries)
effective_money_budget = minimum(all remaining money ceilings)
effective_compute      = minimum(all remaining compute ceilings)
effective_approval     = strongest(all approval requirements)
effective_data_policy  = most restrictive(all data policies)
effective_delegation   = minimum(all remaining delegation depths)

If an intersection cannot be represented safely, verification must fail closed.

The authorization decision

Before any protected action, the executing agent evaluates twelve checks, in order, and records the result as allow, deny, or indeterminate:

#Check
01Signature validity
02Identity status
03Authority-chain continuity
04Revocation status
05Action permission
06Resource permission
07Purpose compatibility
08Policy compatibility
09Budget availability
10Approval satisfaction
11Contract status
12Runtime-attestation requirements
Fail closed

indeterminate is treated as deny for material actions — a policy engine that can't answer confidently never defaults to allow.

Policy semantics

Policies should be content-addressed: a reference carries a digest, policy language, issuer, effective version, and retrieval location. VACT-P Core combines policy decisions with deny-overrides — any applicable deny wins, an allow requires every mandatory engine to agree, and a missing or unrecognized mandatory policy is indeterminate.

Data-policy constraints may cover classification, permitted purpose, geography, storage destination, retention, training use, human access, derivative use, disclosure recipients, and deletion verification. A provider must reject a contract whose data policy it cannot enforce.

Revocation

VACT-P defines revocation for passports, keys, credentials, mandates, delegations, offers, contracts, leases, and settlement authorizations. A revocation object identifies the revoked object, the revoker, the revoker's authority, an effective time, and a reason code.

Priority

Revocation control messages receive higher processing priority than ordinary work. Queued work must revalidate authority immediately before each material action — not only when the task was first accepted.