> For the complete documentation index, see [llms.txt](https://developers.shredpay.xyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.shredpay.xyz/agent-wallet/concepts/address-screening.md).

# Address Screening

Every write call has its counterparties screened against OFAC and risk lists before signing. This page explains what's checked, when, and how to interpret the result.

## What gets screened

Outline:

* The `to` address on every `send_transaction`.
* Beneficiaries decoded from calldata for known function selectors (e.g. ERC-20 `transfer`, swap router recipients).
* Counterparties on `execute_swap`, `defi_deposit`, `defi_withdraw`.

## When it happens

* Before any signature is produced.
* Both for `send_transaction` and `simulate_transaction` — simulate is a safe way to pre-flight a screening check.

## Failure modes and codes

* `403 ADDRESS_BLOCKED` — counterparty is on a blocked list. The transaction is refused; funds remain in the sub-wallet.
* `403 SUB_WALLET_FROZEN` — the sub-wallet itself was frozen following a screening alert on an inbound transfer. Reach out to support to begin manual review.

## What to do on a hit

Outline:

* Read the response body for the offending address and category.
* Surface the message back to the agent / end-user — agents should treat blocks as terminal.
* Contact `support@shredpay.xyz` if you believe the block is a false positive.

## Inbound transfers

Outline:

* Funds arriving from a flagged source freeze only the receiving sub-wallet, not the user's main account.
* Resolution is manual.

This page will be expanded with concrete examples once the public screening response schema is finalized.
