> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# 钱包筛查 API：按需进行加密货币 AML 检测

> Didit 可对单个加密货币钱包地址进行 AML 风险筛查，无需创建交易。涵盖资金来源、制裁风险与风险评分，按次计费，起价 $0.02。



钱包筛查 API 提示词
        将提示词复制到剪贴板



      
      

\<pre>

\`Screen a single crypto wallet address for AML risk through the Didit Management API, without creating a transaction.

Endpoint:
POST https://verification.didit.me/v3/wallet-screening/

Authentication:
Use the x-api-key header with my Didit API key.

Goal:
\- Run on-demand AML screening on one crypto address and return a normalised risk result (risk_score, severity, sanctions_hit, source/destination of funds, counterparty connections). Nothing is written to the transactions table.

When to call:
\- Before onboarding a customer's deposit/withdrawal wallet, to pre-check exposure.
\- Any time you need a standalone risk read on an address and do NOT have (or do not want to record) a transaction.
\- For transaction-coupled monitoring instead, use POST /v3/transactions/ with currency_kind = "crypto".

Prerequisites:
\- Transaction monitoring must be configured for the application with a managed provider or an existing provider key. Otherwise the call returns 409.

Request body (application/json):
\{
"wallet_address": "0x94f1b9b64e2932f6a2db338f616844400cd58e8a",  // required; alias: address
"blockchain": "ETH",   // required; one of BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE, OP, ARB, AVAX, ADA, XLM, HBAR, USDT, USDC, or a common network name such as POLYGON or BSC; alias: currency
"direction": "inbound" // optional; inbound | outbound | deposit | withdrawal
}

Example call:
curl -X POST "https://verification.didit.me/v3/wallet-screening/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"wallet_address":"0x94f1b9b64e2932f6a2db338f616844400cd58e8a","blockchain":"ETH"}'

What to read from the response:
\- risk_score (0-100, higher = riskier) and severity (UNKNOWN | LOW | MEDIUM | HIGH | CRITICAL).
\- sanctions_hit (boolean) and dominant_risk_category.
\- source_of_funds / destination_of_funds / counterparty_connections for the exposure breakdown.

Billing:
\- One AML monitoring usage is billed per successful screening. Sandbox applications are not billed.

Failure modes:
\- 400 - malformed wallet address, missing wallet_address, or unsupported blockchain.
\- 401 - missing or malformed x-api-key.
\- 409 - no AML provider configured for the application; configure transaction monitoring first.
\- 502 - provider could not complete the screening; retry later.

For automatic, transaction-coupled crypto screening, see /transaction-monitoring/aml-screening.`

\</pre>



      
      

粘贴到



## OpenAPI

