Base URL and authentication
Your Cardinal onboarding contact provides the correct API base URL and an environment-specific API key.x-api-key header:
Check a transaction
Required fields
Optional fields
Supported chains
Supported input does not imply every network has identical live intelligence coverage during the pilot.
Response
A successful check returns a stable response shape:Decision handling
Use the score as the summary, findings as the reasons, and
recommended_action as the decision. Do not make application decisions from risk_score alone.Review example
Block example
Findings
Each finding explains a specific reason for the decision.
During the current pilot, intelligence uses deterministic, explainable local checks. Examples include additional review for a large transfer to a recipient with little Cardinal history, review for an unverified upgradeable contract, and blocking an unverified contract requesting admin-level permissions.
Rate limits
Protected transaction checks return rate-limit headers:Errors
Missing or invalid API key
Missing API key or Invalid API key.
Rate limit exceeded
Validation or service failure
Treat any non-success response as a failed protection check. Display a real error, retain therequest_id when one is available, and do not silently substitute a mock verdict.
Integration sequence
Health check
Current capability boundary
The connected backend currently provides request validation, API-key authentication, network validation, deterministic risk scoring, local wallet and contract signals, stable findings, usage logging, and single-instance rate limiting. It is not yet a full production on-chain simulation or threat-intelligence platform. Planned production layers include RPC-backed simulation, decoded token movement changes, external scam and threat feeds, external contract verification, official contract allowlists, shared rate limiting, and partner-specific policies.Run your first check
Follow the Protection API Quickstart.

