Skip to main content

When to use this

Use Protocol Guard when you want a context-aware check (borrow, vote, treasury) and optional alerts, and you do not need a signed attestation. If you need something a contract can verify, use gating instead.

Anonymous check

Works with no registration. No CORS — call from your backend. On testnet, an unpaid/unavailable oracle falls back to score 50. Mainnet fails closed. Registrations and alerts are in-process memory.
context: borrow | vote | governance_vote | dex_swap | api_execution | treasury_control | generic. Unknown values fall back to generic. Optional overrides: minScore, minConfidence, voteClusterThreshold, proposalId, recentVoters, capitalAccess, subscriptionId, protocolName. Response includes:
Recommended default floors live on the product page. They are defaults. You own policy.

Register (optional)

Rule types: lending_low_trust_borrow, dao_coordinated_vote, wallet_score_floor, token_flag_watch. 201 returns the subscription including manageToken once. Store it. You need it to GET-by-id or PATCH via /api/protocol-guard/subscriptions (Authorization: Bearer <token>, or ?token=). Omit subscriptionId on later checks and they still work (anonymous free config).
Registrations live in process memory. They vanish on restart and do not span Vercel isolates. Fine for a pilot. Not a production pager.

Next

Protocol Guard product

Contexts, surface area, and status.

Attestations

When you need a signature, not an alert.