适用场景
钱包筛查不会向交易表写入任何内容。如果您需要将筛查结果附加到受监控的交易上(包括规则、警报和 Webhook),请改为提交交易。
前提条件
应用必须配置交易监控,可以使用托管服务商,也可以使用现有服务商密钥。请在 Business Console 中的 交易 > 设置 > Provider Preferences 进行配置。如果未配置服务商,endpoint 将返回409 Conflict。
请求
POST https://verification.didit.me/v3/wallet-screening/
使用 x-api-key 请求头进行身份验证。
链覆盖范围
托管筛查支持 Base(BASE)、Optimism(OP)和 Arbitrum One(ARB),同时支持钱包筛查和交易哈希筛查。
已接入的服务商的覆盖范围可能不同;链还必须得到您所选服务商和账户的支持。
Celo(CELO)、Mode(MODE)和 Plume(PLUME)通过已接入的 TRM Labs 账户进行筛查(Marketplace,自带密钥);托管筛查不覆盖这些网络,并返回 400。
请勿将 ETH 用于其他 EVM 网络:同一地址在每条链上的活动和风险可能不同。
使用托管筛查时,USDT 和 USDC 是以太坊的旧版别名,而不是对这些代币存在的所有网络进行搜索。
请使用网络标识符(ETH、TRX、SOL、MATIC、BNB、BASE、OP、ARB、AVAX、ADA、XLM、HBAR,或通过 TRM Labs 使用 CELO、MODE 或 PLUME)指定钱包实际所在的链。
对于已记录交易中的代币,请将代币保留在 transaction_details.currency 中,并在 transaction_details.crypto_params.crypto_chain 中单独指定网络。
参见资产与网络选择。
响应
响应是标准化的筛查结果,其结构与交易筛查返回的WALLET_SCREENING 提供方结果完全相同。
severity 的设定方式。 severity 是标准化 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 显示为明确的”安全”或”通过”。direction 不会改变风险模型。 可选的 direction 字段仅作为背景信息传递给提供方。它不影响 risk_score、severity,也不影响返回哪些明细列表:source_of_funds 和 destination_of_funds 始终都会返回。因此,更改或省略 direction 不需要对已筛查过的地址重新筛查。风险因素
risk_factors 是对”该地址为何得到这一分数”的排序解释。提供方使用自己的模型对地址评级,只返回判定结果。例如 Merkle Science 返回 0-5 的整数,因此仅凭 risk_score 无法采取行动。每个条目列出一个驱动因素,先按高风险排序,再按经过该因素的金额排序。
分数高但没有
is_high_risk 因素,是一个真实且有意义的结果。 这表示提供方仅依据其自身的风险敞口模型对地址评级,并未报告制裁、PEP 或已归属实体的匹配。列出的因素正是构成该评级的资金流向。summary 对此有明确说明,因此应将这类地址视为”需要审查资金流向”,而不是已确认的命中。risk_factors 最多只列出五个最强的驱动因素;source_of_funds 和 destination_of_funds 始终提供完整明细。risk_factors 是顶层字段,而不是嵌套字段。 在该字段出现之前完成的筛查结果不包含此键。应将其视为空列表,而不是假定其解释为空。风险敞口明细
source_of_funds / destination_of_funds 中的每一条记录,都描述该地址与之发生资金往来的一个实体:
交易对手关联
counterparty_connections 列出服务商将被筛查地址归属到的实体。对于 Merkle Science,这些实体来自地址自身的所有者标签和用户标签,因此同一实体可能出现两次,并且它们不包含资金流动:received_usd、sent_usd、received_hops 和 sent_hops 为 null,percentage 为 0.0。资金流动请从 source_of_funds 和 destination_of_funds 中读取。
示例
以下是使用 Merkle Science 对 OFAC 制裁名单上的一个地址进行筛查所得的真实响应。仅raw_response 经过缩短,report_signature 已替换:
sanctions_hit: true 可能表示钱包本身受制裁,也可能仅表示其资金存在制裁敞口,因此它本身并不意味着被筛查的钱包所有者受制裁。
当同一筛查作用于已记录的交易时,规则还可以读取 custom_values.wallet_sanctioned(仅当服务商将钱包本身归因于受制裁实体时为 true)和 custom_values.aml_sanctions_exposure_pct。
请参阅 规则的筛查字段。
请阅读 risk_factors、source_of_funds 和 destination_of_funds,以区分归因与风险敞口。
有关详细说明,请参阅 加密货币与钱包筛查。
PDF 报告
要获取某个筛查结果的 Didit 品牌 PDF,请将完全未经修改的响应正文(包括report_signature)重新提交至 POST /v3/wallet-screening/pdf/。该接口为无状态接口:不调用服务商,不产生额外费用,也不保存任何数据。在重新提交前修改任何已签名字段(risk_score、severity、sanctions_hit 等),都会失败并返回 400。
计费
每次成功筛查按与交易关联的加密货币筛查相同的费率计为一次 AML 监控用量。托管密钥和已连接密钥的费率请参阅定价。沙盒应用不计费。验证错误(400)和未配置提供商错误(409)永远不计费。
错误
后续步骤
API 参考
Screen Wallet endpoint 的完整请求与响应结构。
Screen Wallet PDF
将筛查结果渲染为带有 Didit 品牌的 PDF。
加密货币与钱包筛查
交易创建期间的自动筛查及结果模型。