On this page

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.

From an audit question to a verified answer
From an audit question to a verified answer

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.

bash
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.json

Use 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.

StageResult
Parse and checkA program accepted under its registry and target
Reference evaluationAn answer calculated from the supplied history model
Audit plan compilationA statement supported by the current proof backend
Proof verificationA proof chain checked against the configured relation and independent history