Index: flexoentity/flexo_entity.py
===================================================================
--- flexoentity/flexo_entity.py	(revision 59342cedd0bd83557ceb5440aeb05f2ea79e5318)
+++ flexoentity/flexo_entity.py	(revision 0b4a5e684fe37a10105b2493785d18fb025e9e82)
@@ -263,45 +263,11 @@
     @staticmethod
     def verify_integrity(entity) -> bool:
-        """
-        Verify *state-aware* integrity.
-
-        This method validates that the entity's stored digital signature
-        matches a freshly recalculated one, based on the combination of:
-
-            text_seed + current lifecycle state (one-letter code)
-
-        Returns
-        -------
-        bool
-            True if the entity's *state and content* are unchanged,
-            False if either was altered or corrupted.
-        """
-        seed = canonical_seed(f"{entity.text_seed}:{entity.state.short()}")
-        recalculated_sig = hashlib.blake2s(
-            seed.encode("utf-8"), digest_size=8
-        ).hexdigest().upper()
-
-        return recalculated_sig == entity.flexo_id.signature
-
-    @staticmethod
-    def verify_content_integrity(entity) -> bool:
-        """
-        Verify *content-only* integrity (ignores lifecycle state).
-
-        This method checks whether the stored entity's signature matches
-        a fresh hash of its text seed alone. It does not include the
-        lifecycle state in the fingerprint.
-
-        Returns
-        -------
-        bool
-        True if the text content has not been altered,
-        False if it differs from the original content.
-        """
-        seed = canonical_seed(entity.text_seed)
-        recalculated_sig = hashlib.blake2s(
-            seed.encode("utf-8"), digest_size=8
-        ).hexdigest().upper()
-        return recalculated_sig == entity.flexo_id.signature
+        # --- inhaltlicher (kryptographischer) Check ---
+        # Hash ohne State, Signatur mit State
+        hash_seed = canonical_seed(f"{entity.domain}:{entity.etype.short()}:{entity.text_seed}")
+        sig_seed  = f"{hash_seed}:{entity.state.short()}"
+
+        expected_sig = hashlib.blake2s(sig_seed.encode("utf-8"), digest_size=8).hexdigest().upper()
+        return expected_sig == entity.flexo_id.signature
 
     def allowed_transitions(self) -> list[str]:
Index: flexoentity/id_factory.py
===================================================================
--- flexoentity/id_factory.py	(revision 59342cedd0bd83557ceb5440aeb05f2ea79e5318)
+++ flexoentity/id_factory.py	(revision 0b4a5e684fe37a10105b2493785d18fb025e9e82)
@@ -89,7 +89,39 @@
         raise RuntimeError("Too many collisions; adjust hash length or logic.")
 
-    # ──────────────────────────────────────────────────────────────────────────
     @staticmethod
     def generate(domain: str, etype: str, estate: str, text: str,
+             version: int = 1, enforce_unique=True):
+        """
+        Generate a deterministic Flex-O ID.
+
+        - The hash (and therefore prefix) depends only on domain, etype, and text.
+        → Prefix stays stable across state changes.
+        - The signature still includes the state for audit integrity.
+        """
+
+        if not (1 <= version <= FlexOID.MAX_VERSION):
+            raise ValueError(f"Version {version} exceeds limit; mark obsolete.")
+
+        date_part = datetime.now(timezone.utc).strftime("%y%m%d")
+
+        # state-independent hash seed → prefix stability
+        hash_seed = canonical_seed(f"{domain}:{etype}:{text}")
+        base_hash = FlexOID._blake_hash(hash_seed)
+        unique_hash = (
+            FlexOID._ensure_unique(base_hash, version) if enforce_unique else base_hash
+        )
+
+        ver_part = f"{version:03d}{estate}"
+        flexo_id_str = f"{domain}-{etype}{date_part}-{unique_hash}@{ver_part}"
+
+        # state-dependent signature → per-state integrity
+        sig_seed = f"{hash_seed}:{estate}"
+        signature = hashlib.blake2s(sig_seed.encode("utf-8"), digest_size=8).hexdigest().upper()
+
+        return FlexOID(flexo_id_str, signature)    # ──────────────────────────────────────────────────────────────────────────
+
+
+    @staticmethod
+    def generate_old(domain: str, etype: str, estate: str, text: str,
                  version: int = 1, enforce_unique = True):
         """
Index: tests/test_persistance_integrity.py
===================================================================
--- tests/test_persistance_integrity.py	(revision 59342cedd0bd83557ceb5440aeb05f2ea79e5318)
+++ tests/test_persistance_integrity.py	(revision 0b4a5e684fe37a10105b2493785d18fb025e9e82)
@@ -40,8 +40,4 @@
     assert not FlexoEntity.verify_integrity(loaded)
 
-    # For state-aware systems, content-only integrity is *not applicable* unless regenerated
-    # (i.e., the stored signature is not purely text-based). So we only assert the failure is detected.
-    assert not FlexoEntity.verify_content_integrity(loaded)
-
     assert approved_entity.flexo_id.signature == loaded.flexo_id.signature
     assert approved_entity.flexo_id == loaded.flexo_id
