# Data availability

### What “data availability” means for EDMA

We anchor the facts that move money—proof hashes, EMT mints, fee/burn lines, and Locked→Unlocked EDSD deltas—to Ethereum. Big documents (COA PDFs, BL + seal photos, temp logs, inspection files) live off-chain under access control; their hashes live on-chain. Anyone can reconstruct the state from L1 blobs; authorized parties can retrieve the underlying files via signed links. That’s the balance: public verifiability for the facts that matter; private handling for sensitive evidence.

### The split

We keep this simple so ops, auditors, and regulators all understand it the same way.

* **On-chain (L2 → L1 blobs/state roots):**
  * PoV hash for each gate check (the commitment to the evidence set)
  * EMT id and stage metadata (which gate passed, when, for which sub-lot)
  * State deltas: Locked→Unlocked EDSD per slice; assignment settlement; cash-out enabled
  * Fee & burn lines: per event, with the burn hash in EDM
  * One-Claim map updates (the uniqueness key/claim reference)
* **Off-chain (evidence vaults, role-gated):**
  * COA/QA reports, PSI PDFs, BL + seal image, temp logs, customs EDI, DC QA photos
  * Brand authorization letters and program/registry confirmations
  * Any PII or commercially sensitive documents

Files are stored redundantly; the chain holds their content hashes. Signed URLs (short-lived) deliver access through the API; webhooks never include raw files.

### How blobs keep the rail auditable

Batches post to Ethereum as EIP-4844 blobs on a steady cadence (≈ 2–10 min under load). Those blobs carry the commitments listed above and the Merkle roots needed to prove inclusion. If you need to re-build any timeline:

1. Pull batch indices from L1 and fetch the blobs.
2. Verify PoV hashes, EMT ids, Locked/Unlocked EDSD deltas, and burn hashes.
3. Request evidence by hash (authorized role) to view the underlying file set.
4. Compare the file hashes to the on-chain PoV hash.
5. You now have an end-to-end proof: evidence → PoV hash → EMT → release → burn.

Auditors don’t have to trust our UI; they can walk the chain.

### Evidence privacy and selective disclosure

We never put PII or raw evidence on the chain. Instead:

* **Hashes on-chain; files off-chain:** The contract checks hash equality; the vault serves files with short-lived signed links.
* **Field redaction & salts:** Where a file contains PII (e.g., warehouse contacts), we redact those fields; the hash commits to the redacted version.
* **Selective disclosure / ZK wrappers (roadmap):** Prove facts like “shelf-life ≥ X”, “temp in range”, or “origin in {A,B}” without revealing raw values.

If a regulator needs raw files, their account is whitelisted for the relevant hashes; the proof page records access.

### What a money-moving record actually contains

Releases are more than numbers; they’re small dossiers tied to blobs. A settlement/release record shows:

* the stage and EMT id that triggered payment,
* the PoV hash and which validators signed,
* Locked EDSD and Unlocked EDSD amounts for that slice,
* the protocol fee applied, the burn hash in EDM, and the treasury half,
* links to the public proof page and expiring evidence URLs (for authorized roles).

That’s why finance and audit stop arguing; they read the same artifact.

### Data availability for EDSD reserves (Proof-of-Reserves)

While funds are Locked EDSD, the platform holds \~75% in short-dated treasury bills and \~25% in cash. We publish:

* a daily reserve summary (totals per order, per stage, outstanding Locked vs Unlocked),
* a PoR attestation (bank statements/custodian confirms hashed and anchored),
* a simple ladder view (T-bill maturities, cash buffer),
* an alert if coverage drifts (Reserve mismatch, Buffer low, Ladder drift).

All of this references on-chain commitments so third parties can re-compute the totals.

### Failure modes and how we recover

* **Sequencer outage:** forced inclusion via the L1 inbox ensures critical txs (proof, EMT, release) can still be posted; exits are permissionless after the challenge window.
* **Vault unavailable:** files are replicated across regions; signed links failover; hashes on-chain allow re-hydration from mirrored stores.
* **Revocation after pass:** the slice and downstream slices pause; the revised PoV hash supersedes the old one; the Dispute Pack on the proof page shows the delta.

We never burn ahead of proof, and we never release a slice without an EMT. Those brakes are separate from DA.

### Developer surface

* **API:** `GET /v1/evidence/{hash} (signed URL), GET /v1/proof/{emt_id} (summary with PoV hash), GET /v1/ledger/{order_id} (fee/burn/Locked-Unlocked deltas).`
* **Webhooks:** trade.milestone.passed, trade.release.posted (includes burn hash), tokens.settlement.posted, fee.burn.posted, treasury.interest.accrued.
* **Explorer:** human pages backed by the same data; every record links to the L1 blob index and burn tx.

### What stays invariant

The rail is useful because the facts are public and the files are private—with a clean bridge between them. We don’t move money without proof, we don’t accept duplicate evidence, and we don’t hide what burned or when.

* **No EMT, no funds—**&#x72;eleases require an EMT.
* **One-Claim—**&#x74;he same evidence cannot be used twice.
* **Must-fund before shipping—**&#x61;fter Pre-Ship EMT, the buyer tops up; no funding, no BL.
* **50% burn of each protocol fee in EDM,** posted with a hash per event.
* **PoR & blobs—**&#x73;tate and commitments live where anyone can verify them.

That’s data availability on EDMA: the ledger you can verify, the files you can retrieve, and a payment you can defend.

<img src="https://4141632533-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FvCX7EzuE9nwtTuIaxXGQ%2Fuploads%2FXhXPj1OFlLG6JTB5pR2m%2Ffile.excalidraw.svg?alt=media&#x26;token=af8e237b-75ab-4648-a9b2-f496afa13fba" alt="" class="gitbook-drawing">
