Skip to content

Verification

Witness-backed chain verification.

WitnessKey dataclass

WitnessKey(did: str, public_key_hex: str)

A witness node's identity and public key.

did instance-attribute

did: str

The witness node's DID.

public_key_hex instance-attribute

public_key_hex: str

Hex-encoded Ed25519 public key of the witness.

WitnessConfig dataclass

WitnessConfig(receipts: list[str], keys: list[WitnessKey], threshold: int)

Configuration for witness quorum verification.

Examples:

config = WitnessConfig(
    receipts=[receipt1_json, receipt2_json],
    keys=[WitnessKey("did:key:z...", "ab12...")],
    threshold=2,
)

receipts instance-attribute

receipts: list[str]

JSON-serialized witness receipt strings.

keys instance-attribute

keys: list[WitnessKey]

Witness public keys to verify receipts against.

threshold instance-attribute

threshold: int

Minimum number of valid witness receipts required.

verify_chain_with_witnesses

verify_chain_with_witnesses(attestations_json: list[str], root_pk_hex: str, witnesses: WitnessConfig) -> VerificationReport

Verify an attestation chain with witness receipt quorum enforcement.

Parameters:

  • attestations_json (list[str]) –

    List of attestation JSON strings, ordered root-to-leaf.

  • root_pk_hex (str) –

    Root identity's Ed25519 public key (hex-encoded).

  • witnesses (WitnessConfig) –

    Witness configuration with receipts, keys, and threshold.

Returns:

  • VerificationReport

    VerificationReport with per-link results and witness quorum status.

Raises:

Examples:

report = verify_chain_with_witnesses(chain, root_key, config)