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.
{
"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.
{
"standard": { "name": "ACTIS", "version": "1.0" },
"core_files": ["checksums.sha256", "manifest.json", "input/transcript.json"]
}
Example verification report
ACTIS_COMPATIBLE — All checks pass.
{
"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.
{
"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.
{
"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
- Clone the specification repository (
test-vectors/,expected_results.json). - Run your verifier over each of tv-001 through tv-008; compare
actis_statusand other report fields toexpected_results.json. - All eight must match expected outcomes for ACTIS v1 Verifier Conformance.
Reference verifier (from spec repo):
# From actis-verifier-rust in the spec repo
cargo run --release -- --vectors /path/to/actis/test-vectors
Comparison logic (pseudocode):
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-001throughtv-008) in continuous integration to prevent regressions. - Version gating — Implementations SHOULD reject unsupported transcript versions rather than attempting best-effort parsing.