Examples

Examples

Sample artifacts and conformance usage. Normative schema and algorithms are in the specification repository.

Test vectors

The canonical conformance corpus is tv-001 through tv-008. A verifier MUST produce the expected result for all eight to claim ACTIS v1 Verifier Conformance. The expected outcome for each vector is defined in expected_results.json in the specification repository. Vectors tv-009 through tv-011 are optional security-hardening tests. Corpus and expected_results.json live in test-vectors/ in the spec repo.

Example transcript

Demonstrates required structure: transcript_version actis-transcript/1.0, intent_id, created_at_ms, and rounds with hash chain and signature per round. Normative schema: actis_transcript_v1.json. Hash values and signatures below are illustrative placeholders and MUST be computed according to ACTIS_COMPATIBILITY.md in real implementations.

json
{
  "transcript_version": "actis-transcript/1.0",
  "transcript_id": "550e8400-e29b-41d4-a716-446655440000",
  "intent_id": "intent-001",
  "intent_type": "NEGOTIATION",
  "created_at_ms": 1709500000000,
  "policy_hash": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456",
  "strategy_hash": "b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef12345678",
  "identity_snapshot_hash": "c3d4e5f6789012345678901234567890abcdef1234567890abcdef1234567890",
  "rounds": [
    {
      "round_number": 0,
      "round_type": "INTENT",
      "message_hash": "d4e5f6789012345678901234567890abcdef1234567890abcdef1234567890ab",
      "envelope_hash": "e5f6789012345678901234567890abcdef1234567890abcdef1234567890abcd",
      "previous_round_hash": "f6789012345678901234567890abcdef1234567890abcdef1234567890abcdef",
      "round_hash": "0123456789012345678901234567890abcdef1234567890abcdef1234567890",
      "timestamp_ms": 1709500001000,
      "agent_id": "agent-1",
      "public_key_b58": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
      "signature": {
        "signer_public_key_b58": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
        "signature_b58": "4h3Jk9...",
        "scheme": "ed25519"
      }
    }
  ],
  "final_hash": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}

Example manifest

Declares ACTIS and lists core files. Paths relative, forward slashes. Optional files in optional_files do not affect pass/fail.

json
{
  "standard": { "name": "ACTIS", "version": "1.0" },
  "core_files": ["checksums.sha256", "manifest.json", "input/transcript.json"]
}

Example verification report

ACTIS_COMPATIBLE — All checks pass.

json
{
  "actis_version": "1.0",
  "actis_status": "ACTIS_COMPATIBLE",
  "signatures_ok": true,
  "hash_chain_ok": true,
  "schema_ok": true,
  "replay_ok": true,
  "checksums_ok": true,
  "warnings": []
}

ACTIS_PARTIAL — Schema, hash chain, and checksums pass; signatures missing or invalid.

json
{
  "actis_version": "1.0",
  "actis_status": "ACTIS_PARTIAL",
  "signatures_ok": false,
  "hash_chain_ok": true,
  "schema_ok": true,
  "replay_ok": true,
  "checksums_ok": true,
  "warnings": ["One or more signatures missing or invalid"]
}

ACTIS_NONCOMPLIANT — One or more of schema, hash chain, or checksums failed.

json
{
  "actis_version": "1.0",
  "actis_status": "ACTIS_NONCOMPLIANT",
  "signatures_ok": false,
  "hash_chain_ok": false,
  "schema_ok": false,
  "replay_ok": false,
  "checksums_ok": false,
  "warnings": ["Hash chain broken at round 1", "Schema validation failed"]
}

Conformance usage

  1. Clone the specification repository (test-vectors/, expected_results.json).
  2. Run your verifier over each of tv-001 through tv-008; compare actis_status and other report fields to expected_results.json.
  3. All eight must match expected outcomes for ACTIS v1 Verifier Conformance.

Reference verifier (from spec repo):

bash
# From actis-verifier-rust in the spec repo
cargo run --release -- --vectors /path/to/actis/test-vectors

Comparison logic (pseudocode):

text
For each vector in [tv-001, ..., tv-008]:
  report = run_verifier(vector_path)
  expected = expected_results[vector_id]
  assert report.actis_status == expected.actis_status
  assert report.schema_ok == expected.schema_ok
  # ... other required fields

The same corpus can be used in CI to guard conformance after changes.

Implementation guidelines

Implementers building ACTIS verifiers SHOULD follow these guidelines:

  • Deterministic JSON handling — Transcripts MUST be canonicalized using RFC 8785 before computing any hash values.
  • Strict schema validation — Transcripts SHOULD be validated against the published JSON schema before integrity verification.
  • Isolated verification — Verification SHOULD occur in a deterministic environment without network dependencies.
  • Streaming verification — Large bundles SHOULD be verified using streaming checksum validation rather than loading entire files into memory.
  • CI conformance testing — Projects implementing ACTIS SHOULD run the official test vector corpus (tv-001 through tv-008) in continuous integration to prevent regressions.
  • Version gating — Implementations SHOULD reject unsupported transcript versions rather than attempting best-effort parsing.