Loading vLEI.wiki
Fetching knowledge base...
Fetching knowledge base...
This comprehensive explanation has been generated from 3 GitHub source documents. All source documents are searchable here.
Last updated: September 21, 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.
Within the KERI (Key Event Receipt Infrastructure), ACDC (Authentic Chained Data Containers), and CESR (Composable Event Streaming Representation) protocol specifications, non-normative content refers to informational material that does not establish binding requirements for protocol implementation or compliance. Non-normative sections serve to:
This distinction is critical in protocol specifications where implementers must clearly understand which elements are mandatory for interoperability (normative) versus which are (non-normative).
KERI protocol documentation employs a dual-classification system for content organization:
Protocol Specification
├── Normative Sections
│ ├── MUST requirements (RFC 2119)
│ ├── SHOULD recommendations with compliance implications
│ ├── Protocol message formats
│ ├── Cryptographic algorithm specifications
│ └── Interoperability requirements
└── Non-Normative Sections
├── Implementation guidance
├── Usage examples
├── Security considerations (advisory)
├── Performance optimization suggestions
└── Historical context and rationale
Non-normative content in KERI specifications typically includes:
Explanatory Material
Implementation Guidance
Security Considerations
Operational Considerations
KERI specifications follow RFC 2119 keyword usage patterns:
Normative Keywords:
- MUST / MUST NOT (absolute requirements)
- REQUIRED / SHALL / SHALL NOT (absolute requirements)
- SHOULD / SHOULD NOT (strong recommendations)
- RECOMMENDED / NOT RECOMMENDED (qualified recommendations)
- MAY / OPTIONAL (truly optional features)
Non-Normative Indicators:
- "for example" / "e.g." / "such as"
- "typically" / "usually" / "often"
- "might" / "could" / "possibly"
- "consider" / "suggest" / "recommend" (without SHOULD)
Implementers must distinguish between normative and non-normative content through:
Section Labeling
## 4.1 Key Event Structure (Normative)
## 4.2 Implementation Examples (Non-Normative)
## Appendix A: Security Considerations (Non-Normative)
Explicit Markers
Content Context Analysis
Non-normative content by definition cannot:
Impact on Protocol Compliance:
Compliance Test Framework:
├── Normative Requirements Testing
│ ├── Message format validation
│ ├── Cryptographic operation verification
│ ├── Protocol state machine compliance
│ └── Interoperability testing
└── Non-Normative Guidance Evaluation
├── Implementation quality assessment
├── Security posture evaluation
├── Performance characteristic analysis
└── Best practices adherence (optional)
Non-normative security guidance in KERI specifications includes:
Threat Model Discussions
Implementation Security Considerations
Non-Normative Security Guidance:
- Key storage recommendations
- Random number generation best practices
- Side-channel attack mitigation
- Timing attack prevention techniques
Cryptographic Algorithm Guidance
Normative specifications are subject to formal verification and mathematical proof, while non-normative content represents:
Non-normative API guidance in KERI implementations:
# Non-normative: Suggested API design pattern
class KERIController:
def __init__(self, config: Optional[Dict] = None):
"""Initialize controller with optional configuration.
Note: This API design is non-normative and may vary
between implementations while maintaining protocol compliance.
"""
pass
def rotate_keys(self, next_keys: List[str]) -> KeyEvent:
"""Perform key rotation operation.
The specific API signature is implementation-dependent,
but the underlying protocol operation must conform to
normative KERI key rotation specifications.
"""
pass
Non-normative configuration guidance:
# Example configuration (non-normative)
keri:
witness:
threshold: 2 # Normative: must be >= 1
timeout: 30s # Non-normative: implementation choice
storage:
backend: "leveldb" # Non-normative: implementation choice
path: "/var/lib/keri" # Non-normative: deployment choice
logging:
level: "info" # Non-normative: operational choice
Non-normative error handling recommendations:
Error Classification
Recovery Procedures
Non-normative content relationships within KERI ecosystem:
KERI Protocol Stack Documentation:
├── Core KERI Specification
│ ├── Normative: Protocol mechanics
│ └── Non-Normative: Implementation guidance
├── ACDC Specification
│ ├── Normative: Credential format
│ └── Non-Normative: Usage patterns
├── CESR Specification
│ ├── Normative: Encoding rules
│ └── Non-Normative: Performance optimization
└── Implementation Guides
└── Entirely Non-Normative: Best practices
Non-normative sections may reference normative content but cannot:
Non-normative performance guidance includes:
Algorithm Complexity Analysis
Key Event Log Verification:
- Normative: O(n) verification requirement
- Non-normative: O(log n) optimization suggestions
Memory Usage Optimization
Network Performance
Non-normative benchmarking guidance:
Non-normative failure analysis includes:
System Resilience Patterns
Data Consistency Considerations
Network Partition Handling
Non-normative boundary handling:
# Non-normative: Suggested input validation
def validate_key_event(event: Dict) -> bool:
"""Validate key event structure.
This validation logic is non-normative and may vary
between implementations. Normative validation rules
are specified in the protocol specification.
"""
# Implementation-specific validation logic
return True
Non-normative content in KERI specifications aligns with:
Non-normative versioning guidance:
Semantic Versioning
Backward Compatibility
Non-normative content lifecycle:
Specification Development:
├── Draft Stage
│ ├── Normative requirements identification
│ └── Non-normative guidance development
├── Review Stage
│ ├── Normative requirement validation
│ └── Non-normative content review
└── Publication Stage
├── Normative specification finalization
└── Non-normative guidance publication
Non-normative deployment guidance includes:
Infrastructure Patterns
Security Hardening
Monitoring and Observability
Non-normative operational guidance:
# Non-normative: Suggested monitoring script
#!/bin/bash
# Monitor KERI witness availability
# This script is illustrative and not required for compliance
for witness in $WITNESS_LIST; do
if ! curl -f "$witness/health"; then
echo "Warning: Witness $witness unavailable"
fi
done
Non-normative maintenance includes:
These operational considerations support protocol implementation but don't affect interoperability or compliance with normative KERI specifications.