Skip to content

Verification & Proofs

How Verification Works

When you emit a delta, PacSpace independently verifies it and produces a cryptographic proof chain.

Every delta you submit to PacSpace goes through a multi-step verification pipeline. The result is a cryptographic proof that your data was recorded accurately, in order, and hasn't been tampered with.

The Verification Pipeline

1. You emit a delta

Send a POST /balance/delta request with your delta payload — the customer, amount, reason, and any metadata you want to attach.

json
{
  "customerId": "cust_8xKj2m",
  "amount": -42.50,
  "reason": "usage_charge",
  "referenceId": "inv_20260211_001",
  "metadata": { "plan": "growth" }
}

2. PacSpace computes a content hash

As soon as your delta arrives, PacSpace canonicalizes the payload and computes a content hash — a unique fingerprint of that exact data. If even a single character changes, the hash is completely different.

3. Deltas are batched and a proof hash is computed

Multiple deltas are grouped into a batch. PacSpace builds a Merkle tree from the batch's content hashes and computes a single root value — the proof hash. This proof hash cryptographically represents every delta in the batch.

4. The proof hash is committed to PacSpace's verification layer

The proof hash is written to PacSpace's independent verification layer, creating a permanent, tamper-evident record. Once committed, the data cannot be altered without invalidating the proof.

5. You receive a delta.verified webhook

PacSpace sends a webhook to your registered endpoint with the complete proof packet — including the proof hash, content hash, item hashes, and verification metadata.

json
{
  "event": "delta.verified",
  "data": {
    "receiptId": "rcpt_a1b2c3d4",
    "proof": {
      "proofHash": "0x8f3a...",
      "contentHash": "0x2d4e...",
      "previousProofHash": "0x1c7b...",
      "itemHashes": ["0x2d4e...", "0x9f1a..."]
    }
  }
}

6. A checkpoint locks the period

At the end of each period, PacSpace creates a checkpoint — a single root hash computed over all deltas in that period. This checkpoint locks the entire period's data into one verifiable value and fires a checkpoint.verified webhook.

How Deltas Form a Chain

Each delta's proof hash references the previous delta's proof hash, creating a hash chain. This means:

  • You can verify any delta links back to the one before it
  • Inserting, removing, or reordering deltas breaks the chain
  • The full history is auditable from any point
Delta 0        Delta 1        Delta 2
proofHash₀ ──→ proofHash₁ ──→ proofHash₂
               (includes       (includes
                prevHash₀)      prevHash₁)

Key Terms

TermDescription
receiptIdUnique identifier for a verified delta
contentHashHash of the individual delta payload
proofHashMerkle root computed over one or more deltas in a batch
previousProofHashPrior delta's proof hash — forms a hash chain linking deltas in sequence
deltaIndexGlobal sequence number assigned to each delta
itemHashesArray of per-item content hashes included in the batch

What You Can Do With This

  • Audit any delta — Recompute the content hash and verify it against the proof hash
  • Detect tampering — Any modification breaks the hash chain
  • Prove history — Walk the chain from any delta back to the beginning
  • Independent verification — You don't have to trust PacSpace; you can verify the proofs yourself
Was this page helpful?

Last updated February 11, 2026