Compliance

Batch wallet screening

Screen a batch of crypto wallet addresses against OFAC SDN digital currency address designations and return per-wallet results, a batch-level proceed-or-pause decision, and structured output.

Browser note: GET on this URL serves human-readable docs. Paid execution still requires POST with x402 settlement.

Returns matched and clear wallet counts, per-wallet results, source freshness, and a structured report payload for audit-ready PDF or DOCX rendering.

Example request body

Use this payload shape for the paid POST call.

{
  "addresses": [
    "0x098B716B8Aaf21512996dC57EB0615e2383E2f96",
    "0x1111111111111111111111111111111111111111"
  ],
  "asset": "ETH"
}

Request schema

The canonical body contract as exposed through discovery and OpenAPI.

{
  "type": "object",
  "properties": {
    "addresses": {
      "type": "array",
      "description": "List of crypto wallet addresses to screen against OFAC SDN digital currency designations.",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 100
    },
    "asset": {
      "type": "string",
      "description": "Optional asset or network ticker filter, such as ETH, USDC, XBT, TRX, ARB, or BSC."
    }
  },
  "required": [
    "addresses"
  ],
  "additionalProperties": false
}

Example response

A representative output payload for the route.

{
  "success": true,
  "data": {
    "query": {
      "addresses": [
        "0x098B716B8Aaf21512996dC57EB0615e2383E2f96",
        "0x1111111111111111111111111111111111111111"
      ],
      "normalizedAddresses": [
        "0x098b716b8aaf21512996dc57eb0615e2383e2f96",
        "0x1111111111111111111111111111111111111111"
      ],
      "asset": "ETH"
    },
    "summary": {
      "totalScreened": 2,
      "matchCount": 1,
      "clearCount": 1,
      "manualReviewRecommended": true,
      "workflowStatus": "manual_review_required"
    },
    "results": [
      {
        "query": {
          "address": "0x098B716B8Aaf21512996dC57EB0615e2383E2f96",
          "normalizedAddress": "0x098b716b8aaf21512996dc57eb0615e2383e2f96",
          "asset": "ETH"
        },
        "summary": {
          "status": "match",
          "matchCount": 1,
          "exactAddressMatch": true,
          "manualReviewRecommended": true
        }
      },
      {
        "query": {
          "address": "0x1111111111111111111111111111111111111111",
          "normalizedAddress": "0x1111111111111111111111111111111111111111",
          "asset": "ETH"
        },
        "summary": {
          "status": "clear",
          "matchCount": 0,
          "exactAddressMatch": false,
          "manualReviewRecommended": false
        }
      }
    ],
    "sourceFreshness": {
      "sourceUrl": "https://www.treasury.gov/ofac/downloads/sanctions/1.0/sdn_advanced.xml",
      "refreshedAt": "2026-04-06T02:00:00.000Z",
      "datasetPublishedAt": "2026-04-06T02:00:00.000Z",
      "addressCount": 2,
      "coveredAssets": [
        "ETH",
        "XBT"
      ]
    },
    "screeningOnly": true
  },
  "source": "OFAC SDN Advanced XML"
}

cURL

Use this as the starting point for HTTP execution after the initial 402 challenge.

curl -X POST "https://api.aurelianflo.com/api/workflows/compliance/batch-wallet-screen" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  # include x402 settlement headers after the initial 402 challenge \
  -d '{
  "addresses": [
    "0x098B716B8Aaf21512996dC57EB0615e2383E2f96",
    "0x1111111111111111111111111111111111111111"
  ],
  "asset": "ETH"
}'

Related routes

Use these when you want the lower-level primitive, the buyer-facing memo workflow, or the agent install surface around this endpoint.