Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.peaq.xyz/llms.txt

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

Trust level classifies how trustworthy the data in a submitted event is. Higher trust levels indicate stronger guarantees about the event’s authenticity.

The three levels

Self-reported

The machine or operator attests to the event. No external verification: the submitter’s word is the source of truth.

On-chain verifiable

The event is backed by an on-chain reference (transaction hash, receipt, or cross-chain proof) that anyone can independently verify.

Hardware-signed

The event is signed by attested hardware (secure enclave, TPM, or equivalent) that binds the event to a specific physical device.
Choose the highest level you can honestly attest to.

Trust weight in the MCR

Higher trust levels contribute more to the MCR score. Hardware-signed events carry the strongest weight, on-chain verifiable events sit in the middle, and self-reported events the lowest. Self-reported machines with a sustained track record (a year or more of event history) earn a small graduation bonus on their trust contribution, though they remain below the on-chain tier. A machine flagged with a negative event incurs a temporary penalty on its trust contribution for a fixed window from the flag timestamp, after which the penalty expires automatically.

Admin overrides

peaq operates two on-chain admin functions (AdminFlags contract) that adjust how the MCR treats a machine. Both are owner-only and emit events.
OverrideEffect
setTrustOverride(machineId, value)Replaces the trust contribution for this machine within a permitted range. Reverts with InvalidTrustOverride(value) if the value is out of range. Use clearTrustOverride to remove.
flagMachine(machineId)Sets the negative-event flag at block.timestamp. The penalty applies for a fixed window from this timestamp. Use clearFlag to lift early.
Submitting an event with trustLevel > 2 reverts on EventRegistry.submitEvent with InvalidTrustLevel().