跳转到主要内容
有时您需要在任何交易记录生成之前检查加密货币钱包的 AML 风险,例如客户添加提现地址时,或合规团队希望临时审查某个地址时。按需钱包筛查 endpoint 可以对单个地址进行筛查,并返回完整的风险结果,且不会创建交易。 这是 自动加密货币筛查 的独立对应功能,后者在 交易提交 过程中运行。两者使用相同的区块链分析服务商,并返回相同的结果结构。

适用场景

钱包筛查不会向交易表写入任何内容。如果您需要将筛查结果附加到受监控的交易上(包括规则、警报和 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 中单独指定网络。 参见资产与网络选择。
仅当应用在控制台 Marketplace 中已接入 Elliptic 或 Chainalysis 的 BYOK 服务商时,才可使用 LIGHTNING。 使用托管的 Merkle Science、Crystal 或 TRM Labs 时不可用。 未接入受支持服务商的请求将返回 400,不会进行筛查,也不会计费。

响应

响应是标准化的筛查结果,其结构与交易筛查返回的 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 中读取。
请勿依据 counterparty_connections[].risk_level 或 counterparty_connections[].is_direct 做路由判断:对于 Merkle Science,前者重复的是地址自身的评级(请读取 risk_score),后者始终为 true。判定请使用 sanctions_hit、dominant_risk_category 和 risk_factors[].is_high_risk,判断直接性请使用 source_of_funds / destination_of_funds 中的 exposure_type。

示例

以下是使用 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。
请参阅 钱包筛查 PDF,了解完整的请求和响应结构以及错误格式。

计费

每次成功筛查按与交易关联的加密货币筛查相同的费率计为一次 AML 监控用量。托管密钥和已连接密钥的费率请参阅定价。沙盒应用不计费。验证错误(400)和未配置提供商错误(409)永远不计费。

错误

后续步骤

API 参考

Screen Wallet endpoint 的完整请求与响应结构。

Screen Wallet PDF

将筛查结果渲染为带有 Didit 品牌的 PDF。

加密货币与钱包筛查

交易创建期间的自动筛查及结果模型。
最后修改于 2026年11月7日