When to use this
Reach for this when the badge is not enough, when you want the read as data and full control over what happens next. Your own badge design. Your own warning copy. Your own rule for what a given tier means in your product.Which endpoint
Base (Arc):
https://www.trustgated.xyz. Open CORS on widget, batch, and oracle.
Sui coin read (mainnet coin types):
Widget score (single ERC-20)
400 invalid_address, 429 rate_limited, 502 detection_failed / scoring_unavailable.
Batch score (discovery)
{ results: [...] }):
tier is BLOCKED | LOW | MEDIUM | HIGH | ELITE | VERIFIED. An error field marks addresses that are not tokens. Official issuers come back as VERIFIED with score: 100 here — the widget path returns score: null for the same assets. See Optional reorder for ranking.
Errors: 400 invalid_json | addresses_required | too_many_addresses | invalid_addresses, 429 rate_limited, 502 batch_failed.
Oracle (wallet)
402 with payment details. Paid replay: X-Payment header. Hardened 200 body (breakdown stripped):
400 with code: "CONTRACT_NOT_WALLET". Full payment dance: Oracle.
Using the read
Map the tier to whatever your product shows — a color, a label, a gate. Use the numeric score where you want finer-grained display. Use flags as the reason line. Use confidence as a “how loud is this” slider. PinscoringVersion if you gate.
Top tiers may come back without a useful number. NTT is not a trust tier. HIGH_ELITE and ELITE are the same top behavioral tier.
This is still the non-invasive model. You are pulling a signal and deciding everything downstream. TrustGate has no opinion about how your product uses it.
Next
Oracle payment flow
x402 challenge, settle, replay.
Full API reference
Every path, including gating and Guard.
