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.
{
"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.
{
"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
| Term | Description |
|---|---|
receiptId | Unique identifier for a verified delta |
contentHash | Hash of the individual delta payload |
proofHash | Merkle root computed over one or more deltas in a batch |
previousProofHash | Prior delta's proof hash — forms a hash chain linking deltas in sequence |
deltaIndex | Global sequence number assigned to each delta |
itemHashes | Array 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
Last updated February 11, 2026