Skip to main content
POST
Transaction Check (KYT): decode + Tier 4 BFS + policy — submit
Auth: Authorization: Bearer aeg_… · Billing: charge-on-success, per your plan (commercial agreement)
Screen an inbound transaction the way /v2/check-address screens an address. Aegis decodes the tx, runs AML exposure analysis on each sender via Tier 4 BFS, applies the Aegis Standard policy to the USD-weighted composite, and returns PolicyAlerts. Mirrors the x402 GET /check-transfer/{chain}/{tx_hash} endpoint 1:1, at the same price.

Request

Send Idempotency-Key: <token> to make retries safe.

Synchronous, with a 202 fallback

The check waits up to ~25s for completion:
  • 200 — completed; body carries composite_result, policy_result, and a billing envelope. Charged once.
  • 202 — still running; body is { check_id, retry_url }. Fetch the result from the free GET /v2/transfer/{check_id}/result — you are billed once between the two calls.
  • 402insufficient_funds / monthly_cap_exceeded.
  • 409kyt_requires_subgroup: the key’s user has no organization / subgroup (KYT alerts + idempotency are tenant-scoped).
Charge-on-success: a parse or RPC failure returns 502 and is not charged.

Poll

Returns 200 (verdict, charged once on first successful delivery), 202 (still running), 502 (failed — no charge), or 404 (unknown / not owned by the caller).

See also

Authorizations

Authorization
string
header
required

Your aeg_… API key from the dashboard (Account → API tab).

Body

application/json
chain
string
required

ETH | BSC | POLYGON | BASE | ARBITRUM | TRON.

Required string length: 1 - 20
Examples:

"TRON"

"ETH"

tx_hash
string
required

Transaction hash (0x-prefixed 32-byte hex, or TRON 64-hex).

Required string length: 1 - 80
Example:

"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

Response

Successful Response

The response is of type Response Check Transfer Check Transfer Post · object.