Trust Tiers

HIGH / MEDIUM / LOW

Trust scores are a 0-100 integer on chain. The tier mapping is fixed in the contract — the score determines the tier, the tier determines how a claim routes.

Tier mapping

Classification happens in TrustScoring.getTier(agent). The thresholds are hard-coded and cannot be changed without a contract redeploy — this is deliberate, so depositors can rely on the semantic meaning of a tier across time.

HIGHScore 75 – 100

Routing

Instant transfer

Delay

None

Demo cap

$1,000 / tx

Immediate USDC transfer on claim. Reserved for agents with established track records.

MEDIUMScore 40 – 74

Routing

24-hour time-lock

Delay

86,400 s

Demo cap

$100 / tx

Claim recorded with releaseTime = now + 24h. Depositor can cancel before release. Agent claims via release(claimId) after the window.

LOWScore 0 – 39

Routing

Escrow

Delay

Awaits approval

Demo cap

$10 / tx

Funds held until the depositor explicitly calls approveEscrow(claimId). Default for newly registered agents. Cancellation is always available.

Scoring inputs

The reference scoring oracle combines three signals before writing a score on chain: direct depositor attestations (explicit rate-ups and rate-downs), derived activity signals (successful vs cancelled claims), and external reputation sources where available. The algorithm itself is off-chain in this build — only the final integer score is posted.

FHE variant

On Zama-compatible chains, TrustScoring.sol stores scores as euint8 and exposes tier lookups through encrypted comparisons. Arc Testnet lacks the Zama coprocessor, so deployment on Arc uses TrustScoringPlaintext.sol — same interface, plaintext storage.