Skip to main content
The Cardinal Protection API evaluates transaction intent before a wallet, partner application, SafeSend flow, or escrow flow asks a user to sign.
The current backend is a professional MVP for sandbox integrations and controlled pilots. Use the API host and key supplied during onboarding. Production threat feeds, full RPC simulation, external contract-verification providers, partner-specific policies, and distributed rate limiting are planned upgrades.

Base URL and authentication

Your Cardinal onboarding contact provides the correct API base URL and an environment-specific API key.
Send the key in the x-api-key header:
Keys can be assigned to a partner and environment, scoped, rate-limited, revoked, or expired. Cardinal stores API keys as hashes.
Keep API keys on a trusted backend. Never expose them in browser code, mobile bundles, browser storage, public repositories, analytics, or logs.

Check a transaction

Call this endpoint before requesting a wallet signature, token approval, or contract call.

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:
Limits may vary by pilot key. The current limiter applies to one API instance.

Errors

Missing or invalid API key

The response message indicates 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 the request_id when one is available, and do not silently substitute a mock verdict.

Integration sequence

The protection check must happen before value can move. Re-check the transaction if the recipient, chain, token, amount, contract, approval, or permissions change.

Health check

The health endpoint is public.

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.