Loading vLEI.wiki
Fetching knowledge base...
Fetching knowledge base...
This comprehensive explanation has been generated from 44 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 list of specially defined strings representing configuration options for a Key Event Log (KEL), specified in the inception or rotation events to control identifier behavior and capabilities.
Configuration traits are defined in the KERI specification as "a list of specially defined strings representing a configuration of a KEL" (Doc 1, Doc 2). These strings appear in the c field of establishment events—specifically inception events and rotation events—to declare operational characteristics of an AID.
The canonical glossary entry (Docs 1-4) references a "Configuration traits field" section for complete specifications, indicating that detailed trait definitions exist in the KERI specification proper, though the specific trait strings and their semantics are not enumerated in the provided excerpts.
Configuration traits are part of the broader key state definition within KERI. According to the KERI specification (Doc 5, Doc 6), key state encompasses:
The c field containing configuration traits appears alongside other critical establishment event fields in the standardized field ordering defined by the protocol (Doc 24).
Implementations must:
c field to determine the number of trait stringsConfiguration traits are part of the vLEI Ecosystem Governance Framework technical requirements. The GLEIF vLEI infrastructure specifies mandatory configuration traits for different credential types:
The configuration traits field uses CESR group codes for efficient serialization. The count code indicates the number of trait strings, followed by the actual trait values. This enables stream parsing without requiring schema knowledge.
Configuration traits utilize a specialized CESR primitive called the Config Trait List Counter (mentioned in Doc 1, Doc 4). This counter code specifies the number of configuration trait strings in the list, enabling efficient parsing of the c field in serialized event streams.
CESR (Composable Event Streaming Representation) provides the encoding infrastructure for all KERI primitives, including configuration traits. The CESR specification (Doc 11) establishes that primitives must be self-framing—meaning the encoding itself contains sufficient information for a parser to extract the primitive atomically from a stream without external schema knowledge.
For configuration traits specifically:
Configuration traits first appear in the inception event (Doc 5, Doc 6, Doc 20-22, Doc 25-28), which creates the AID and establishes its initial key state. The inception event structure includes:
v: version string (KERI10JSON)
t: "icp" (event type)
d: SAID of the event
i: identifier prefix
s: "0" (sequence number)
kt: current signing threshold
k: current key list
nt: next threshold
n: next key digest list
bt: witness threshold
b: witness backers
c: configuration traits array
a: seal array
The c field in the inception event establishes traits that define the identifier's operational behavior. Once set in inception, certain traits become immutable properties of the identifier throughout its lifecycle.
Rotation events (Doc 5, Doc 6, Doc 30) can potentially modify configuration traits, though the specification does not explicitly detail which traits are mutable versus immutable in the provided excerpts. The rotation event structure mirrors inception with modifications:
v: version string
t: "rot" (event type)
d: SAID of the event
i: identifier prefix
s: sequence number (incremented)
p: prior event digest
kt: new current threshold
k: new current key list
nt: new next threshold
n: new next key digest list
bt: witness threshold
b: witness backers
c: configuration traits array
a: seal array
The presence of the c field in rotation events indicates that configuration traits are part of the mutable key state, though the constraints on what can change are not detailed in the available documentation.
Configuration traits participate in KERI's event validation mechanism through several pathways:
Configuration traits are cryptographically committed through the event's SAID (Self-Addressing IDentifier). The SAID derivation process (Doc 24) includes all top-level fields of the establishment event, including the c field. This creates an immutable cryptographic binding:
d fieldAny modification to configuration traits would change the SAID, invalidating the controller's signature and making tampering detectable.
Validators processing a KEL must:
The specification (Doc 5, Doc 6) emphasizes that validators perform end-to-end verification without relying on trusted intermediaries, meaning configuration traits must be self-describing and unambiguous.
Configuration traits work in conjunction with witness-related fields to establish the identifier's infrastructure requirements. The witness configuration in establishment events includes:
wt (witness threshold): Minimum number of witness receipts requiredw (witness list): Array of witness AIDsbt (backer threshold): For ledger-backed identifiersb (backer list): For ledger-backed identifiersConfiguration traits in the c field may interact with these witness fields to declare additional operational modes. For example, traits might specify:
The exact trait strings for these behaviors are not enumerated in the provided documentation.
Configuration traits may control delegation capabilities (mentioned conceptually in Docs 5-6, 12, 26-27, 30 regarding delegation mechanisms). KERI supports hierarchical identifier structures where one AID delegates authority to create other AIDs. Configuration traits would declare:
The partial rotation mechanism (Doc 30) enables sophisticated delegation scenarios, and configuration traits likely interact with this to define delegation boundaries.
A fundamental distinction in KERI identifiers is transferability—whether the identifier supports key rotation. The specification (Doc 26, Doc 27, Doc 28) defines:
Configuration traits are the mechanism that declares this property. A non-transferable identifier would have traits indicating:
n) is present or it contains an empty commitmentThe vLEI technical requirements (Doc 16, Doc 17) for GLEIF's implementation reference configuration traits in the context of establishing QVI (Qualified vLEI Issuer) identifiers and their delegated structures, though specific trait values are not provided.
The CESR encoding of configuration traits enables efficient stream processing. The cesride Rust implementation (Doc 29) and KERIox changelog (Doc 31) demonstrate practical parsing requirements:
The "sniffable" property of CESR streams (Doc 11) means parsers can detect the presence of configuration traits without pre-existing schema knowledge by examining the count code.
KERI implementations store configuration traits as part of the identifier's key state. The KERIox migration to redb (Doc 31) shows that configuration traits are:
IdentifierState structuresrkyv traits for efficient binary representationThe configuration traits mechanism is defined in the core KERI specification maintained by the Trust Over IP Foundation (Doc 4, Doc 6, Doc 18, Doc 19, Doc 28). The specification is under active development:
The vLEI governance framework (Doc 16, Doc 17) establishes that:
The did:keri method specification (Doc 22) establishes how KERI identifiers map to W3C Decentralized Identifiers. Configuration traits influence this mapping:
The did:keri method treats the KEL as authoritative, with DID Documents being derived representations. Configuration traits in the KEL therefore directly determine DID Document properties.
Configuration traits may interact with TEL (Transaction Event Log) specifications (Doc 20, Doc 21). TELs anchor to KELs through cryptographic seals, and configuration traits could:
The public TEL specification (Doc 21) for verifiable credential registries relies on the KEL's establishment events, including configuration traits, to authorize TEL operations.
The provided documentation excerpts do not include:
These details are presumably contained in the "Configuration traits field" section referenced by the glossary entries (Docs 1-4) but not present in the provided excerpts. Implementers must consult the complete KERI specification at https://github.com/trustoverip/tswg-keri-specification for authoritative trait definitions.
Configuration traits provide a declarative metadata mechanism for establishing operational characteristics of KERI identifiers. While the available documentation establishes the structural role and encoding of configuration traits within establishment events, the specific trait strings and their detailed semantics are not enumerated in the provided excerpts. Implementers should treat configuration traits as:
The Config Trait List Counter mechanism enables efficient CESR encoding and stream processing, while the integration with key state ensures configuration traits participate in KERI's end-to-end verifiability guarantees.