Loading vLEI.wiki
Fetching knowledge base...
Fetching knowledge base...
This comprehensive explanation has been generated from 99 GitHub source documents. All source documents are searchable here.
Last updated: October 7, 2025
This content is meant to be consumed by AI agents via MCP. Click here to get the MCP configuration.
Note: In rare cases it may contain LLM hallucinations.
For authoritative documentation, please consult the official GLEIF vLEI trainings and the ToIP Glossary.
A delegated identifier is a KERI [AID](/concept/aid) whose control authority is cryptographically delegated from another identifier (the delegator), requiring cooperative participation from both delegator and delegate through mutual cryptographic commitments in their respective [KELs](/concept/kel), enabling hierarchical trust structures with built-in compromise recovery.
A delegated identifier represents a fundamental primitive in KERI's composable identifier architecture that enables hierarchical trust relationships through cryptographic delegation. Unlike basic transferable identifiers or non-transferable identifiers, delegated identifiers establish a parent-child relationship where the delegator (parent identifier) grants authority to the delegate (child identifier) through a cooperative cryptographic protocol.
The delegation relationship is established through cooperative delegation, a novel mechanism requiring active participation from both parties:
A delegated identifier consists of several key structural elements:
Delegated Inception Event (dip): The initial establishment event that creates the delegated identifier contains:
v, t, d, i, s, kt, k, nt, n, bt, b, c, a)di field: Contains the delegator's AID prefix, establishing the delegation relationshipDelegator Anchoring Event: The delegator's KEL contains an event (rotation or interaction) with:
i), sequence number (s), and digest (d) of the delegated inception eventSelf-Addressing Binding: The delegate's AID prefix is a SAID (Self-Addressing Identifier) derived from its delegated inception event. This SAID includes the di field containing the delegator's AID, creating an immutable cryptographic link between the two identities that cannot be altered without changing the delegate's identifier itself.
Delegated identifiers enable recursive delegation, where delegates can themselves become delegators for their own delegates, forming arbitrarily complex trees of hierarchical key management event streams. This recursive capability provides:
The delegated inception event follows the standard KERI event format with critical additions:
{
"v": "KERI10JSON00012b_",
"t": "dip",
"d": "ELI7pg979AdhmvrjDeam2eAO2SR5niCgnjAJXJHtJose",
"i": "ELI7pg979AdhmvrjDeam2eAO2SR5niCgnjAJXJHtJose",
"s": "0",
"kt": "1",
"k": ["DAbWjobbaLqRB94KiAutAHb_qzPpOHm3LURA_ksxetVc"],
"nt": "1",
"n": ["EIFG_uqfr1yN560LoHYHfvPAhxQ5sN6xZZT_E3h7d2tL"],
"bt": "2",
"b": ["BJq7UABlttINuWJh1Xl2lkqZG4NTdUdqnbFJDa6ZyxCC", "BDg1zxxf8u4Hx5IPraZzmStfSCZFZbDzMHjqVcFW5OfP"],
"c": [],
"a": [],
"di": "EABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr"
}
Field Definitions:
di (Delegator Identifier): The AID prefix of the delegating identifier, establishing the delegation relationshipt (Type): Set to "dip" (delegated inception) to distinguish from standard inception ("icp")i (Identifier): The delegate's self-addressing identifier, derived from the entire event including the di fieldd (Digest): SAID of the event, matching i for self-addressing identifiersThe delegator's KEL contains an anchoring event with a seal referencing the delegated inception:
{
"v": "KERI10JSON000160_",
"t": "ixn",
"d": "EXAMPLEdigestOfThisInteractionEvent123456789ABC",
"i": "EABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr",
"s": "3",
"p": "EPreviousEventDigest123456789ABCDEFGHIJKLMNOPQRst",
"a": [
{
"i": "ELI7pg979AdhmvrjDeam2eAO2SR5niCgnjAJXJHtJose",
"s": "0",
"d": "ELI7pg979AdhmvrjDeam2eAO2SR5niCgnjAJXJHtJose"
}
]
}
Seal Components:
i: Delegate's AID prefixs: Sequence number of the delegated event ("0" for inception)d: Digest of the delegated eventDelegated identifiers use CESR (Composable Event Streaming Representation) encoding:
Cryptographic Strength: Minimum 128 bits of entropy for key generation, as mandated by vLEI governance frameworks
Identifier Length: Variable based on derivation code and cryptographic algorithm:
Event Size: Delegated inception events are typically 300-500 bytes in JSON serialization, varying based on:
k array)n array)b array)c array)The delegator must first establish its own identifier and reach a stable key state. The delegator then prepares to authorize delegation by:
The delegate creates its delegated inception event:
di field set to delegator's AIDk arrayn arrayb arrayThe delegation becomes effective when:
Delegated identifiers support key rotation through delegated rotation events (drt), which require cooperative participation:
Delegate Rotation Event:
{
"v": "KERI10JSON000160_",
"t": "drt",
"d": "ERotationEventDigest123456789ABCDEFGHIJKLMNOPQRst",
"i": "ELI7pg979AdhmvrjDeam2eAO2SR5niCgnjAJXJHtJose",
"s": "1",
"p": "ELI7pg979AdhmvrjDeam2eAO2SR5niCgnjAJXJHtJose",
"kt": "1",
"k": ["DNewCurrentKey123456789ABCDEFGHIJKLMNOPQRstuvwx"],
"nt": "1",
"n": ["ENewNextKeyDigest123456789ABCDEFGHIJKLMNOPQRstuv"],
"bt": "2",
"br": [],
"ba": [],
"a": []
}
Delegator Approval: The delegator must issue an anchoring event (rotation or interaction) containing a seal referencing the delegated rotation event, following the same cooperative pattern as inception.
A critical feature of delegated identifiers is superseding recovery, where the delegator can recover from delegate key compromise:
Delegation can be revoked through:
Explicit Revocation: The delegator issues an interaction event with a seal indicating revocation of the delegation
Implicit Revocation: The delegator rotates keys without re-authorizing the delegation in the new key state
Validators verify delegated identifiers through a multi-step process:
Step 1: Delegate KEL Verification
di field from inception eventStep 2: Delegator KEL Verification
i field matches delegate's AIDs field matches delegate's inception sequence ("0")d field matches delegate's inception digestStep 3: Temporal Ordering
Step 4: Authority Chain Validation
Delegated identifiers benefit from KERI's duplicity detection mechanisms:
Internal Consistency: Each KEL (delegator and delegate) must be internally consistent with proper cryptographic chaining
External Consistency: Multiple copies of the same KEL must be identical, or duplicity is evident
Delegation Consistency: The delegation relationship must be consistent across all copies of both delegator and delegate KELs
Witness Agreement: Witnesses must agree on the delegation events through KAACE (KERI's Agreement Algorithm for Control Establishment)
Delegated identifiers are used extensively across KERI-based protocols:
ACDCs (Authentic Chained Data Containers) leverage delegated identifiers for credential issuance hierarchies:
vLEI Ecosystem Example:
This delegation tree enables:
KERIA (KERI Agent) uses delegated identifiers for client-agent relationships:
Client AID → Agent AID Delegation:
This enables:
Planning: Determining delegation hierarchy, security requirements, and key management strategies
Coordination: Establishing communication channels between delegator and delegate for cooperative operations
Execution: Performing the multi-step inception process with proper sequencing
Verification: Confirming successful delegation through third-party validation
Key Rotation: Coordinating delegated rotations between delegator and delegate
Monitoring: Watching for duplicitous events or compromise indicators
Maintenance: Updating witness configurations, managing key lifecycles
Revocation: Explicitly revoking delegation through delegator action
Abandonment: Rotating to empty next key digest list to make identifier non-transferable
Archival: Preserving KELs for historical verification and audit trails
Delegated identifiers are a specialized form of transferable identifiers that add delegation semantics. All delegated identifiers are transferable (support key rotation), but not all transferable identifiers are delegated.
Delegated identifiers can be combined with multi-signature control:
Delegated Multi-Sig: A delegated identifier controlled by multiple key pairs with threshold requirements
Multi-Sig Delegator: A multi-signature identifier serving as delegator for other identifiers
Group Delegation: Multiple identifiers cooperatively delegating to a single delegate
Delegated identifiers use witness pools for event confirmation:
Independent Witnesses: Delegate may use different witnesses than delegator
Shared Witnesses: Delegator and delegate may share witness infrastructure
Witness Rotation: Both delegator and delegate can rotate witness configurations independently
TELs (Transaction Event Logs) for credential registries are anchored to delegated identifiers:
Registry Inception: TEL inception event references the controlling delegated AID
Credential Issuance: Credentials issued by delegated identifiers are tracked in TELs
Revocation Management: TEL events are anchored to the delegated identifier's KEL
Corporate Structure Mapping:
Benefits:
Service Provider Delegation:
Multi-Tier Supply Chains:
Traceability: Complete provenance chain through delegation hierarchy
Delegated identifiers enable bivalent key management infrastructure:
Concept: Nested delegations wrap each layer with compromise recovery protection from the next higher layer
Implementation:
Security Property: Root security protects all descendants through superseding recovery, even if leaves use weaker key management
Live Attack Protection: Compromise of delegate signing keys cannot capture control authority because delegator retains rotation authority
Dead Attack Protection: Historical compromise attempts are evident through duplicity detection in KELs
Quantum Resistance: Pre-rotation mechanism provides post-quantum security through one-way hash functions
Delegation as Trust Boundary: Each delegation represents a trust decision by the delegator
Verification Requirements: Validators must verify the entire delegation chain to root
Revocation Propagation: Revoking a delegator's authority cascades to all descendants
Multi-Valent Delegation: A single delegator can have multiple delegates, enabling elastic horizontal scaling
Parallel Operations: Delegates can operate independently without coordinating with siblings
Load Distribution: Signing operations distributed across delegation tree
Arbitrary Depth: Delegation trees can be nested to any depth required
Recursive Verification: Verification complexity grows linearly with delegation depth
Caching Strategies: Intermediate verification results can be cached to improve performance
The vLEI Ecosystem Governance Framework mandates specific delegation patterns:
GLEIF Root Requirements:
QVI Delegation Requirements:
Legal Entity Delegation:
Delegation Policies: Encoded in ACDC rules sections
Automated Verification: Validators check delegation chains against policy requirements
Audit Trails: Complete delegation history preserved in KELs for compliance
Delegated identifiers represent a powerful primitive in KERI's composable architecture, enabling hierarchical trust structures with built-in compromise recovery. Through cooperative delegation, superseding recovery, and recursive application, delegated identifiers provide the foundation for scalable, secure, and flexible identity systems that balance operational efficiency with cryptographic security. The mechanism is fundamental to enterprise deployments, credential ecosystems like vLEI, and any scenario requiring distributed authority with centralized oversight.
Sequencing Requirements: The delegator's anchoring event MUST be created and witnessed before or concurrently with the delegate's inception event. Validators will reject delegations where the delegate's inception precedes the delegator's authorization.
Seal Accuracy: The delegation seal in the delegator's event MUST exactly match the delegate's inception event:
i field must match delegate's AID prefixs field must be "0" for inceptiond field must match the SAID of the delegate's inception eventAny mismatch will cause validation failure.
When the delegate's AID is self-addressing (most common case), the SAID derivation process requires:
di fieldd and i fields with dummy # characters of appropriate lengthd and i with the computed digestThis ensures the delegate's identifier is cryptographically bound to the delegation relationship.
Independent Witness Pools: Delegates should configure their own witness pools independent of the delegator's witnesses. This provides:
Witness Threshold: Follow vLEI governance requirements:
Bivalent Architecture: Implement graduated security:
Rotation Authority Separation: When implementing custodial arrangements:
Complete Chain Verification: Validators MUST verify the entire delegation chain to root:
def verify_delegation_chain(delegate_aid, validator):
current = delegate_aid
while True:
# Get delegate's KEL
kel = validator.get_kel(current)
inception = kel.get_inception()
# Check if delegated
if 'di' not in inception:
# Reached root (non-delegated identifier)
return True
delegator = inception['di']
# Verify delegator's anchoring event
delegator_kel = validator.get_kel(delegator)
if not delegator_kel.has_delegation_seal(current, inception['s'], inception['d']):
return False
# Move up the chain
current = delegator
Caching Strategy: Cache intermediate verification results:
Delegation Failures: Common failure modes:
Missing Delegator Event: Delegate inception exists but delegator has no anchoring event
Seal Mismatch: Delegator's seal doesn't match delegate's inception
Temporal Inconsistency: Delegate inception precedes delegator authorization
Parallel Verification: When verifying multiple delegated identifiers:
Lazy Delegation Verification: For performance-critical paths:
When combining delegation with multi-sig:
Inception Coordination: All multi-sig participants must:
Rotation Coordination: Delegated rotations require:
QVI Delegation Requirements:
Legal Entity Delegation:
Unit Tests:
di fieldIntegration Tests:
Security Tests:
Delegation Health Monitoring:
Operational Procedures: