Evidence and Token Commands¶
Commands for execution evidence, freshness proofs, capability tokens, format bridges, selective disclosure and identity purge records.
Commands are stable unless marked Beta; Public Contract lists the level of every command. A beta command may change in a minor release.
Execution Evidence Commands¶
The genesis-mesh trust execution sub-group implements the Execution Evidence
hash chain protocol (v0.29). Records are linked by prev_evidence_digest.
verify detects an inserted, changed or reordered record, and a gap. It cannot
detect records removed from the end of the chain: compare the last sequence
number with one you hold.
genesis-mesh trust execution record¶
Beta.
Create and sign an ExecutionEvidence record. With --prior, links the
record to the previous record via prev_evidence_digest.
# First record (no prior)
genesis-mesh trust execution record \
--decision decision.json \
--capability transactions.read \
--executor bank-a \
--outcome success \
--sequence 1 \
--signing-key keys/bank-a.key --key-id bank-a-2026 \
--output evidence-1.json
# Chained record
genesis-mesh trust execution record \
--decision decision.json \
--capability transactions.read \
--executor bank-a \
--outcome success \
--sequence 2 \
--prior evidence-1.json \
--signing-key keys/bank-a.key --key-id bank-a-2026 \
--output evidence-2.json
genesis-mesh trust execution verify¶
Beta.
Verify an ExecutionEvidence hash chain. Checks sequence contiguity,
prev_evidence_digest linkage, and Ed25519 signatures. Exit code 0 if
verified, 1 on any failure.
genesis-mesh trust execution verify \
--decision-id <uuid> \
--evidence evidence-1.json \
--evidence evidence-2.json \
--key bank-a:<bank-a-pub-b64> \
--expected-capability transactions.read
Freshness Proof Commands¶
The genesis-mesh trust freshness sub-group implements the Freshness Proof
protocol (v0.30). Proofs are short-lived signed attestations that a specific
revocation-feed sequence was current at a specific time.
genesis-mesh trust freshness issue¶
Beta.
Issue a signed FreshnessProof for a feed sovereign.
genesis-mesh trust freshness issue \
--feed-sovereign bank-a \
--feed-sequence 42 \
--issuer-sovereign feed-node-1 \
--valid-for 300 \
--signing-key keys/feed-node.key --key-id node-2026 \
--output freshness-proof.json
genesis-mesh trust freshness verify¶
Beta.
Verify a FreshnessProof for a required sequence at a given time. Exit code 0
if valid, 1 otherwise.
genesis-mesh trust freshness verify \
--proof freshness-proof.json \
--issuer-key <feed-node-pub-b64> \
--required-sequence 42
Invocation-Bound Capability Token Commands¶
The genesis-mesh trust token sub-group (v0.32) issues, verifies, and records
usage of Invocation-Bound Capability Tokens (IBCTs). A token states offline
what an agent may do and until when, with no live call to the NA. The
invocation budget holds only when the verifier sees every earlier use record
(--use-record): an agent that withholds them passes again. Keep use records
where the agent cannot withhold them.
genesis-mesh trust token issue¶
Beta.
Issue a signed IBCT from an AgreementRecord.
genesis-mesh trust token issue \
--agreement agreement.json \
--bearer agent-b \
--caps "transactions.read,audit.read" \
--signing-key operator.key --key-id op-2026 \
--valid-for 300 \
--max-invocations 5 \
--output token.json
Key options:
Option |
Description |
|---|---|
|
Source |
|
Sovereign ID that will use the token |
|
Comma-separated capability identifiers (must be ⊆ agreement) |
|
Token lifetime in seconds (default 300) |
|
Budget cap; omit for unlimited |
|
Policy constraint string; repeatable ( |
|
|
genesis-mesh trust token verify¶
Beta.
Verify a token for a specific capability invocation. Exit code 0 = valid, 1 = any failure.
genesis-mesh trust token verify \
--token token.json \
--verify-key operator.pub \
--capability "transactions.read" \
--bearer agent-b \
--use-record use-1.json \
--use-record use-2.json
genesis-mesh trust token record-use¶
Beta.
Record a signed invocation. Chain to a prior use-record with --prior.
# First use
genesis-mesh trust token record-use \
--token token.json --action "transactions.read" --outcome success \
--signing-key agent.key --output use-1.json
# Second use (chained)
genesis-mesh trust token record-use \
--token token.json --action "transactions.read" --outcome success \
--prior use-1.json --signing-key agent.key --output use-2.json
Interop Bridge Commands¶
The genesis-mesh trust interop sub-group (v0.31) converts GM records to
common external formats. The SPIFFE and VC outputs carry _gm_bridge_source
so receivers know the provenance; the JWT carries its Genesis Mesh fields as
gm: claims.
genesis-mesh trust interop to-spiffe¶
Beta.
Convert an AgreementRecord to a SPIFFE SVID-like JSON.
genesis-mesh trust interop to-spiffe \
--agreement agreement.json \
--output svid.json
genesis-mesh trust interop to-vc¶
Beta.
Convert an AgreementRecord or TrustEvidence to JSON shaped like a W3C
Verifiable Credential. The Genesis Mesh signatures sit in proof but are not
a W3C Data Integrity proof, so standard VC verifiers will not verify them.
genesis-mesh trust interop to-vc --agreement agreement.json --output vc.json
genesis-mesh trust interop to-vc --evidence evidence.json --output vc.json
genesis-mesh trust interop to-jwt¶
Beta.
Encode a BoundaryDecision as a signed EdDSA JWT (RFC 8037 OKP/Ed25519).
genesis-mesh trust interop to-jwt \
--decision decision.json \
--signing-key keys/bridge.key --key-id bridge-2026 \
--output decision.jwt
Selective Disclosure Commands¶
The genesis-mesh trust disclose sub-group (v0.35) implements Merkle-based
capability membership proofs. An agent can prove it holds a specific capability
without revealing the full capability set, the agreement, or any other capability.
genesis-mesh trust disclose commit¶
Beta.
Build and sign a Merkle commitment over an agreement’s capability set. Reveals only the root and capability count — not the capability strings.
genesis-mesh trust disclose commit \
--agreement agreement.json \
--signing-key keys/issuer.key \
--issuer operator-sovereign \
--output commitment.json
genesis-mesh trust disclose prove¶
Beta.
Generate a membership proof for one capability. The full capability list is kept local and is not embedded in the proof.
genesis-mesh trust disclose prove \
--capability "transactions.send" \
--agreement agreement.json \
--commitment commitment.json \
--prover agent-b \
--output proof.json
genesis-mesh trust disclose verify¶
Beta.
Verify a CapabilityMembershipProof against its commitment. Checks the
commitment signature, leaf hash derivation, and Merkle root reconstruction.
genesis-mesh trust disclose verify \
--proof proof.json \
--commitment commitment.json \
--verify-key issuer.pub \
[--format json]
Exit code 0 on success; 1 on failure.
genesis-mesh trust disclose nullify¶
Beta.
Issue a signed single-use CapabilityNullifier for a proof. Prevents replay
within the validity window when the verifier records used nullifier IDs.
genesis-mesh trust disclose nullify \
--proof proof.json \
--signing-key keys/agent.key \
--prover agent-b \
--valid-for 60 \
--output nullifier.json
Ephemeral Identity Purge Commands¶
The genesis-mesh trust purge sub-group (v0.42) records the deletion of
expired EphemeralExecutionIdentities. A NullificationReceipt is the purging
sovereign’s signed statement that it deleted an expired identity; it keeps no
sensitive fields. Nothing can show that a copy was destroyed. Receipts are
batched into a signed Merkle registry, so an auditor can check that a receipt
was recorded.
genesis-mesh trust purge receipt¶
Beta.
Create a signed NullificationReceipt for an expired identity.
genesis-mesh trust purge receipt \
--identity identity.json \
--purging-sovereign operator-x \
--signing-key keys/operator.key \
--output receipt.json
Fails if the identity has not yet expired. The receipt retains only
identity_id, consensus_id, identity_expired_at, purged_at,
purged_by_sovereign_id, and identity_digest.
Not retained: bearer_sovereign_id, allowed_capabilities, decision_id.
genesis-mesh trust purge register¶
Beta.
Batch receipts into a signed Merkle registry root.
genesis-mesh trust purge register \
--receipt r1.json --receipt r2.json \
--operator-sovereign operator-x \
--signing-key keys/operator.key \
--output registry.json \
--output-receipts receipts-ordered.json
--output-receipts preserves the ordered receipt list needed for proof generation.
genesis-mesh trust purge prove¶
Beta.
Generate a Merkle inclusion proof for one receipt.
genesis-mesh trust purge prove \
--receipt-id <uuid> \
--receipts-file receipts-ordered.json \
--registry registry.json \
--output proof.json
genesis-mesh trust purge verify¶
Beta.
Verify a Merkle inclusion proof. Exits 0 if valid, 1 if any check fails.
genesis-mesh trust purge verify \
--proof proof.json \
--registry registry.json \
--receipt receipt.json \
--public-key <operator-pub-b64> \
--format human
Failure reasons: registry_missing_signature, registry_invalid_signature,
root_id_mismatch, leaf_hash_mismatch, root_mismatch.