Catenor Protocol
Canonical Decisions — Baseline v0.1
Conceptual source of truth for Catenor Draft v0.1.
All protocol specifications, schemas, tests, documentation, and reference implementations MUST remain consistent with this document unless a decision is explicitly amended.
Status: Review Draft
Protocol: Catenor Protocol
Proposed DID Method: did:catenor
License: Apache License 2.0
0. Precedence
If another Catenor draft conflicts with this baseline:
This baseline takes precedence until the conflicting document is corrected.
Documentation authors and implementation agents MUST NOT silently reinterpret or reopen a frozen decision.
If a frozen decision appears technically inconsistent or incomplete, the correct action is:
identify conflict
↓
stop dependent design work
↓
propose explicit amendment
↓
review
↓
update baseline
↓
continue1. Protocol neutrality
Decision 1 — Catenor is an open protocol
Catenor is structurally independent from any:
company
commercial vendor
wallet provider
identity provider
cloud provider
database provider
blockchain network
confidential-computing provider
settlement systemCore Catenor specifications MUST use vendor-neutral terminology.
Company and vendor names MUST NOT appear in core protocol documents.
External standards bodies and normative technical standards MAY be referenced where required.
Decision 2 — Core purpose
Catenor defines protocol semantics for:
canonical identity
verifiable credentials
verifiable authority
relationships
capabilities
delegation
authority chains
subject continuity
trust admission
policy evaluation
privacy-preserving verification
auditabilityDecision 3 — Core thesis
Wallets are accounts.
Credentials are claims.
Authority is scoped.
Identity persists.2. Canonical Subjects
Decision 4 — First-class Subject types
Draft v0.1 defines:
HUMAN
ORGANIZATION
AGENTAn organizational legal vehicle is modeled as an ORGANIZATION.
An autonomous or semi-autonomous software actor is modeled as an AGENT.
Decision 5 — Agents have their own identity
An Agent MUST have its own canonical Subject identity.
An Agent MUST NOT impersonate or inherit the identity of its principal merely because the principal authorized it.
Authority flows through explicit delegation.
Decision 6 — Assets are not Subjects by default
Assets are resources or objects of authority, ownership, or policy.
Conceptually:
Subject
= who acts
Asset / Resource
= what is acted uponDraft v0.1 MUST NOT assume that an asset is a Catenor Subject.
A future specification MAY define an interoperable asset-identifier model.
3. Catenor DID
Decision 7 — Native DID format
The proposed native identifier is:
did:catenor:<opaque-high-entropy-id>Example:
did:catenor:8f0c92d7e5f04e4096f1...Decision 8 — Implementer identity is not embedded
The method-specific identifier MUST NOT contain:
company name
tenant name
provider name
application name
network nameThe canonical identifier must remain implementation-neutral.
Decision 9 — The DID belongs to the Subject
The canonical DID represents the Subject.
It does not belong to the system that first:
onboarded
verified
authenticated
stored
or executed an action forthe Subject.
Protocol principle:
The Catenor DID belongs to the Subject, not to the system that first encountered the Subject.
Decision 10 — DID generation is independent from PII
The Catenor DID MUST NOT be directly derived from:
name
date of birth
government identifier
passport identifier
email
phone
wallet address
external provider identifierCorrect model:
identity evidence
↓
private subject matching / continuity
NOT
identity evidence
↓
canonical DID generationDecision 11 — New identifiers use high entropy
A new Catenor DID SHOULD be generated using cryptographically secure high-entropy randomness.
The exact encoding and bit length remain an open Draft v0.1 design item.
Decision 12 — No cryptographic reverse to legal identity
A Catenor DID is not:
encrypted PII
hash of PII
encoded legal identityTherefore the DID itself cannot be mathematically reversed into a legal identity.
Legal identity resolution requires authorized access to private identity state.
4. DID Document
Decision 13 — DID Documents are public/resolvable state
A Catenor DID resolves conceptually as:
did:catenor:<id>
↓
DID Resolver
↓
Authoritative DID State
↓
DID DocumentThe persistence technology is not frozen in Draft v0.1.
Decision 14 — DID Documents contain public verification material
A DID Document MAY expose:
canonical DID
verification methods
public verification keys
controllers
verification relationships / purposes
appropriate service endpoints
resolution/deactivation metadataIt MUST NOT expose private identity evidence merely because that evidence relates to the same Subject.
Decision 15 — Verification Method identifiers are DID URLs
Example:
did:catenor:ABC#assertion-key-1This is not another Subject.
It is a DID URL identifying a verification method associated with:
did:catenor:ABCDecision 16 — Controller semantics
A verification method controller identifies the DID authorized to control that verification method.
It does not inherently identify:
a financial account
a database administrator
a legal owner
an execution accountDecision 17 — Assertion Method semantics
A verification method referenced by assertionMethod is authorized to make cryptographic assertions on behalf of the DID.
Credential issuance is an assertion use case.
5. Key-purpose separation
Decision 18 — Security purposes are distinct
Catenor distinguishes at least these conceptual purposes:
Credential Assertion
Authentication
Delegation
Recovery / Rotation
Financial ExecutionThese purposes MUST NOT be treated as semantically interchangeable.
Decision 19 — Credential assertion key and financial execution key are distinct
For the Financial Security Profile:
Credential Assertion Keys and Financial Execution Keys MUST use cryptographically distinct private-key material.
Giving one private key two different labels does not satisfy this requirement.
Decision 20 — Public assertion material must not expose private financial binding
A public credential-verification key MAY appear in the DID Document.
The Subject's financial execution account binding is private by default.
Correct separation:
PUBLIC
did:catenor:ABC
↓
assertion verification method
↓
public verification keyversus:
PRIVATE BY DEFAULT
did:catenor:ABC
↓
financial Account Binding
↓
external execution accountIf an assertion public key permits derivation of an account identifier, that derived account MUST NOT be the Subject's private financial execution account under the Financial Security Profile.
6. Account Bindings
Decision 21 — External accounts are bindings
Accounts are represented as bindings to a canonical Subject.
Examples include:
blockchain account
authentication account
application account
agent execution account
financial account reference
external DIDDecision 22 — Account Binding does not redefine identity
account != canonical SubjectA Subject MAY have multiple accounts simultaneously or over time.
Decision 23 — Account Bindings are private by default
The relationship:
did:catenor:ABC
↔
external accountis private by default.
The external account itself may be public in its native execution environment.
What Catenor protects by default is the correlation between that account and the canonical Subject.
Decision 24 — Account-control proof does not require public correlation
An implementation MAY prove control using a challenge-response flow:
random challenge
↓
external account signs
↓
signature verified
↓
binding establishedA policy MAY consume a minimized result such as:
ACCOUNT_CONTROL_VALID = truewithout requiring the complete binding to become public.
7. External Identifiers
Decision 25 — Other DID methods may be linked
A Catenor Subject MAY bind to an identifier from another DID method.
That identifier is an external binding or representation.
Within a native Catenor trust domain:
did:catenor:<id>remains the canonical Catenor Subject identifier.
8. Identity Verification Providers
Decision 26 — Provider abstraction
Catenor MUST NOT depend on one identity-verification provider.
The protocol defines an abstract role:
Identity Verification ProviderProvider-specific evidence is normalized before being consumed by Catenor semantics.
Decision 27 — Provider identifier != Catenor DID
An external provider identifier is a private reference.
It MUST NOT become the canonical Catenor DID.
9. Canonical Subject Registry
Decision 28 — Private provider mapping
Implementations may maintain private mappings such as:
did:catenor:ABC
│
├── provider reference A
├── provider reference B
├── authentication reference
└── private account bindingsThis is private operational state.
The core protocol does not mandate its storage technology.
10. Subject Continuity
Decision 29 — Subject Continuity is core
Subject Continuity answers:
Does newly presented evidence correspond to a canonical Subject that already exists?
Conceptual flow:
new evidence
↓
normalization
↓
private continuity evaluation
↓
same Subject?
/ \
YES NO
↓ ↓
existing DID create new DIDDecision 30 — Continuity is provider-independent
Continuity MAY span changes in:
wallet/account
identity-verification provider
authentication provider
network
application
key materialDecision 31 — Continuity inputs remain private
Identity evidence used for continuity SHOULD remain private.
A minimized result MAY be:
SAME_SUBJECT = trueDecision 32 — Continuity does not reconstruct the DID
Evidence is used to locate or establish the existing canonical Subject.
It is not used to algorithmically recreate the DID.
11. Verifiable Credentials
Decision 33 — Credential is a claim object
A Verifiable Credential is a cryptographically protected claim.
Issuer
↓ signs
Credential
↓ describes
SubjectThe Issuer is a Subject.
The Credential is not an Issuer.
Decision 34 — Sensitive full credentials are private by default
Sensitive full credentials SHOULD be stored privately and encrypted at rest.
The conceptual storage role is:
Credential VaultDecision 35 — Signature proves authorship and integrity
A valid signature proves:
the protected content has not been altered
+
the corresponding private key produced the signatureIt does NOT prove:
the factual truth of the claim
the issuer is trusted
the issuer had authority
the credential remains active
the claim fits the requested scope12. Verifiable Presentations
Decision 36 — Presentation is contextual
VC
= reusable credential
VP
= contextual minimum proof packageCatenor SHOULD favor data minimization and selective disclosure where technically available.
13. Credential Status
Decision 37 — Signature validity != lifecycle validity
A credential may have:
valid cryptographic signature
+
REVOKED lifecycle stateSuch a credential MUST NOT authorize a current action.
Decision 38 — Revocation preserves history
Revoking a credential does not erase its historical existence.
Historical profiles SHOULD support verification of the period during which the credential was active.
14. Issuers
Decision 39 — Issuer is a Subject with authority
Any Catenor Subject type MAY act as an Issuer when a valid authority chain grants the applicable credential-issuance capability.
Catenor does not define one global hardcoded Issuer list.
Decision 40 — Issuer authority is scoped
Issuer authority conceptually includes:
action
credential type
scope
constraints
validity
delegabilityExample:
ISSUE_CREDENTIAL
type: CredentialTypeA
scope: DomainADecision 41 — Issuer authority may be represented by a VC
Authorization to act as an Issuer MAY be represented through a Verifiable Credential or equivalent verifiable authority object.
The exact authority-credential schema remains to be frozen.
Decision 42 — Issuer authorization may be hierarchical
Issuer authority may flow through multiple authorized Subjects.
Example:
Trust Anchor
↓
Subject A
↓
Subject B
↓
issues Credential Type XEvery edge MUST be valid.
Decision 43 — ISSUE_CREDENTIAL != AUTHORIZE_ISSUER
These are distinct capabilities:
ISSUE_CREDENTIAL
AUTHORIZE_ISSUERA Subject allowed to issue a credential MUST NOT automatically be allowed to authorize another Issuer.
Decision 44 — Issuer delegation is bounded
delegated issuer authority
⊆
delegator issuer authorityDelegability MUST be explicit.
15. Relationships
Decision 45 — Relationship describes connection
Canonical form:
subject
predicate
objectExample:
Human A
OFFICER_OF
Organization BA relationship does not inherently grant action permission.
16. Capabilities
Decision 46 — Capability describes permission
A Capability answers:
who
may perform which action
on which resource
under which constraintsConceptual fields:
subject
action
resource
constraints
validity
delegabilityDecision 47 — Relationship != Capability
A relationship such as:
OFFICER_OFdoes not automatically imply capabilities such as:
MOVE_FUNDS
ISSUE_CREDENTIAL
AUTHORIZE_ISSUER
CREATE_DISTRIBUTION17. Delegation
Decision 48 — Delegation cannot increase authority
Fundamental invariant:
delegated authority
⊆
delegator authorityDecision 49 — Delegability is explicit
Holding a capability does not automatically imply authority to delegate it.
Delegability MUST be represented explicitly.
Decision 50 — Delegation may be constrained
Constraints MAY include:
resource
credential type
jurisdiction
time
amount
function
execution target
delegation depth18. Authority Chains
Decision 51 — Authority is chain-verifiable
A security-relevant action may require verification of:
Trust Anchor
↓
authority grant
↓
delegator
↓
delegate
↓
requested actionThe final Subject's signature alone is insufficient.
Decision 52 — Every relevant authority edge must be valid
Verification may require:
credential/proof validity
issuer identity resolution
issuer authority
credential status
scope
delegation permission
time validity
resource constraints
policy compatibility19. Trust Anchors
Decision 53 — Trust Anchor begins a Trust Domain
A Trust Anchor is an accepted root of authority within a specific Trust Domain.
Catenor does not claim that cryptography alone creates initial trust.
Decision 54 — Infrastructure control != Trust Anchor authority
A Subject MUST NOT become a Trust Anchor merely because it:
deployed software
operates infrastructure
controls a database
controls a domain20. Trust Anchor Admission
Decision 55 — Initial authority uses Admission
Conceptual process:
Candidate Trust Anchor
↓
External Evidence
↓
Admission Policy
↓
Verification
↓
Proof of Key Possession
↓
Admission Record
↓
Active Trust AnchorDecision 56 — Admission is not self-asserted trust
This is insufficient:
"I am trusted because I signed a statement saying I am trusted."Trust Anchor Admission instead combines:
external evidence
admission policy
verification
proof of key possession
configured governance/trust21. Trust Domains
Decision 57 — Trust is contextual
Catenor does not define one universal Issuer whitelist.
Different Trust Domains MAY accept different:
Trust Anchors
Issuers
credential types
evidence sources
policies22. Policy
Decision 58 — Policy consumes verified facts
A policy evaluates verified claims, authority, context, and constraints.
Security-critical policy decisions MUST NOT treat unsigned mutable application state as equivalent to verified evidence.
23. Decisions
Decision 59 — Minimum decision outcomes
At minimum:
ALLOW
DENYOptional states MAY include:
INDETERMINATE
REQUIRES_REVIEW
ERRORThese MUST NOT silently become ALLOW.
Decision 60 — Policy Decision != execution authorization
Catenor determines whether an action is permitted under protocol identity, authority, and policy semantics.
A separate execution system determines whether a specific key/account may technically execute an operation.
Both layers may be required.
24. Confidential Verification
Decision 61 — Confidential Verification Environment
Catenor defines the abstraction:
Confidential Verification Environment (CVE)A CVE evaluates sensitive inputs while limiting unnecessary disclosure.
Decision 62 — Sensitive evidence should not be forced public
Sensitive identity, credential, authority, relationship, or policy evidence SHOULD be evaluated privately when public evaluation would reveal unnecessary information.
Decision 63 — CVE is technology-neutral
A conforming CVE MAY use technical mechanisms such as:
Trusted Execution Environment
Multi-Party Computation
Zero-Knowledge proof systems
hardware-backed isolation
hybrid confidential computationThe protocol defines required properties, not one implementation vendor.
Decision 64 — Confidential computing is contextual
Not every operation requires a CVE.
Example:
verification of a public signature over public data
→ may occur publiclySensitive evidence evaluation may require confidentiality.
Decision 65 — Data-minimization principle
Private evidence in. Minimum necessary verifiable fact out.
Example:
private input:
exact date of birth
minimized output:
AGE_OVER_THRESHOLD = true25. Storage
Decision 66 — Storage is implementation-independent
The core protocol does not mandate a specific:
relational database
object store
distributed database
blockchain registry
verifiable database
cloud platformDecision 67 — Operational database is an index
Conceptual separation:
Operational Database
= locate and query
Signed Credential
= prove authorship and integrity
Authority Chain
= prove authority
Status Layer
= prove lifecycle validityA database row alone is not sufficient authority proof.
26. Credential Vault
Decision 68 — Full credentials live in a Credential Vault role
Sensitive full signed credentials SHOULD be stored in a private encrypted credential-storage layer.
Catenor calls the conceptual role:
Credential VaultThe protocol does not mandate a storage product.
27. Identity Vault
Decision 69 — Private identity material is separate from DID state
A private Identity Vault may store or reference:
PII
identity-verification evidence
provider references
legal identity evidence
authorized-disclosure metadataThis is distinct from the public DID Resolution Layer.
28. Public vs private baseline
Decision 70 — Default visibility
| Information | Default visibility | Conceptual location |
|---|---|---|
did:catenor:<id> | Public / resolvable | DID Resolution Layer |
| DID Document | Public / resolvable | DID Resolution Layer |
| Assertion public key | Public | DID Document |
| Authentication public verification material | Public when represented as DID verification state | DID Document |
| Recovery public material | Profile-dependent | Recovery / DID state |
| Credential-signing private key | Private | Secure Key Management |
| Financial-execution private key | Private | Secure Key Management |
| DID ↔ financial account binding | Private by default | Private Account Binding Registry |
| Public execution account identifier | Depends on external environment | External execution environment |
| Full sensitive VC | Private by default | Credential Vault |
| Credential status | Public or selectively resolvable, profile-dependent | Status Layer |
| PII | Private | Identity Vault |
| Provider reference | Private | Canonical Subject Registry |
| Relationship | Private by default unless policy requires disclosure | Credential / Authority state |
| Capability | Private by default unless policy requires disclosure | Credential / Authority state |
| Delegation | Private by default unless policy requires disclosure | Credential / Authority state |
| Policy definition | Trust-domain dependent | Policy Layer |
| Policy decision | Minimum necessary disclosure | Decision Layer |
| Audit commitment | May be public | Audit / Commitment Layer |
| Full audit details | Private / role-controlled | Audit Layer |
29. Secure Key Management
Decision 71 — Private keys are not operational database fields
Private keys MUST NOT be stored as general-purpose application database fields.
Implementations SHOULD use a Secure Key Management System appropriate to their threat model.
Possible technical classes include:
hardware security modules
multi-party key management
secure enclave key services
hardware signing devices
specialized signing infrastructure30. Audit Event Log
Decision 72 — Security lifecycle events are append-oriented
Initial conceptual events include:
SUBJECT_CREATED
ACCOUNT_BOUND
ACCOUNT_REVOKED
KEY_ADDED
KEY_REVOKED
CREDENTIAL_ISSUED
CREDENTIAL_REVOKED
CAPABILITY_GRANTED
CAPABILITY_REVOKED
DELEGATION_CREATED
DELEGATION_REVOKED
POLICY_EVALUATED
TRUST_ANCHOR_ADMITTED
IDENTITY_DISCLOSEDPersistence and anchoring remain open design items.
31. Historical Verification
Decision 73 — Historical state can be security-relevant
Historical profiles SHOULD support questions such as:
Was key K active at time T?
Was credential C active at time T?
Was Issuer I authorized at time T?
Was delegation D valid at time T?
Which policy version applied at time T?32. Recovery and Rotation
Decision 74 — Key rotation preserves canonical identity
Example:
did:catenor:ABC
│
├── old verification method → revoked
└── new verification method → activeThe Subject remains:
did:catenor:ABC33. W3C foundations
Decision 75 — Catenor builds on open W3C standards
Catenor builds on:
W3C DID Core
W3C Verifiable Credentials Data Model
W3C Verifiable Presentation semantics
W3C Data IntegrityCatenor does not replace these standards.
It adds protocol semantics for:
canonical subjects
subject continuity
account bindings
issuer authority
relationships
capabilities
delegation
authority chains
trust-anchor admission
policy evaluation
confidential-verification requirements34. Reference implementations
Decision 76 — Reference implementations do not define the protocol
A reference implementation MAY select concrete technologies for:
identity verification
secure key management
confidential computation
operational storage
credential storage
execution
settlementThose selections MUST NOT be copied into core normative protocol requirements solely because they appear in a reference implementation.
35. Open design items
The following are explicitly not frozen.
Documentation and implementation agents MUST NOT silently invent canonical answers for them.
Open A — Method-specific identifier encoding
Frozen:
did:catenor:<opaque-high-entropy-id>Open:
exact bit length
exact encoding
exact generation formatOpen B — Authoritative DID persistence and resolution
Open:
authoritative state architecture
persistence mechanism
distributed/shared-state requirements
historical resolution mechanismOpen C — Cryptographic Profile
Open:
key types
signature algorithms
hash algorithms
canonicalization
proof suites
challenge/nonce formatOpen D — Credential Status mechanism
Status and revocation semantics are frozen.
The exact technical mechanism is not.
Open E — Subject Continuity algorithm
Semantics are frozen.
Open:
matching algorithm
provider normalization rules
confidence model
false-positive handling
false-negative handling
manual-review thresholdsOpen F — Account Binding proof schema
Control proof semantics are frozen.
The final credential/proof representation is not.
Open G — Capability vocabulary
The model is frozen.
The canonical initial vocabulary is not.
Open H — Delegation representation
Delegation semantics are frozen.
The final wire representation is not.
Open I — Trust Anchor Admission profiles
Admission semantics are frozen.
No universal admission policy is frozen.
Open J — Public/shared anchoring
Open:
whether DID state must be externally anchored
whether status must be externally anchored
whether audit commitments must be externally anchored
whether policy/admission hashes must be externally anchoredOpen K — Policy language
Policy semantics are frozen.
The language/DSL/schema and execution engine are open.
Open L — Audit persistence model
Audit semantics are frozen.
Persistence technology is open.
36. Canonical architecture summary
<mermaid-placeholder index="0" />37. Public/private architecture summary
PUBLIC / RESOLVABLE
────────────────────────────────
did:catenor
DID Document
public verification methods
public status material where applicable
PRIVATE BY DEFAULT
────────────────────────────────
PII
provider references
full sensitive credentials
DID ↔ financial-account bindings
private relationships
private capabilities
private delegations
private evidence
private policy inputs
SECURE KEY MANAGEMENT
────────────────────────────────
credential-signing private keys
authentication private keys
delegation private keys
financial-execution private keys
recovery secrets / private keys38. Final baseline statement
A Catenor Subject has one canonical protocol identity independent of its accounts, providers, and execution environments. Public verification material allows cryptographic claims to be verified without exposing private financial-account bindings. Credentials establish signed claims; authority chains establish whether issuers and delegators had the right to make them. Relationships describe connections, capabilities describe powers, and delegation transfers only bounded authority. Sensitive evidence remains private and is evaluated confidentially when necessary. Trust begins at explicitly admitted Trust Anchors, not at whoever operates the software.