---
title: "Screen an address with TRM"
method: POST
path: "/v3/compliance/address-screening"
tags: ["Compliance"]
---

# Screen an address with TRM

`POST /v3/compliance/address-screening`

Screens an EVM address using TRM and the versioned Euler policy. The endpoint
requires an active, unexpired restricted API key with the `compliance:screen`
capability and applies a dedicated per-key limit of 100 requests per minute by
default. Results can reuse
a fresh evaluation for the configured window (24 hours by default), while every
capability-authorized request, including requests rejected before provider screening,
is retained in the screening audit history. The service fails closed with 503 when screening cannot
produce a trustworthy result or when production enablement is off.

## Request body

- AddressScreeningRequest
  - `address` string, required
  - `chain` string — TRM chain identifier. Defaults to `all`, which screens the address across every chain TRM supports; pass a single-chain identifier (e.g. `ethereum`) to narrow the scope.
  - `vpnIsUsed` boolean, nullable — Optional VPN-detection flag retained for audit. Omit or send null when not measured.

## Response `200`

Address screening result.

- object
  - `data` AddressScreeningResponse, required
    - `address` string, required — EIP-55 checksummed address.
    - `addressIsSuspicious` boolean, required
    - `screenedAt` string, date-time, required
    - `resolvedChain` string, required — Chain accepted by TRM after its compatibility fallback, if required.
    - `cached` boolean, required
    - `ruleVersion` string, required
  - `meta` PaginationMeta, required
    - `total` integer — Exact total count when the endpoint provides one.
    - `hasMore` boolean — Indicates whether another page exists beyond the current page.
    - `offset` integer
    - `limit` integer — Echoed page size after endpoint-side clamping.
    - `timestamp` string, date-time, required
    - `chainId` string — Comma-separated chain IDs for multi-chain responses.
    - `degradedProviders` string[] — Live providers whose data is incomplete in this response.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `413` — Request body too large
- `415` — Unsupported media type
- `429` — Rate limited
- `503` — Service unavailable

## Changes

- **2026-09-02** `9e69e7cdb054` — 1 info
  - the `chain` request property default value changed from `ethereum` to `all`

[Change history](https://skmtc.dev/euler/apis/euler-data-api-v3/changes/v3/compliance/address-screening/post.md)

---

[API](https://skmtc.dev/euler/apis/euler-data-api-v3.md) · [All operations](https://skmtc.dev/euler/apis/euler-data-api-v3/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/euler/euler-data-api-v3/revisions/9e69e7cdb054/schema)
