Fuyu Policy Language
Write account-history questions and check which evidence their answers need.
Write a question#
FPL names Yes/No questions about an account history. Its parser and checker resolve assets and units, subjects and snapshots, disclosure effects and the evidence needed for each answer. The reference evaluator runs a program against a history model you supply.
FPL questions cannot change spending permission. The Pool keeps an opaque note-policy attachment, but it does not read the language or execute its predicates.
Check what the prover supports#
FPL can express questions beyond the current audit circuits. A positive lower bound may need only selected witnesses. An upper bound or absence claim can need complete history in the reference model.
The holder audit compiler accepts a capacity-limited upward subset and rejects programs with unsupported questions. Label reference evaluation as a local, unproven result.
Evaluate the example history#
Run this fixture from the protocol repository root. It evaluates the supplied example history. To produce a zero-knowledge answer, you need the separate audit plan and proof flow.
node dsl/cli.cjs eval dsl/examples/stock-query.fuyu \
--registry dsl/examples/stock-registry.json \
--target dsl/examples/stock-target.json \
--policy dsl/examples/stock-disclosure.fuyu \
--evidence dsl/examples/stock-history.jsonUse the same program on both sides#
The audit plan includes the program's canonical digest, subject, audience, nonce, expiry and finalized snapshot. Prover and verifier must compile it with the same registry, relation configuration and verification-key hashes.
Show the holder the question and what the answer will publish. A holdings or participation proof cannot be used as evidence of a source set, exhaustive history or exclusive contribution to a transaction.
| Stage | Result |
|---|---|
| Parse and check | A program accepted under its registry and target |
| Reference evaluation | An answer calculated from the supplied history model |
| Audit plan compilation | A statement supported by the current proof backend |
| Proof verification | A proof chain checked against the configured relation and independent history |