Loading vLEI.wiki
Fetching knowledge base...
Fetching knowledge base...
This comprehensive explanation has been generated from 12 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.
The top-level section of an [ACDC](/concept/acdc) consists of the fields in a [compact variant](/concept/compact-variant) whose values are either the SAD (Self-Addressed Data) or the [SAID](/concept/) (Self-Addressing ) of the associated section, creating a cryptographic commitment that is shared across all variants of that ACDC.
The top-level section is a fundamental structural component of Authentic Chained Data Containers (ACDCs) that defines the outermost fields of an ACDC when expressed in its compact variant form. According to the IPEX specification, the top-level section serves as the cryptographic anchor point that binds all variants of a given ACDC together through shared field commitments.
The primary purpose of the top-level section is to provide a consistent cryptographic commitment surface across all possible representations of an ACDC. When an Issuer signs any variant of an ACDC—whether compact, fully expanded, or any intermediate form—that signature creates a cryptographic commitment to the top-level section fields. This commitment mechanism is what enables graduated disclosure patterns while maintaining verifiable integrity.
The top-level section acts as the structural invariant across ACDC variants. Regardless of how deeply nested sections are expanded or compacted, the top-level fields remain consistent in their cryptographic representation. This design choice enables several critical capabilities:
The top-level section is organized as a field map containing standardized fields defined by the ACDC specification. According to the W3C TPAC ACDC Overview presentation, the core top-level fields include:
v: Version string with regex-able format for protocol versioningd: Digest (SAID) - the self-referential cryptographic digest of the ACDCi: Issuer Identifier (AID) - the autonomic identifier of the issuing entityu: UUID for rainbow table attack protection (optional, used in private ACDCs)ri: Registry Identifier for issuance/revocation trackings: Schema (SAID or schema block itself)a: Attribute (SAID or attribute block)e: Edge (SAID or edge block for graph connections)r: Rule (SAID or rule block)Each of these fields can be represented in one of two ways within the top-level section:
This dual representation capability is the defining characteristic of the top-level section in compact variants.
The top-level section's key components can be categorized into three functional groups:
Identity and Versioning Components:
v (version) field establishes protocol compatibilityd (SAID) field provides self-referential integrityi (issuer AID) field establishes control authorityContent Reference Components:
s (schema) field defines structural constraintsa (attribute) field contains or references claim datae (edge) field enables graph fragment chainingr (rule) field specifies governance constraintsPrivacy and Registry Components:
u (UUID) field provides salty nonce protectionri (registry identifier) field enables revocation trackingThe interaction between these components creates a flexible yet cryptographically rigid structure that supports multiple disclosure patterns while maintaining verifiable integrity.
Each field in the top-level section follows strict formatting rules defined by the CESR (Composable Event Streaming Representation) encoding scheme and JSON Schema constraints.
Version Field (v):
The version string follows a specific regex pattern that encodes:
Example format: "ACDC10JSON000000_" where the trailing underscore and zeros provide padding for fixed-length parsing.
SAID Field (d):
The digest field contains a qualified cryptographic primitive in CESR format. This is a self-referential digest computed over the entire ACDC structure with the d field initially set to a placeholder value of the appropriate length. The SAID computation process:
d set to a placeholder (typically # characters)Issuer AID Field (i):
Contains a CESR-encoded autonomic identifier that identifies the issuing entity. This AID must be verifiable through its associated KEL (Key Event Log). The issuer AID establishes the root-of-trust for the ACDC's authenticity.
Schema Field (s):
Can contain either:
The schema defines structural constraints using JSON Schema composition operators, enabling composable schemas that can be validated independently.
Attribute Field (a):
Represents the claims or assertions made by the ACDC. In the top-level section of a compact variant, this field contains:
The attribute section itself may contain nested structures supporting selective disclosure through attribute aggregates and blinded blocks.
Edge Field (e):
Enables directed acyclic graph (DAG) structures by referencing other ACDCs. The edge field can contain:
Edge operators support complex authorization chains and delegation patterns.
Rule Field (r):
Contains governance constraints and Ricardian contract clauses. Can be represented as:
The top-level section must be serialized using one of the supported encoding formats:
JSON Encoding: The primary serialization format uses standard JSON with specific ordering requirements. Field ordering follows the canonicalization rules defined in the ACDC specification to ensure deterministic serialization for SAID computation.
CBOR Encoding: Concise Binary Object Representation provides a binary alternative with equivalent semantic structure. CBOR encoding is particularly useful for bandwidth-constrained environments.
MessagePack Encoding: MessagePack offers another binary serialization option with different performance characteristics.
All encoding formats must support bidirectional transformation while preserving the cryptographic integrity of SAIDs. The CESR encoding scheme ensures that primitives (digests, signatures, identifiers) maintain their qualified format across all serialization domains.
The top-level section has specific size characteristics:
Compact Variant Size: When all sections are represented as SAIDs rather than full SADs, the top-level section achieves minimal size. A typical compact ACDC top-level section might be:
Total compact size: approximately 280-350 bytes depending on optional fields.
Expanded Variant Size: When sections are expanded to full SADs, the size grows proportionally to the content of each section. However, the top-level structure remains the same—only the field values change from SAIDs to complete data structures.
Constraint Requirements:
Creating a top-level section involves several cryptographic operations that must be performed in a specific sequence:
Step 1: Schema Selection The issuer selects or creates an appropriate JSON Schema that defines the structure of the ACDC. The schema must be immutable and addressable by its SAID. If creating a new schema:
Step 2: Attribute Construction The issuer constructs the attribute section containing the claims or assertions. For selective disclosure support:
Step 3: Edge Definition (if applicable) For ACDCs that chain to other credentials:
Step 4: Rule Specification (if applicable) For ACDCs with governance constraints:
Step 5: Top-Level Section Assembly Assemble the top-level section with all required fields:
{
"v": "ACDC10JSON000000_",
"d": "############################",
"i": "<issuer-AID>",
"s": "<schema-SAID>",
"a": "<attribute-SAID>",
"e": "<edge-SAID>",
"r": "<rule-SAID>"
}
Step 6: SAID Computation Compute the self-referential SAID:
d field as placeholderStep 7: Signature Attachment The issuer signs the completed ACDC:
The top-level section of an ACDC is immutable by design. Once created and signed, the top-level section cannot be modified without invalidating the issuer's signature and the ACDC's SAID. This immutability is a core security property.
However, certain update patterns are supported through the ACDC ecosystem:
Registry-Based Revocation:
The ri (registry identifier) field enables revocation without modifying the ACDC itself:
This pattern follows the RUN model (Read, Update, Nullify) rather than traditional CRUD operations.
Credential Refresh Through Reissuance: To update claims or attributes:
Delegation and Chaining: Updates to authorization chains occur through new ACDCs:
Verifying a top-level section involves multiple cryptographic checks:
SAID Verification:
d field value (the claimed SAID)d field with a placeholder of equal lengthThis process confirms the integrity of the entire ACDC structure.
Issuer AID Verification:
i field (issuer AID)This process confirms the authenticity of the issuer's identity.
Signature Verification:
This process confirms the non-repudiable commitment of the issuer.
Schema Validation:
s field (schema SAID or schema block)This process confirms structural compliance.
Registry Status Check (if applicable):
ri field (registry identifier)This process confirms the credential's current validity status.
Edge Verification (if applicable):
e field (edge SAID or edge block)This process confirms authorization chain integrity.
The top-level section is used across multiple protocols in the KERI ecosystem:
IPEX (Issuance and Presentation Exchange): The IPEX protocol uses top-level sections to enable graduated disclosure. During an issuance exchange or presentation exchange:
ACDC Specification: The ACDC specification defines the top-level section as the foundational structure for all credential variants. The specification details:
KERI Protocol:
While KERI itself focuses on identifier management through KELs, ACDCs extend KERI by providing a credential layer. The top-level section's i field (issuer AID) creates a cryptographic binding to the KERI infrastructure:
vLEI Ecosystem: The GLEIF vLEI (verifiable Legal Entity Identifier) ecosystem uses top-level sections extensively:
The lifecycle of a top-level section follows these phases:
Creation Phase:
Issuance Phase:
Active Phase:
Revocation Phase (if applicable):
Archival Phase:
The top-level section interacts with several related data structures:
Attribute Section:
Referenced by the a field, the attribute section contains the actual claims. The relationship:
a field contains attribute section SAID (compact) or SAD (expanded)Edge Section:
Referenced by the e field, the edge section defines graph relationships. The relationship:
e field contains edge section SAID (compact) or SAD (expanded)Rule Section:
Referenced by the r field, the rule section specifies governance. The relationship:
r field contains rule section SAID (compact) or SAD (expanded)Schema Document:
Referenced by the s field, the schema defines structure. The relationship:
s field contains schema SAID (compact) or schema block (expanded)Transaction Event Log (TEL):
Referenced by the ri field, the TEL tracks status. The relationship:
ri field identifies the registryKey Event Log (KEL): The issuer's KEL provides the root-of-trust. The relationship:
i field identifies the issuer's AIDThe top-level section serves as the cryptographic nexus that binds all these structures together into a coherent, verifiable credential system. Its design enables flexible disclosure patterns while maintaining strong cryptographic guarantees about integrity, authenticity, and non-repudiation.
Serialization Consistency: The SAID computation is extremely sensitive to serialization format. Implementations MUST:
',' and ':' with no spaces)Even minor variations in serialization will produce different SAIDs, breaking verifiability.
Placeholder Length: The placeholder used during SAID computation must be exactly the same length as the final CESR-encoded SAID. For Blake3-256 digests with CESR encoding, this is 44 characters. Implementations should:
'#')Digest Algorithm Selection: While Blake3-256 is commonly used, implementations should support multiple digest algorithms as indicated by CESR derivation codes. The derivation code must be preserved in the SAID to enable proper verification.
Indexed Signatures: When the issuer uses a multi-signature AID, signatures must be indexed to indicate which key from the key set was used. Implementations must:
Key State Timing: Signature verification requires determining which keys were authoritative at the time of issuance. Implementations must:
Signature Attachment Format: Signatures are attached to ACDCs as separate CESR-encoded primitives, not embedded in the top-level section. The attachment mechanism must:
SAID-to-SAD Expansion: When expanding a compact variant, implementations must:
Disclosure State Management: During presentation exchanges, implementations should:
Schema Resolution: The schema SAID in the top-level section must resolve to an actual JSON Schema document. Implementations should:
Validation Timing: Schema validation should occur:
Composed Schema Handling: JSON Schema composition operators (allOf, anyOf, oneOf) require special handling:
TEL Resolution: When the top-level section includes an ri field, implementations must:
Status Caching: Registry status checks can be expensive. Implementations should:
SAID Caching: SAID computation is cryptographically expensive. Implementations should:
Parallel Verification: Many verification steps can be parallelized:
Streaming Processing: For large ACDC graphs, implementations should:
Verification Failures: Implementations must clearly distinguish between:
Each failure type requires different handling and user feedback.
Partial Verification: In some scenarios, partial verification may be acceptable:
Implementations should support configurable verification policies.
SAID Collision Resistance: While cryptographic hash collisions are theoretically possible, implementations should:
Signature Replay: Signatures on ACDCs are not time-bound by default. Implementations should:
Schema Injection: Malicious schemas could cause validation issues. Implementations should:
CESR Encoding: All cryptographic primitives must use CESR encoding. Implementations must:
Serialization Formats: While JSON is the primary format, implementations should:
Protocol Versions: The version string in the top-level section indicates protocol compatibility. Implementations must: