{
  "version": 1,
  "description": "GeoProof conformance vectors — deterministic payload hashes. Use these to verify your hashing implementation matches the canonical XYO payload-hash algorithm.",
  "algorithm": "XYO PayloadBuilder.dataHash — JSON-canonical serialization, fields sorted, schema prefix stripped, SHA-256 of the canonical bytes.",
  "note": "Payload-level hashes only. BW hashes and signatures are NOT deterministic (random nonce).",
  "vectors": {
    "presence": {
      "payload": {
        "schema": "oxyon.geoproof.presence.v1",
        "producer": "geoproof-conformance",
        "subject": "did:example:conformance-test",
        "observedAt": 1700000000000,
        "location": {
          "lat": 40.7128,
          "lon": -74.006,
          "accuracyM": 5
        },
        "method": "gps"
      },
      "dataHash": "19a121beee20c2a8acd1681eeda4e2eef04a4d46e3f299238d4ab249b72d3b17"
    },
    "attestation": {
      "payload": {
        "schema": "oxyon.geoproof.attestation.v1",
        "producer": "geoproof-conformance",
        "subject": "did:example:conformance-test",
        "observedAt": 1700000001000,
        "statement": "The subject was present at the specified location."
      },
      "dataHash": "3a01dacf35f295cc138f514ecc6f300360092ae21d08d9af31f5c29837aab93e"
    },
    "receipt_verified": {
      "payload": {
        "schema": "oxyon.geoproof.receipt.v1",
        "proofHash": "0000000000000000000000000000000000000000000000000000000000000001",
        "verifier": "0000000000000000000000000000000000000001",
        "verdict": "verified",
        "verifiedAt": 1700000002000
      },
      "dataHash": "7d92763e4e3cbabfe81962908502229d291ad21c7abbf53c5891284e6216497a"
    },
    "receipt_rejected": {
      "payload": {
        "schema": "oxyon.geoproof.receipt.v1",
        "proofHash": "0000000000000000000000000000000000000000000000000000000000000002",
        "verifier": "0000000000000000000000000000000000000001",
        "verdict": "rejected",
        "reasons": [
          "signature validation failed"
        ],
        "verifiedAt": 1700000003000
      },
      "dataHash": "315dcec302e30ebb31c65f457df6c4ba98719f328fd092ea8040d49fdf889983"
    },
    "supersession": {
      "payload": {
        "schema": "oxyon.geoproof.supersession.v1",
        "supersededHash": "0000000000000000000000000000000000000000000000000000000000000002",
        "replacementHash": "0000000000000000000000000000000000000000000000000000000000000003",
        "reason": "Original GPS reading was outside verified sensor bounds.",
        "effectiveAt": 1700000004000,
        "issuer": "0000000000000000000000000000000000000002"
      },
      "dataHash": "c40c94b861fa488d03a9b656631d7a8f4de4c5e51ae4252619e80261e27677a6"
    },
    "revocation": {
      "payload": {
        "schema": "oxyon.geoproof.revocation.v1",
        "revokedHash": "0000000000000000000000000000000000000000000000000000000000000002",
        "reason": "GPS data fabricated — identity fraudulently used.",
        "effectiveAt": 1700000005000,
        "issuer": "0000000000000000000000000000000000000002"
      },
      "dataHash": "ed2a926f4dc07567ed90993e46df740ca0baae886f3463e9bf9067550477c4f1"
    },
    "rotation": {
      "payload": {
        "schema": "oxyon.geoproof.rotation.v1",
        "oldAddress": "0000000000000000000000000000000000000001",
        "newAddress": "0000000000000000000000000000000000000002",
        "effectiveAt": 1700000006000,
        "reason": "Quarterly key rotation."
      },
      "dataHash": "7867f262a77b9ebebc12fa6d984220d5ba1a03a0e055b95d2beaa799ff58cdb3"
    }
  }
}
