Base
www host. JSON in, JSON out. Cache-Control: no-store on score paths.
CORS is open (*) on widget, batch, and oracle. Gating and Protocol Guard send no CORS headers. Call them from your backend. A third-party browser origin will fail.
Arc paths below are Arc Testnet unless noted. Sui is a separate app (https://sui.trustgated.xyz) with its own widget and coin API.
At a glance
Widget score
address must match ^0x[0-9a-fA-F]{40}$.
Default IP cap: 8 requests / minute. OPTIONS enabled.
Batch
BatchScore[]:
invalid_json, addresses_required, too_many_addresses (+ max), invalid_addresses, rate_limited, batch_failed.
Oracle — wallet
402 with payment details (0.001 USDC, arc-testnet). Replay with X-Payment. See Oracle.
Contract on unpaid challenge:
address, score, tier, recommendation, confidence, flags, summary, publicExplain, protocolExplain, scoreStability, directionDrivers, snapshotId, scoringVersion (v1.0 on oracle; testnet-wallet-v1.0 on attestations), queriedAt, optional limitations. Raw breakdown is stripped.
Other errors: 422 bad proof, 502 proxy / upstream.
Oracle — token
NFT
400 invalid address, 502 Arcscan failure.
Gating
POST /api/gating/attest
201 { attestation, pricing: "free", disclaimer, note? }. Errors: invalid_json, invalid_subject, attest_failed.
POST /api/gating/verify
{ valid, reasons, …, disclaimer }. Errors: invalid_json, attestation_required.
POST /api/gating/check
Requires wallet plus ladder.bands (or testnet-only ladderPreset). Mainnet rejects presets, requires protocolId, forces multi-factor ack.
Returns ladder evaluation (allowed, allowedByCallerLadder, policySource: "caller_ladder", scoreIsAuthoritative: true), scores, attestation, guidance, disclaimer.
Errors: invalid_wallet, ladder_required, ladder_preset_forbidden, protocol_id_required, check_failed.
Full types: Gate with attestations.
Protocol Guard
POST /api/protocol-guard/check
404 registration_not_found if a bad subscriptionId is sent. Otherwise always attempts a check (pricing: "free").
POST /api/protocol-guard/subscribe
201 includes manageToken once.
GET /api/protocol-guard/subscriptions
- List (no id): thin
{ id, protocolName, status }rows. No channel secrets. - One registration:
?id=sub_…plus manage token viaAuthorization: Bearer …,?token=, or body. Returns subscription (channels redacted to booleans), last 20 alerts, last 20 onchain events.401/404otherwise.
Staking
StakingSignal. Leaderboard → ranked { rank, wallet, committedScore, totalPoints, … }. 400 invalid_address, 502 staking_analysis_failed.
Snapshots
limit clamped to 1–50. 404 not_found for unknown ids.
Platform-only (do not integrate)
POST /api/graph-trust is the Intuition proxy for the hosted Oracle / Token Shield toggle. It is not a public integrator API and is not covered by SLA or CORS guarantees for third parties.
GET /api/stats and GET /api/agent-status power the marketing site counters (oracle queries, claims, USDC moved). They are not a product API.
GET /api/arc-score/{address} is an internal local scorer used by the agent loop. It can include a raw formula breakdown. Do not call it from a product. Use /api/oracle/{address} instead.
Sui HTTP
Sui widget:
https://sui.trustgated.xyz/widget.js + data-trustgate-coin. Onchain reads: devInspect against the testnet ScoreRegistry. Details: Sui and capability gate.
Shared vocabulary
Next
Pick a guide
Widget, oracle, gating, contracts.
FAQ
Pricing, gaming, graphs, mainnet.