````yaml zh/openapi-25.json POST /v3/wallet-screening/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: 身份证件验证 API。使用 x-api-key 请求头进行身份验证。
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/wallet-screening/:
    post:
      tags:
        - Transactions
      summary: 筛查地址
      description: >-
        为单个加密货币钱包/地址运行按需 AML
        筛查，而无需创建交易。解析您应用配置的区块链分析提供商，同步筛查该地址，并返回规范化风险结果。LIGHTNING 仅在使用通过
        Marketplace 添加的 Elliptic 或 Chainalysis BYOK
        连接时可用。不会向交易表写入任何内容。每次成功的筛查将计费一次 AML 监控用量（沙盒应用不计费）。
      operationId: screenWallet
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - wallet_address
              properties:
                wallet_address:
                  type: string
                  description: >-
                    要筛查的加密货币地址或网络标识符。必须与所选网络匹配（例如 EVM 链上以 `0x` 开头的 40
                    位十六进制字符地址）。别名：`address`。
                  example: '0x94f1b9b64e2932f6a2db338f616844400cd58e8a'
                blockchain:
                  type: string
                  description: >-
                    可选的网络标识符。省略时，网络将根据地址格式读取：`bc1`、`1` 和 `3` 开头的地址为比特币（BTC），`T`
                    开头的地址为波场（TRX），base58 公钥为 Solana（SOL）。`0x` 开头的地址在所有 EVM
                    网络上均有效，因此省略 `blockchain` 会返回 422 状态码，并在 `candidate_chains`
                    中列出候选网络。托管筛查支持
                    BTC、ETH、LTC、XRP、BCH、DOGE、TRX、SOL、MATIC、BNB、BASE (Base)、OP
                    (Optimism)、ARB (Arbitrum One)、AVAX (Avalanche C-Chain)、ADA
                    (Cardano)、XLM (Stellar) 和 HBAR (Hedera)。USDT 和 USDC
                    为旧版以太坊别名，不支持多网络搜索。关联提供商的覆盖范围各有不同。LIGHTNING 需要受支持的关联提供商。CELO
                    (Celo)、MODE (Mode) 和 PLUME (Plume) 通过关联的 TRM Labs
                    账户进行筛查；托管筛查对它们会返回 400。别名：`currency`。
                  enum:
                    - BTC
                    - LIGHTNING
                    - ETH
                    - LTC
                    - XRP
                    - BCH
                    - DOGE
                    - TRX
                    - SOL
                    - MATIC
                    - BNB
                    - USDT
                    - USDC
                    - BASE
                    - OP
                    - ARB
                    - AVAX
                    - ADA
                    - XLM
                    - HBAR
                    - CELO
                    - MODE
                    - PLUME
                  example: ETH
                direction:
                  type: string
                  description: >-
                    可选。该地址是作为入账（充值）还是出账（提现）交易对手进行筛查。接受
                    `inbound`、`outbound`、`deposit` 或
                    `withdrawal`。省略时默认为中立的转账前筛查。该参数仅作为上下文传递给提供商；它不会改变返回的
                    `risk_score`、`severity` 或
                    `source_of_funds`/`destination_of_funds` 明细，无论 `direction`
                    为何值，这两项明细均会返回。因此，更改或省略 `direction` 无需对地址重新进行筛查。
                  enum:
                    - inbound
                    - outbound
                    - deposit
                    - withdrawal
            example:
              wallet_address: '0x94f1b9b64e2932f6a2db338f616844400cd58e8a'
              blockchain: ETH
      responses:
        '200':
          description: 标准化的钱包筛查结果。
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WalletScreeningResult'
              example:
                provider: merklescience
                screening_type: WALLET_SCREENING
                risk_score: 95
                severity: CRITICAL
                status: SCREENED
                summary: >-
                  Merkle Science risk: Critical (5/5). SANCTIONS HIT. Dominant
                  risk: sanctioned. Driven by: the address is attributed to
                  Sanctions / OFAC (Example Sanctions)
                wallet_address: '0x94f1b9b64e2932f6a2db338f616844400cd58e8a'
                transaction_hash: null
                blockchain: ETH
                block_timestamp: null
                total_value_usd: null
                fee_usd: null
                sender_rows: []
                receiver_rows: []
                transaction_flows: []
                transaction_flows_status: null
                transaction_flows_error: null
                source_of_funds:
                  - category: sanctioned
                    percentage: 100
                    amount_usd: 9813695
                    entity_name: Example Sanctions
                    entity_type: Sanctions
                    entity_subtype: OFAC
                    hops: null
                    description: Sanctions / OFAC
                    is_direct: true
                    exposure_direction: incoming
                    exposure_type: direct
                    provider_entity_id: '118885'
                    provider_entity_type_id: '30'
                    provider_entity_subtype_id: '125'
                    country: ''
                    raw_amount: null
                    raw_currency: null
                destination_of_funds:
                  - category: defi
                    percentage: 84.824453
                    amount_usd: 7783414.38
                    entity_name: Example DeFi 7
                    entity_type: DeFi
                    entity_subtype: Bridges
                    hops: null
                    description: DeFi / Bridges
                    is_direct: false
                    exposure_direction: outgoing
                    exposure_type: indirect
                    provider_entity_id: '118459'
                    provider_entity_type_id: '33'
                    provider_entity_subtype_id: '143'
                    country: ''
                    raw_amount: null
                    raw_currency: null
                  - category: defi
                    percentage: 15.175547
                    amount_usd: 1392494.37
                    entity_name: Example DeFi 2
                    entity_type: DeFi
                    entity_subtype: Yield Aggregator
                    hops: null
                    description: DeFi / Yield Aggregator
                    is_direct: false
                    exposure_direction: outgoing
                    exposure_type: indirect
                    provider_entity_id: '90192'
                    provider_entity_type_id: '33'
                    provider_entity_subtype_id: '142'
                    country: ''
                    raw_amount: null
                    raw_currency: null
                counterparty_connections:
                  - entity_name: Example Sanctions
                    entity_type: Sanctions
                    entity_subtype: OFAC
                    risk_level: critical
                    categories:
                      - sanctioned
                    received_usd: null
                    sent_usd: null
                    received_hops: null
                    sent_hops: null
                    percentage: 0
                    is_direct: true
                    country: null
                    provider_entity_id: null
                  - entity_name: Example Sanctions
                    entity_type: Sanctions
                    entity_subtype: OFAC
                    risk_level: critical
                    categories:
                      - sanctioned
                    received_usd: null
                    sent_usd: null
                    received_hops: null
                    sent_hops: null
                    percentage: 0
                    is_direct: true
                    country: null
                    provider_entity_id: null
                network_nodes: []
                network_edges: []
                sanctions_hit: true
                pep_counterparty: null
                dominant_risk_category: sanctioned
                risk_factors:
                  - source: attribution
                    category: sanctioned
                    label: Sanctions / OFAC
                    entity_name: Example Sanctions
                    direction: attribution
                    exposure_type: attribution
                    amount_usd: null
                    percentage: 0
                    is_high_risk: true
                    description: >-
                      the address is attributed to Sanctions / OFAC (Example
                      Sanctions)
                  - source: exposure
                    category: sanctioned
                    label: Sanctions / OFAC
                    entity_name: Example Sanctions
                    direction: incoming
                    exposure_type: direct
                    amount_usd: 9813695
                    percentage: 51.679304
                    is_high_risk: true
                    description: >-
                      51.6793% direct incoming exposure to Sanctions / OFAC
                      (Example Sanctions)
                  - source: exposure
                    category: defi
                    label: DeFi / Bridges
                    entity_name: Example DeFi 7
                    direction: outgoing
                    exposure_type: indirect
                    amount_usd: 7783414.38
                    percentage: 40.987766
                    is_high_risk: false
                    description: >-
                      40.9878% indirect outgoing exposure to DeFi / Bridges
                      (Example DeFi 7)
                  - source: exposure
                    category: defi
                    label: DeFi / Yield Aggregator
                    entity_name: Example DeFi 2
                    direction: outgoing
                    exposure_type: indirect
                    amount_usd: 1392494.37
                    percentage: 7.33293
                    is_high_risk: false
                    description: >-
                      7.33293% indirect outgoing exposure to DeFi / Yield
                      Aggregator (Example DeFi 2)
                raw_response:
                  ...: provider-specific details
                report_signature: <hmac-sha256 over the result, scoped to your application>
        '400':
          description: >-
            验证错误 — 钱包地址格式错误、缺少 `wallet_address`、不受支持的 `blockchain`、地址格式未指明网络时省略了
            `blockchain`，或者在未建立 Elliptic 或 Chainalysis BYOK Marketplace
            连接的情况下使用了 LIGHTNING。
        '401':
          description: '`x-api-key` 缺失或无效。'
        '409':
          description: 该应用未配置 AML 提供商，或配置的提供商尚不支持钱包筛查。请先配置交易监控。
        '422':
          description: >-
            对于 `0x` 地址省略了 `blockchain`，所有 EVM 网络均共享该地址格式。未进行任何筛查或计费；请将
            `blockchain` 设置为 `candidate_chains` 之一后重新发送。
          content:
            application/json:
              schema:
                type: object
                properties:
                  blockchain:
                    type: array
                    items:
                      type: string
                    example:
                      - >-
                        A 0x address is valid on every EVM chain. Send
                        blockchain as one of: ETH, BNB, MATIC, BASE, ARB, OP,
                        CELO, MODE, PLUME.
                  candidate_chains:
                    type: array
                    items:
                      type: string
                    example:
                      - ETH
                      - BNB
                      - MATIC
                      - BASE
                      - ARB
                      - OP
                      - CELO
                      - MODE
                      - PLUME
        '502':
          description: AML 提供商无法完成筛查。请稍后重试。
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X POST 'https://verification.didit.me/v3/wallet-screening/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "wallet_address": "0x94f1b9b64e2932f6a2db338f616844400cd58e8a",
                "blockchain": "ETH"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.wallet_screening.screen(
                wallet_address="0x94f1b9b64e2932f6a2db338f616844400cd58e8a",
                blockchain="ETH",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            const result = await didit.walletScreening.screen({
              wallet_address: "0x94f1b9b64e2932f6a2db338f616844400cd58e8a",
              blockchain: "ETH",
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.WalletScreening.Screen(ctx, didit.WalletScreeningScreenParams{\n\tWalletAddress: \"0x94f1b9b64e2932f6a2db338f616844400cd58e8a\",\n\tBlockchain:    didit.Some(didit.WalletScreeningScreenParamsBlockchain(\"ETH\")),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.WalletScreeningScreenParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.walletScreening().screen(WalletScreeningScreenParams.builder()
                    .walletAddress("0x94f1b9b64e2932f6a2db338f616844400cd58e8a")
                    .blockchain(WalletScreeningScreenParams.Blockchain.of("ETH"))
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            $result = $didit->walletScreening->screen([
                'wallet_address' => '0x94f1b9b64e2932f6a2db338f616844400cd58e8a',
                'blockchain' => 'ETH',
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.wallet_screening.screen(
              wallet_address: "0x94f1b9b64e2932f6a2db338f616844400cd58e8a",
              blockchain: "ETH"
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.WalletScreening.ScreenAsync(new
            WalletScreeningScreenParams

            {
                WalletAddress = "0x94f1b9b64e2932f6a2db338f616844400cd58e8a",
                Blockchain = new WalletScreeningScreenParamsBlockchain("ETH"),
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    WalletScreeningResult:
      type: object
      properties:
        provider:
          type: string
          description: 执行筛查的提供商（例如 `merklescience`、`crystal`）。
        screening_type:
          type: string
          enum:
            - WALLET_SCREENING
          description: 对于此 endpoint 始终为 `WALLET_SCREENING`。
        risk_score:
          type: integer
          description: >-
            归一化的 0-100 风险评分。分值越高表示对高风险实体的暴露越大。Merkle Science 将地址评为 0-5 级，分别对应
            0、15、35、55、75 或 95。
        severity:
          type: string
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
          description: >-
            根据 `risk_score` 派生的风险区间：`0-9` 为 UNKNOWN，`10-39` 为 LOW，`40-69` 为
            MEDIUM，`70-89` 为 HIGH，`90-100` 为 CRITICAL。`UNKNOWN`
            是最低区间，并非单独的无数据状态：`risk_score` 为 0（常见的无风险地址情况）表示无负面评估，而 1-9
            范围内的非零分数是真实存在但低于 LOW 的信号，请读取 `risk_score`，而不仅仅是查看区间。切勿将 `UNKNOWN`
            视为明确的低风险或通过评级；请勿将其显示为通过。
        status:
          type: string
          enum:
            - SCREENED
            - PENDING
            - ERROR
          description: 筛查结果状态。
        summary:
          type: string
          description: 易于阅读的筛查结果摘要。
        wallet_address:
          type: string
          description: 已筛查的地址，原样回显。
        transaction_hash:
          type: string
          nullable: true
          description: 交易筛查字段，与结果结构共用。在钱包筛查结果中始终为 `null`。
        blockchain:
          type: string
          description: 已进行筛查的区块链。
        block_timestamp:
          type: string
          nullable: true
          description: 交易筛查字段，与结果结构共用。在钱包筛查结果中始终为 `null`。
        total_value_usd:
          type: number
          nullable: true
          description: 交易筛查字段，与结果结构共用。在钱包筛查结果中始终为 `null`。
        fee_usd:
          type: number
          nullable: true
          description: 交易筛查字段，与结果结构共用。在钱包筛查结果中始终为 `null`。
        sender_rows:
          type: array
          items:
            type: object
          description: 交易筛查字段，与结果结构共用。在钱包筛查结果中始终为空。
        receiver_rows:
          type: array
          items:
            type: object
          description: 交易筛查字段，与结果结构共用。在钱包筛查结果中始终为空。
        transaction_flows:
          type: array
          items:
            type: object
          description: 交易筛查字段，与结果结构共用。在钱包筛查结果中始终为空。
        transaction_flows_status:
          type: string
          nullable: true
          description: 交易筛查字段，与结果结构共用。在钱包筛查结果中始终为 `null`。
        transaction_flows_error:
          type: string
          nullable: true
          description: 交易筛查字段，与结果结构共用。在钱包筛查结果中始终为 `null`。
        source_of_funds:
          type: array
          description: 该地址从何处接收资金，按实体归因。每个条目都是一个风险敞口明细。
          items:
            type: object
            properties:
              category:
                type: string
                description: >-
                  归一化的风险类别，例如
                  `exchange_licensed`、`dex`、`defi`、`payment_processor`、`mixer`、`darknet_market`、`sanctioned`、`stolen_funds`、`high_risk_exchange`。
              percentage:
                type: number
                description: 该方向总风险敞口的占比，0-100。
              amount_usd:
                type: number
                nullable: true
                description: 归属于该实体的美元价值。
              entity_name:
                type: string
                nullable: true
                description: 归属实体的名称，例如交易所、混币器或受制裁群体。
              entity_type:
                type: string
                nullable: true
                description: 提供商实体类型（例如 `Exchange`、`DeFi`、`Sanctions`、`Theft`）。
              entity_subtype:
                type: string
                nullable: true
                description: >-
                  更细粒度的子类型（例如 `Mandatory KYC and AML`、`OFAC`、`Yield
                  Aggregator`）。
              hops:
                type: integer
                nullable: true
                description: >-
                  当提供商报告跳数时，到实体的跳数（直接交易对手为 1）。Merkle Science 始终为
                  `null`，因为它仅报告暴露是直接还是间接：请使用 `exposure_type`。
              description:
                type: string
                nullable: true
                description: '`entity_type / entity_subtype`，按提供商对主体的标注。'
              is_direct:
                type: boolean
                description: 当 `exposure_type` 为 `direct` 时为 true。
              exposure_direction:
                type: string
                enum:
                  - incoming
                  - outgoing
                  - connected
                description: 资金是来自该实体（`incoming`）还是流向该实体（`outgoing`）。
              exposure_type:
                type: string
                enum:
                  - direct
                  - indirect
                description: '`direct`（1 跳）或 `indirect`（多跳）风险敞口。'
              provider_entity_id:
                type: string
                nullable: true
                description: 服务商自身针对该实体的标识符。
              provider_entity_type_id:
                type: string
                nullable: true
                description: 服务商自身针对 `entity_type` 的标识符。
              provider_entity_subtype_id:
                type: string
                nullable: true
                description: 服务商自身针对 `entity_subtype` 的标识符。
              country:
                type: string
                nullable: true
                description: 实体的首要 ISO 3166-1 alpha-2 国家/地区。提供商未知时为空或 `null`。
              raw_amount:
                type: number
                nullable: true
                description: 以资产自身单位表示的金额（当提供商报告时）。
              raw_currency:
                type: string
                nullable: true
                description: '`raw_amount` 的单位，在提供商报告该单位时提供。'
        destination_of_funds:
          type: array
          description: >-
            该地址向何处发送资金，按实体归因。条目格式与 `exposure_direction` = `outgoing` 的
            `source_of_funds` 相同。
          items:
            type: object
            properties:
              category:
                type: string
                description: >-
                  归一化的风险类别，例如
                  `exchange_licensed`、`dex`、`defi`、`payment_processor`、`mixer`、`darknet_market`、`sanctioned`、`stolen_funds`、`high_risk_exchange`。
              percentage:
                type: number
                description: 该方向总风险敞口的占比，0-100。
              amount_usd:
                type: number
                nullable: true
                description: 归属于该实体的美元价值。
              entity_name:
                type: string
                nullable: true
                description: 归属实体的名称，例如交易所、混币器或受制裁群体。
              entity_type:
                type: string
                nullable: true
                description: 提供商实体类型（例如 `Exchange`、`DeFi`、`Sanctions`、`Theft`）。
              entity_subtype:
                type: string
                nullable: true
                description: >-
                  更细粒度的子类型（例如 `Mandatory KYC and AML`、`OFAC`、`Yield
                  Aggregator`）。
              hops:
                type: integer
                nullable: true
                description: >-
                  当提供商报告跳数时，到实体的跳数（直接交易对手为 1）。Merkle Science 始终为
                  `null`，因为它仅报告暴露是直接还是间接：请使用 `exposure_type`。
              description:
                type: string
                nullable: true
                description: '`entity_type / entity_subtype`，按提供商对主体的标注。'
              is_direct:
                type: boolean
                description: 当 `exposure_type` 为 `direct` 时为 true。
              exposure_direction:
                type: string
                enum:
                  - incoming
                  - outgoing
                  - connected
                description: 资金是来自该实体（`incoming`）还是流向该实体（`outgoing`）。
              exposure_type:
                type: string
                enum:
                  - direct
                  - indirect
                description: '`direct`（1 跳）或 `indirect`（多跳）风险敞口。'
              provider_entity_id:
                type: string
                nullable: true
                description: 服务商自身针对该实体的标识符。
              provider_entity_type_id:
                type: string
                nullable: true
                description: 服务商自身针对 `entity_type` 的标识符。
              provider_entity_subtype_id:
                type: string
                nullable: true
                description: 服务商自身针对 `entity_subtype` 的标识符。
              country:
                type: string
                nullable: true
                description: 实体的首要 ISO 3166-1 alpha-2 国家/地区。提供商未知时为空或 `null`。
              raw_amount:
                type: number
                nullable: true
                description: 以资产自身单位表示的金额（当提供商报告时）。
              raw_currency:
                type: string
                nullable: true
                description: '`raw_amount` 的单位，在提供商报告该单位时提供。'
        counterparty_connections:
          type: array
          description: >-
            提供商将筛查地址归属到的实体。对于 Merkle
            Science，这些信息来自地址自身的所有者和用户标签，因此同一实体可能会出现两次，并且它们不携带资金流：`received_usd`、`sent_usd`、`received_hops`
            和 `sent_hops` 均为 `null`，且 `percentage` 为 0。请勿在此根据 `risk_level` 或
            `is_direct` 进行路由：请使用 `sanctions_hit`、`dominant_risk_category` 和
            `risk_factors[].is_high_risk` 获取判定结果，并在
            `source_of_funds`/`destination_of_funds` 中使用 `exposure_type` 判断直接性。
          items:
            type: object
            properties:
              entity_name:
                type: string
                nullable: true
                description: 归属实体名称。
              entity_type:
                type: string
                nullable: true
                description: 提供商实体类型。
              entity_subtype:
                type: string
                nullable: true
                description: 提供商实体子类型。
              risk_level:
                type: string
                description: >-
                  小写且取决于提供商。对于 Merkle Science，它是地址自身的 0-5
                  级风险评级（`no_risk`、`low`、`medium_low`、`medium`、`high`、`critical`），当实体的类别为高风险时，该评级提升为
                  `high`；这不是该实体的独立评级。
              categories:
                type: array
                items:
                  type: string
                description: 实体的归一化风险类别。
              received_usd:
                type: number
                nullable: true
                description: 从实体收到的美元金额（服务商报告时）。
              sent_usd:
                type: number
                nullable: true
                description: 发送给实体的美元金额（服务商报告时）。
              received_hops:
                type: integer
                nullable: true
                description: 至接收方实体的跳数（当服务商报告时）。
              sent_hops:
                type: integer
                nullable: true
                description: 至发送方实体的跳数（当服务商报告时）。
              percentage:
                type: number
                description: 该地址的风险敞口占比（当提供商报告时）；否则为 0。
              is_direct:
                type: boolean
                description: 对于 Merkle Science 始终为 `true`，其关联属于归属标识而非交易对手。
              country:
                type: string
                nullable: true
                description: 实体所在的国家/地区（若已知）。
              provider_entity_id:
                type: string
                nullable: true
                description: 服务商自身针对该实体的标识符。
        network_nodes:
          type: array
          items:
            type: object
          description: 用于交易筛查的暴露图谱节点。在钱包筛查结果中为空。
        network_edges:
          type: array
          items:
            type: object
          description: 用于交易筛查的暴露图谱边。在钱包筛查结果中为空。
        sanctions_hit:
          type: boolean
          description: 如果该地址存在直接或间接的制裁敞口，则为 true。
        pep_counterparty:
          type: boolean
          description: >-
            政治公众人物暴露情况。当无可用的 PEP 发现结果时为
            `null`（由于目前没有任何提供商报告此项，今天的所有结果均为该值）；仅在筛查结果明确为阴性时为 `false`。切勿将 `null`
            视为已完成的 PEP 检查。
          nullable: true
        dominant_risk_category:
          type: string
          nullable: true
          description: 权重最高的高风险类别，若无主导类别则为 `null`（例如 `sanctioned`、`mixer`、`stolen_funds`）。
        risk_factors:
          type: array
          description: >-
            `risk_score` 的排序解释：导致该判定的原因。数据源会根据自身模型对地址进行评分，且仅返回判定结果（Merkle
            Science 返回 0-5
            的整数），因此仅凭该分数无法采取操作。按高风险优先排序，随后按流经各驱动因素的价值排序，最多保留五个影响最大的因素；`source_of_funds`
            和 `destination_of_funds` 始终包含完整的明细。若 `risk_score` 较高但没有
            `is_high_risk`
            条目，则表示数据源未报告任何制裁或归属实体匹配，纯粹根据其自身的风险敞口模型对该地址进行了评级，`summary` 会对此进行明确说明。
          items:
            type: object
            properties:
              source:
                type: string
                enum:
                  - attribution
                  - exposure
                description: >-
                  `attribution` 是提供商对该地址本身的归属判定（其专属标签或集群）；`exposure`
                  则是其资金实际流向的位置。
              category:
                type: string
                description: 归一化的风险类别，词汇表与暴露明细相同。
              label:
                type: string
                description: 服务商自身针对动因的表述（例如 `Gambling / Crypto only`），这也是您在服务商控制台中看到的内容。
              entity_name:
                type: string
                nullable: true
                description: 该驱动因素对应的归属实体，例如博彩网站或交易所。
              direction:
                type: string
                enum:
                  - incoming
                  - outgoing
                  - connected
                  - unknown
                  - attribution
                description: 资金流向，当驱动因素是地址自身的标签时为 `attribution`，或者当提供商未报告方向时为 `unknown`。
              exposure_type:
                type: string
                enum:
                  - direct
                  - indirect
                  - unknown
                  - attribution
                description: >-
                  `direct`（1 跳）或 `indirect`（多跳），`attribution`
                  表示地址自身的标签，当提供商未说明交易对手相距多少跳时为 `unknown`。将 `unknown` 视为未分类，而非
                  `direct`。
              amount_usd:
                type: number
                format: float
                nullable: true
                description: 归属于该驱动因素的美元价值。
              percentage:
                type: number
                format: float
                description: >-
                  该地址经筛查的总量占比（双向合计），不同于 `source_of_funds`/`destination_of_funds`
                  内部按方向归一化的 `percentage`。在整个列表中可比且可累加。
              is_high_risk:
                type: boolean
                description: >-
                  该类别是否属于 Didit
                  认定为高风险的类别（`sanctioned`、`mixer`、`stolen_funds`、`ransomware`、`scam`、`darknet_market`、`terrorist_financing`、`child_exploitation`、`hacked_exchange`、`high_risk_exchange`、`seized_funds`）。
              description:
                type: string
                description: >-
                  动因的单行展示，例如 `9.01% indirect outgoing exposure to Gambling /
                  Crypto only (Example Gambling)`。
        raw_response:
          type: object
          additionalProperties: true
          description: 服务商自身的 payload。其格式因服务商而异，且可能随时更改：请读取规范化字段，而不是直接解析它。
        report_signature:
          type: string
          description: >-
            针对此确切结果的不透明 HMAC-SHA256
            签名，作用域限定于您的应用。该字段本身无单独意义，请将未经修改且包含此字段的完整响应体重新发送至 `POST
            /v3/wallet-screening/pdf/` 以将其渲染为 PDF。如果缺失 `report_signature`
            或在重新发送前修改了任何已签名字段（例如 `risk_score`、`severity`、`sanctions_hit`），PDF
            endpoint 将拒绝请求并返回 `400`。
      required:
        - provider
        - screening_type
        - risk_score
        - severity
        - status
        - summary
        - wallet_address
        - blockchain
        - sanctions_hit
        - dominant_risk_category
        - source_of_funds
        - destination_of_funds
        - counterparty_connections
        - report_signature
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        您的应用 API 密钥，可在 Business Console 的“开发者 -> API
        密钥”中获取。主密钥拥有完整访问权限。指定名称的密钥可设置作用域：针对每个资源设为无权限、只读或读写，限定于特定工作流或已通过的会话、限定于
        IP 地址列表，以及设置到期日期。401 表示密钥错误、已撤销或已过期；403 表示未发送密钥、密钥无权访问该资源或操作，或请求来自其 IP
        列表之外的地址；在会话路由上返回 404 表示该会话不在该密钥允许的工作流或状态范围内。没有媒体访问权限的密钥获取到的图片、视频和 PDF
        URL 将为 null；没有会话写入权限的密钥获取到的会话链接和 token 将为 null。请参阅
        https://docs.didit.me/console/api-keys。

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.