Event Structure¶
Module: KERI.Event
Generic KEL events¶
The KELEvent structure is parameterized over a payload type α, making it reusable across different KERI-based protocols:
structure KELEvent (α : Type) where
sequenceNumber : Nat
priorDigest : Option Digest
payload : α
signer : Key
signature : Signature
A KEL α is simply List (KELEvent α), stored newest-first.
This structure was originally defined in kelgroups and is extracted here so any KERI-based project can import it.
KERI event payloads¶
graph TD
EP[EventPayload]
EP --> ICP["Icp
Inception"]
EP --> ROT["Rot
Rotation"]
EP --> IXN["Ixn
Interaction"]
EP --> RCT["Rct
Receipt"]
ICP -.- ICP_D["prefix, keys,
next-key commitments,
witnesses"]
ROT -.- ROT_D["new keys,
new commitments,
witness changes"]
IXN -.- IXN_D["data anchors
(digests)"]
RCT -.- RCT_D["receipted
event digest"]
| Type | Purpose | Key fields |
|---|---|---|
| Icp (Inception) | Establish new identifier | prefix, keys, next-key commitments, witnesses |
| Rot (Rotation) | Rotate keys | new keys, new next-key commitments, witness changes |
| Ixn (Interaction) | Anchor external data | data anchors (digests) |
| Rct (Receipt) | Witness receipt | receipted event digest |
Inception¶
Creates a new KERI identifier. Fields:
prefix— the SAID (self-addressing identifier), computed as the digest of the inception event itselfsigningThreshold— minimum signatures required (multi-sig)keys— current signing key setnextThreshold/nextKeys— pre-rotation commitments for the next key setwitnessThreshold/witnesses— witness configuration
Rotation¶
Replaces the current key set with previously committed next-keys. Supports witness configuration changes.
Interaction¶
Anchors arbitrary data (as digests) to the KEL without changing keys. Used for binding external events to the identifier's timeline.
Receipt¶
A non-transferable witness receipt. Does not modify key state.
Invariants¶
inception_type/rotation_type—eventTypecorrectly classifies payloadsprefix_consistent_icp/prefix_consistent_rot—eventPrefixextracts the prefix field from any payload variant