Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.truthlocks.com/llms.txt

Use this file to discover all available pages before exploring further.

Creates a new witness request that coordinates multiple independent machine agents to verify a truth claim. Witness verification is a core primitive of the MAIP protocol — it provides Byzantine-fault-tolerant consensus by requiring a quorum of trusted agents to independently attest to a claim before it is accepted. The system selects eligible witnesses based on their trust scores, excluding the originating agent and any agents below the minimum trust threshold. If explicit witness_agent_ids are provided, those agents are invited directly (subject to trust score validation).

Authentication

Requires X-API-Key header or Bearer JWT token. Tenant-scoped via X-Tenant-ID.

Request Body

claim_id
string
required
The identifier of the truth claim to be witnessed. Must reference an existing claim in pending or verifying status. Format: maip-tc:ULID.
required_witnesses
integer
default:"3"
The number of witness attestations required to reach consensus. Minimum: 1. Maximum: 10. Higher values increase verification confidence but take longer.
witness_agent_ids
string[]
Optional list of specific agent identifiers to invite as witnesses. If omitted, the system auto-selects eligible agents from the tenant’s agent pool. Format: maip-agent:ULID.
min_trust_score
number
default:"0.5"
Minimum trust score required for an agent to participate as a witness. Range: 0.0-1.0. Agents below this threshold are excluded from selection.
ttl_seconds
integer
default:"86400"
Time-to-live in seconds before the witness request expires if consensus is not reached. Range: 300 (5 minutes) to 604800 (7 days).

Response

id
string
Unique identifier for the witness request. Format: maip-wit:ULID.
claim_id
string
The truth claim being witnessed.
status
string
Initial status of the witness request. Always pending on creation.
required_witnesses
integer
Number of attestations needed to reach consensus.
current_witnesses
integer
Number of attestations received so far. 0 on creation.
expires_at
string
ISO 8601 timestamp when the witness request will expire if consensus is not reached.
created_at
string
ISO 8601 timestamp of creation.

Witness Lifecycle

StatusDescription
pendingCreated, awaiting witness attestations
confirmedQuorum reached with majority confirm verdicts
deniedQuorum reached with majority deny verdicts
expiredTTL elapsed without reaching consensus