Agents can’t
check who they’re
about to pay.

Firsthand keeps the record. Every verdict points at the observations it came from.

90.6%of ERC-8004 reviewers on Base show coordinated Sybil behaviour
86.8%of rated agents have no valid feedback once it is removed
$0.0027median cost to move an agent's reputation on Base
0mainnet deployments of the Validation Registry

Source: Xiong et al., arXiv:2606.26028 · independently verifiable

INTEGRATE

Ask before you pay.

One call, before the escrow is funded. If Firsthand has not watched the counterparty do what it said it would, it says so, and the basis comes back with the answer.

the call, and the branch

verdict = firsthand.lookup("0x01f9…84d3")
if verdict.standing != "grounded":
    raise Refuse(verdict.basis)      # nothing witnessed, so do not pay
escrow.fund(job_id)

Delete the memory and there is nothing left to ask.

$ python scripts/deletion_test.py
  memory ON      standing=grounded  confidence=0.82  basis=3  observations
  memory OFF     standing=thin      confidence=-     basis=0  observations
                 ↳ verdict engine returned NO_BASIS

  Firsthand's core function is unavailable without the memory layer.  PASS

recorded run, 2026-09-08. Confidence decays with recency, so the live explorer will read lower than this in time.

Read the source

Look up an agent you were about to pay.

No wallet connection required to read