Skip to main content

Export Format

Chronicle exports a deterministic dataset that can be verified outside the source application.

Directory layout​

chronicle-export/
├─ entries.ndjson
├─ manifest.json
└─ signature.json

entries.ndjson​

Each line is one exported entry.

Entries are written in export order:

  1. created_at
  2. id

Example:

{"id":"01HVWJZX4E2R8P1C7W4H4S2C3J","actor_type":"App\\Models\\User","actor_id":"42","action":"order.created","subject_type":"App\\Models\\Order","subject_id":"981","payload":{"amount":5000},"payload_hash":"6a3c8a...","chain_hash":"7bc9c4...","checkpoint_id":null,"tags":["orders"],"diff":null,"correlation_id":"01HVWFH1QY7X8R9D4G3","created_at":"2026-03-06T11:32:14.000000Z"}

Each exported line contains the core ledger data required for independent verification.

manifest.json​

The manifest stores export-level metadata:

{
"version": "1.0",
"generated_at": "2026-03-06T11:40:00Z",
"entry_count": 1523,
"first_entry_id": "01HVWJZX4E2R8P1C7W4H4S2C3J",
"last_entry_id": "01HVWJZX4E2R8P1C7W4H4S2C4F",
"chain_head": "9fa2b3c4...",
"dataset_hash": "a93f47b8...",
"algorithm": "ed25519"
}

Important fields:

  • entry_count
  • first_entry_id
  • last_entry_id
  • chain_head
  • dataset_hash

Together these protect against truncation, reordering, and content tampering.

signature.json​

The signature file stores the detached signature for the dataset hash:

{
"signature": "base64-encoded-signature",
"algorithm": "ed25519",
"key_id": "your-key-id"
}

Chronicle signs the dataset hash, not the raw entries file directly.

Versioning expectations​

The export format is versioned through the manifest. That allows downstream verifiers to reject incompatible changes instead of silently interpreting a new structure as if it were the old one.

Verification summary​

Independent verification should:

  1. Ensure all three files exist
  2. Validate manifest.json and signature.json
  3. Parse entries.ndjson line by line
  4. Recompute the chain hash across all entries
  5. Recompute the dataset hash for the NDJSON file
  6. Compare computed values with the manifest
  7. Verify the detached signature

For the operational workflow, see Export Verification Guide.