On this page

Disclosure consent and policies

Review an audit request, share a supported proof and understand what policy grants can do.

Review the audience, questions and snapshot#

A request names its audience, optional subject, finalized snapshot, expiry and optional nonce. Its questions are closed formulas, not a request to upload unrestricted history. Before answering, check the subject and deployment, then read what each answer reveals under the chosen effect manifest.

The audit relations can prove supported positive ownership and spend-history predicates within their limits. If a program contains an unsupported question, the compiler refuses the program instead of answering only part of it. Show Yes or proven, No answer, Refused and verification failure separately. No answer does not mean the predicate is false.

Generate an answer and share it with the request#

Open the intended account and finish canonical history recovery before compiling a questionnaire that needs full coverage. Check the finalized block and deployment scope. Run the supported proof plan locally, review the exported answer and share it with the original request.

The independent verifier checks the request, proof relation, verification artifacts and snapshot. A proof of a lower bound at an earlier block says nothing about today's balance. It also does not disclose or prove an unrestricted full history. Show the proved claim and its snapshot alongside the verification result.

How reference policies describe permission#

In the reference language, a policy gives standing consent. Each permit names one auditor, the capabilities they may ask about and an effect manifest listing the public facts an answer can reveal. Each question must fit one grant. The evaluator cannot take the audience from one grant and the permissions from another.

Policies and queries compile into separate plans and digests. A note attachment can bind a policy digest to a per-note secret salt and deployment scope while keeping it opaque onchain. A zero attachment grants no questions in that interpretation. The Pool stores the attachment as bytes; an attachment alone does not admit a request or provide a proof backend.

Artifact or stepWhat it tells you
Reference policy planAudience, capabilities, effects and policy digest
Query planPredicates, certification requirements and evidence needed
Holder auditThe holder consents; the compiler produces a supported plan or refuses
Independent verificationWhether the answer and snapshot pass checks for that request

When the holder changes their mind#

The holder can decline the next request or stop sharing answers. A recipient may still keep an answer already delivered and the facts it reveals. Check the request's expiry and nonce in the verifier according to its supported rules. Those checks do not promise deletion of a delivered answer.

The app has no standing-grant revocation interface. A historical revocation contract may not belong to your release. If you add a policy service, document how its attachments work with proofs, how it checks audiences and stores state, and how revocation is enforced by the independent verifier before offering grants to users.

Ask for a small, useful proof#

Ask only for the predicates your product needs and explain why each matters. Let the holder check the audience, subject, snapshot and public effects before generating proofs. Keep the original program with its answer, and provide independent verification to the recipient.

If a question is unsupported or history is incomplete, show why it was refused and what can resolve it. A screenshot, self-reported JSON or partial checkpoint cannot replace the required proof. Continue to the disclosure guide for syntax, examples and verifier commands.