Honest privacy model

Private does not mean invisible.
It means deliberately disclosed.

ShadowLedger separates publicly auditable aggregate facts from confidential payroll rows. Timing and voluntary disclosure still matter.

StagePublicHidden or selectively disclosed
Shield/depositAddress, token, amount, timingFuture in-pool note ownership
Private payroll batchA STRK20 pool interaction occurredSender-to-recipient links, recipients, individual allocations
Payroll registryToken, aggregate, count, hashes, timestampsAddresses and amounts for individual rows
Recipient receiptNothing unless voluntarily sharedExactly one disclosed row and proof; all other rows
Auditor packageNothing—the file stays localNothing from the chosen auditor; the complete book is disclosed to them

What the receipt proves

Commitment inclusion + payer attestation

A portable receipt proves that the disclosed line resolves to the public Merkle root and that the payer signed a binding to the finalized STRK20 transaction reference.

What it does not prove

No public note inspection

The MVP does not expose a viewing key or cryptographically reveal the private note amount to a public verifier. The signed receipt is selective disclosure, not note decryption.

Residual risk

Timing can still correlate activity.

Shield early, avoid funding and paying in one obvious sequence, use only registered recipients, and never paste claim keys or private audit packages into public tools.