Synapse governed-state predicate v1
Predicate type: https://github.com/romulofebasi/synapse/blob/main/docs/spec/governed-state-predicate-v1.md.
The opt-in export uses in-toto Statement v1.
Its single subject identifies the actual bytes of synapse-state-evidence.json,
not the source head hint or a filename. digest.sha256 hashes those exact bytes.
The predicate includes their standard-base64 representation so independent consumers
can verify the subject without reproducing Rust JSON serialization.
The artifact contains the original accepted records, detached native receipts, original shared seals and explicitly selected public trust/team/witness inputs. Missing or unreadable material remains null with an explicit issue. Markdown bodies, credentials and private signing keys are excluded. Native verification and collection share one writer lease; the artifact is immutable after export.
assurance preserves the actual native synapse.state-assurance/2 report, including
basic/strict profile, skipped checks, required-coverage verdict, limited baseline,
covered range, receipt checks, freshness, identity, witness and excluded surfaces.
new_operation_authority=not_granted and general_semantic_truth=not_proven apply
even when an outer export signature verifies. Earlier history, unseen revocations
and arbitrary agent behavior do not become proven through serialization.
Optional DSSE
uses application/vnd.in-toto+json and the specified UTF-8 byte-length PAE over the
exact serialized payload. The CLI adapter selects Ed25519 out of band. A verifier
pins the export key independently; keyid remains an unauthenticated hint. Both
standard and URL-safe base64 are accepted. Verified bytes are parsed once and
passed to the application; the envelope is not reread after signature verification.
Use
syn state attest --profile basic
syn state attest --profile strict-local --trust /private/trust.json \
--trust-sha256 REVIEWED_SHA --since /private/witness.json --trusted-key PUBLIC_KEY \
--dsse-key-dir /private/export-key --artifact-output /private/new-evidence.json
syn state envelope-verify --input /private/envelope.json \
--trusted-key INDEPENDENT_EXPORT_PUBLIC_KEY --artifact /private/new-evidence.json
Existing native report formats remain unchanged. Export is a separate command;
failed native policy still produces its truthful statement and a failing exit code.
MCP state_attest returns an unsigned standard statement through the same core.
MCP never accepts a private signing-key path. state_envelope_verify shares the
signature/subject verification core and reports that native source verification
was not rerun. Optional CLI artifact output must be a new file outside the source.
DSSE authenticates the selected export key’s statement; it does not authenticate an organization, install source, supply missing native receipts or grant approval. Evaluate native evidence against independent current trust/policy inputs when those guarantees are required. C2PA and external blockchain anchoring remain separate compatibility/use-case studies rather than prerequisites or compliance claims.