A seed is a pseudorandomly generated number, typically expressed as a series of words (BIP-39 format), that serves as the primary entropy source for deterministically generating cryptographic key pairs in KERI. Also called 'bran' in KERI terminology to avoid conflicts with existing uses of 'seed' and 'salt'.
Related Concepts
No related concepts available
Comprehensive Explanation
seed
Technical Definition
A seed (canonically also termed bran in KERI) is a cryptographic string used as primary input for creating key material for autonomic identifiers (AIDs). It represents the foundational entropy from which all cryptographic keypairs controlling an identifier are deterministically derived.
Formal Definition
According to the KERI specification, a seed is:
A pseudorandomly generated number with sufficient cryptographic strength (minimum 128 bits of entropy)
Often expressed as a series of words following the BIP-39 standard for human-readable representation
The root secret from which all key material is derived through one-way functions
Purpose in KERI/ACDC
Seeds serve multiple critical functions:
Primary Root-of-Trust: The seed establishes the primary root-of-trust for an identifier by providing the entropy foundation for key generation
Key Derivation: Through hierarchical deterministic algorithms, a single seed can generate multiple keypairs for different purposes
Implementation Notes
Critical Implementation Guidance
Seed Generation
Entropy Requirements:
MUST use CSPRNG or true random number generator
MUST provide minimum 128 bits of entropy
SHOULD provide 256 bits for long-term security
MUST NOT use predictable sources (timestamps, PIDs, etc.)
Use Cryptographically Secure Sources: Never use predictable or low-entropy sources
Verify Entropy Quality: Test randomness of generation source
Secure Generation Environment: Generate seeds on trusted, offline systems
Immediate Protection: Encrypt or secure seed immediately after generation
Verify Backup: Test seed recovery before relying on it
Key Derivation Patterns
Hierarchical Deterministic (HD) Derivation:
Seed → Master Key → Purpose → Coin Type → Account → Change → Address Index
This pattern enables:
Multiple identifiers from single seed
Organizational key management
Separation of concerns (different keys for different purposes)
Auditable key usage without exposing seed
Terminology Evolution
Why "Bran"?
Dr. Samuel Smith explains the terminology choice:
"We already use seed and salt for something else so bran is related to seed so we used a term that was evocative of its use but not conflict with already used seed"
This naming convention reflects:
Precision: Avoiding overloaded terms
Semantic Clarity: Bran (wheat bran) relates to seeds naturally
Specification Rigor: Each term has one precise meaning
Cross-Protocol Compatibility
KERI seeds maintain compatibility with:
BIP-39: Bitcoin Improvement Proposal for mnemonic phrases
BIP-32: Hierarchical Deterministic Wallets
SLIP-0010: Universal private key derivation
This enables:
Interoperability with cryptocurrency wallets
Reuse of existing key management infrastructure
Familiar user experience for crypto-native users
Future Directions
Post-Quantum Considerations
Seeds remain relevant in post-quantum cryptography:
Quantum computers cannot break one-way functions used in key derivation
Seed-based systems can migrate to quantum-resistant algorithms