---
title: "Wallet Compliance Report"
method: GET
path: "/v1/wallets/compliance/{address}"
tags: ["wallets"]
---

# Wallet Compliance Report

`GET /v1/wallets/compliance/{address}`

## Request

- Base URL: `https://api.bitpoort.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.bitpoort.com/v1/wallets/compliance/{address}`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Generate a compliance risk report for a wallet address.

``risk_score`` is the maximum of the named ADVERSE lanes in ``risk_breakdown`` (sanctions match,
sanctioned counterparties, behavioral intents, other adverse risk flags) — so the headline never
disagrees with its breakdown, and benign heuristics (volume, wallet class) never drive it. A mixer touch
is DISCLOSED in ``mixer_touch`` but does NOT score (its authorship is unverified — direction-agnostic
with no dusting filter — so, mirroring the signed report, an inbound dusting victim never reads elevated
here). Likewise the profiler's unverified ``sanctioned_interaction`` remnant-label flag is DISCLOSED,
non-scoring, in ``sanctioned_interaction`` (the live sanctioned-counterparties lane does the real
scoring). ``sanctions_screened`` is always true (that lane runs live for every address);
``risk_lanes_screened`` is true only when a wallet profile was available to assess the behavioral/flag
lanes — when it is false and nothing was found, ``risk_level`` is ``"unknown"`` (unscreened), never
``"low"``. A malformed address returns 422.

## Path parameters

- `address` string, required

## Query parameters

- `chain` string: Chain to check

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/bitpoort/apis/bitpoort-api.md) · [All operations](https://skmtc.dev/bitpoort/apis/bitpoort-api/llms.txt) · [OpenAPI document](https://skmtc.dev/bitpoort/apis/bitpoort-api/revisions/1a51d8566777?raw)
