Core Concepts
Genesis X-1 defines a precise protocol vocabulary. These terms carry exact meanings within the protocol. Implementations must use them as specified.
Actor
The canonical identity unit. An actor holds:
- A stable UUID (
actor_id) — the internal protocol identifier, permanent and immutable - A network-resolvable address (
iaex_id) — the cross-network identifier, formatted asiaex:actor:<uuid> - One or more enrolled Ed25519 signing keys, each identified by a unique key ID (
kid)
Every authenticated request is scoped to an actor's API key. Every signed event carries the actor_id and kid of the signing actor. Actor identity is publicly resolvable at /resolve/{iaex_id} without authentication.
Organization
A registered business entity used as the continuity anchor for organization-root ledger flows. An organization is created through the onboarding protocol and bound at creation to a Facility Root Ledger (FRL). Organizations are the primary participants in ORDER and FACILITY_ROOT ledger relationships.
Entity
A machine, asset, or device with an operational identity on the network. Entities are onboarded through the entity flow and receive an Asset Root Ledger (ARL). Entity operational records are scoped within engagement ledgers under the ARL.
Ledger
The constitutional boundary record for one relationship or one root continuity scope. A ledger:
- Is created once, immutable thereafter
- Records exactly two direct parties (buyer and supplier for ORDER ledgers; the owning organization for root ledgers)
- Is sealed at genesis by an authority-signed event establishing the root hash
- Can only be closed — never modified or deleted
Ledger boundary determines access scope. Direct parties can read all events within the ledger. Access by non-party actors requires explicit delegation.
TraceLedger Master
An execution scope within an existing ledger. It groups related operational events — shipments, inspections, financing — under a named business reference (such as a purchase order number or shipment ID) without creating a new constitutional boundary.
Masters are created by a direct ledger party. Write access is granted to delegates via POST /delegation/master. Each access grant is actor-signed by the granting party and stored as an event.
Event
An immutable, append-only record within a ledger. Properties:
- Sequenced — monotonically increasing sequence number within the ledger
- Hash-chained — each event seals the prior event's hash into its own digest (Layer B)
- Attributed — carries the
actor_idandkidof the appending actor - Optionally actor-signed — events submitted with
X-Actor-Sigcarry a stored Ed25519 signature and the exact signed payload (actor_sig_payload)
Events cannot be modified, deleted, or reordered after append.
Genesis Event
The first event in every ledger. It establishes the ledger boundary, records the direct parties, and anchors the hash chain at position zero. Genesis events are authority-signed by the Genesis X-1 authority key, not by the creating actor.
Delegation
A signed grant that allows one actor to act within a defined scope owned by another actor or ledger party. Delegations are:
- Scoped to organization, ledger, or TraceLedger master level
- Actor-signed by the granting party at the time of grant
- Stored as events within the relevant ledger, making them part of the immutable record
- Auditable through the delegation snapshot and proof endpoints
API Key
A bearer credential issued at developer registration. It identifies the calling actor, determines the database region (sandbox, India, EU), and is transmitted as Authorization: Bearer <key>. API keys are SHA-256 hashed at rest. The raw key is shown once at issuance.
Actor Signature — Layer A
An Ed25519 signature from the acting actor over the canonical event intent. Computed as:
sigPayload = business fields the actor asserts (canonical subset)
msg = eventType + "\x00" + ledgerID + "\x00" + canonicalJSON(sigPayload)
digest = SHA-256(msg)
sig = Ed25519.Sign(actorPrivKey, digest)
The signature (actor_sig) and the exact signed payload (actor_sig_payload) are stored in the event row and returned in all event reads. Any party with the actor's public key can independently verify the signature without server involvement.
Hash Chain — Layer B
The tamper-evident continuity structure of a ledger. Each event seals the prior event's hash:
hash(n) = SHA-256(
hash(n-1) + event_type + ledger_id + actor_id + timestamp + canonicalJSON(payload)
)
Any modification to any event in the chain invalidates all subsequent hashes. The hash chain is verified server-side on every event read. The result is returned in integrity.verified on every response.
Resolver
The public endpoint returning an actor's identity document and signing key lineage. Resolution requires no authentication. It is the trust anchor for cross-party actor verification — a verifier with no prior interaction with an actor can fetch their public key and verify their event signatures independently.
Webhook
A signed HTTP POST delivery of event data to a subscriber-registered endpoint. Webhook payloads carry an IAEX-Signature header signed with the authority key. Subscribers verify delivery authenticity against the published authority public key at /.well-known/iaex-authority.
Correction Lineage
A causal link from a later event to an earlier event through the caused_by_hash field. Used when a later event corrects, supersedes, or contextualizes a prior record. The causal link is cryptographically bound — the referenced hash must exist in the ledger chain.