Skip to main content

Lineage and Attribution

Lineage describes how Blocks are connected through parentHashes. By following declared parent relationships, applications can trace dependencies, inspect ancestry, and understand how a Block was produced.

ALX records only the structure of these relationships. The protocol does not assign ownership, authorship, legal rights, or economic meaning. Applications interpret lineage according to their own policies.

Lineage Model

Lineage provides a deterministic view of Block relationships without embedding application-specific semantics. Equivalent protocol inputs produce equivalent structural results, while attribution, ownership, and trust remain application decisions.

When to Use Lineage

Use lineage when an application needs to:

  • Trace dependencies
  • Inspect ancestor relationships
  • Validate graph integrity
  • Build application-specific attribution or provenance

Conforming lineage uses normalized hashes and rejects duplicate parents, self-references, and cycles.

A conforming lineage graph:

  • Uses normalized Block hashes
  • Rejects self-references
  • Rejects duplicate parent references
  • Rejects cycles
  • Reports unresolved parent references

Applications that intentionally load a partial data set may classify unresolved references as incomplete lineage.