# Assertion **Last Updated:** 2026-01-31 **Confidence:** High ## Summary The Assertion is the atomic unit of Episteme. It represents a signed claim about reality, not a mutable fact. **Key Facts:** - Immutable once written (append-only) - Content-addressed by BLAKE3 hash - Contains: subject, predicate, object, lifecycle, source, signatures, timestamp - Lifecycle stage distinguishes proposals from production-ready truth - Optionally includes vector embedding for semantic search **File Pointer:** `crates/stemedb-core/src/types.rs` ## Structure ```rust pub struct Assertion { // The Fact (What) pub subject: EntityId, // "Tesla_Inc" pub predicate: RelationId, // "has_revenue" pub object: ObjectValue, // Text, Number, Boolean, or Reference // Lineage (Why) pub parent_hash: Option, // Fork pointer pub source_hash: Hash, // Evidence pointer (PDF/URL hash) pub visual_hash: Option, // Perceptual hash for visual anchoring pub epoch: Option, // Paradigm context pub lifecycle: LifecycleStage, // Proposed, UnderReview, Approved, Deprecated, Rejected // Meta-Cognition (Who/How sure) pub signatures: Vec, // Multi-sig support pub confidence: f32, // 0.0 to 1.0 pub timestamp: u64, // Wall clock time pub vector: Option>, // Semantic embedding } ``` ## Lifecycle Stages ```rust enum LifecycleStage { Proposed, // Initial idea, RFC, suggestion UnderReview, // Under active debate Approved, // Production ready, safe for implementation Deprecated, // Was true, now superseded Rejected, // Considered and declined } ``` New assertions default to `Proposed`. Lifecycle transitions are implemented as new assertions with `parent_hash` pointing to the previous version. ## Identity Assertion ID = BLAKE3(serialized assertion bytes) Content-addressed: same content = same hash. ## Related Topics - [Lifecycle Stages](./lifecycle.md) - [Storage Layout](./storage.md) - [Lens Resolution](./lens.md)