Access Control

Same on-chain state. Two viewpoints.

The panels below read the exact same encrypted handles from the vault. The difference is whose key they try to decrypt with. Compliance was granted a viewer role on every LP balance handle at creation time. A random wallet was not. Compliance sees every position. Random sees nothing.

Full ledger · selective disclosure
Compliance Auditor
Viewer granted
Attempting decryption for each position…
NAV applied: 1.0000 · live from vault contract
Unauthorized observer
Random Wallet
No viewer access
Attempting decryption for each position…
NAV applied: 1.0000 · live from vault contract
Selective disclosure is a first-class primitive in Nox, not a workaround. Nox.addViewer(handle, compliance) was called by the vault on every LP balance handle, during deposit settlement and on every share balance update. The compliance address can decrypt. Anyone not on the viewer list reverts. This is the regulatory answer: privacy from the market, visibility for the auditor and the regulator they report to.