Agent Trust Oracle — Methodology (v2, cross-chain)

Read-only trust scores for ERC-8004 agents across multiple EVM chains. Default chain is ethereum. Wired chains: base, bsc, ethereum, mantle, polygon. Values below are pulled live from scoring.py.

Score range

0 to 100. Or null when data is too thin (see refusal threshold).

Components & weights

ComponentWeightWhat it measures
value_avg0.50Mean of feedback values, normalised −100..100 → 0..100.
client_breadth0.20Log-scaled count of distinct client addresses.
volume0.15Log-scaled count of (non-revoked) feedback entries.
recency0.15Weighted mean of values with exponential block-age decay.

Refusal threshold (insufficient_data)

If the agent has fewer than 3 distinct clients, the response is score = null with status = "insufficient_data". Single largest sybil-mitigation lever.

Value normalisation (−100..100 → 0..100)

normalised_value = (clamp(value, -100, +100) + 100) / 2

Log-axis reference points

def log_axis(count, ref):
    if count <= 0: return 0.0
    return min(100, 100 * log1p(count) / log1p(ref))

Recency decay

recency_weight(block) = 0.5 ** ((latest_block - block) / 50000)

Half-life: 50,000 blocks. Block-rate varies per chain; we still apply the same half-life — older entries weigh less proportionally to that chain’s block velocity.

Final aggregate

score = value_avg * 0.50
      + client_breadth * 0.20
      + volume * 0.15
      + recency * 0.15

Identity is per-chain

We score by (chain, agent_id). We do NOT merge agent IDs across chains. A probe on 2026-06-16 found zero owner wallets with agents on more than one chain, so a cross-chain operator view has no signal today. Future work-item once that changes.

What we do NOT do (yet)

Sources (read-only)

Signatures. Every paid /agent-trust response and the free /agent-trust/preview response carry signed_by + signature. Verify with Ethereum personal_sign/ecrecover over canonical JSON (signed_by + signature stripped). Signer: 0x5e63d01d6A266BC17f577B80199a2a07B15053C7.
Disclaimer. Read-only on-chain analytics. Informational only — not investment, employment, or counterparty advice.