> ## 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：オンデマンド、取引作成不要

> Diditなら、取引を作成しなくても暗号資産ウォレットアドレス1件のAMLリスクをスクリーニングできます。資金源、制裁への関与、リスクスコアを必要なときに確認できます。

記録すべき取引がまだ存在しない**段階で**、暗号資産ウォレットのAMLリスクを確認したい場合があります。たとえば、顧客が出金先アドレスを追加したときや、コンプライアンスチームがアドレスを個別に審査したいときです。オンデマンドのウォレットスクリーニングエンドポイントは、単一のアドレスをスクリーニングし、取引を作成せずに完全なリスク結果を返します。

これは、[取引の送信](https://docs.didit.me/ja/transaction-monitoring/transactions.md)時に実行される[暗号資産の自動スクリーニング](https://docs.didit.me/ja/transaction-monitoring/aml-screening.md)に対応する単体版です。どちらも同じブロックチェーン分析プロバイダーを使用し、同じ形式の結果を返します。

## 使い分け

| ユースケース | エンドポイント |
| - | - |
| 記録する取引がない状態でアドレスを事前チェックする | **Wallet screening**: `POST /v3/wallet-screening/` |
| 記録する入金・出金の一環としてウォレットをスクリーニングする | `currency_kind: "crypto"`を指定した[取引の作成](https://docs.didit.me/ja/transaction-monitoring/transactions.md) |

ウォレットスクリーニングは取引テーブルに何も書き込みません。ルール、アラート、Webhookを伴うモニタリング対象の取引にスクリーニングを紐付ける必要がある場合は、代わりに取引を送信してください。

## 前提条件

アプリケーションで、マネージドプロバイダーまたは[既存のプロバイダーキー](https://docs.didit.me/ja/transaction-monitoring/aml-screening.md#対応プロバイダー)のいずれかを使用してトランザクションモニタリングが設定されている必要があります。[Business Console](https://business.didit.me)の**Transactions** > **Settings** > **Provider Preferences**で設定してください。プロバイダーが設定されていない場合、エンドポイントは`409 Conflict`を返します。

## リクエスト

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

`x-api-key`ヘッダーで認証します。

| フィールド | 型 | 必須 | 説明 |
| - | - | - | - |
| `wallet_address` | string | はい | スクリーニング対象のアドレスまたはネットワーク識別子。選択したネットワークに一致している必要があります。たとえば、EVMチェーンでは`0x`+16進数40文字、Lightningではプロバイダーが受け付ける識別子です。エイリアス: `address`。 |
| `blockchain` | string | いいえ | アセット/ネットワーク識別子。省略した場合、Diditはアドレス形式からネットワークを判定します。`bc1`、`1`、`3`で始まるアドレスはBitcoin（`BTC`）、`T`で始まるアドレスはTron（`TRX`）、base58の公開鍵はSolana（`SOL`）として扱われます。`0x`アドレスはすべてのEVMネットワークで有効なため、`candidate_chains`を含む`422`が返され、スクリーニングも課金も行われません。ネットワークを指定して再送信してください。それ以外の形式では`400`が返されます。使用できる値: `BTC`、`LIGHTNING`、`ETH`、`LTC`、`XRP`、`BCH`、`DOGE`、`TRX`、`SOL`、`MATIC`、`BNB`、`BASE`、`OP`、`ARB`、`AVAX`、`ADA`、`XLM`、`HBAR`、`CELO`、`MODE`、`PLUME`、`USDT`、`USDC`。一般的なネットワーク名も使用できます。たとえば、`MATIC`には`POLYGON`または`POL`、`BNB`には`BSC`、`TRX`には`TRON`を指定できます。エイリアス: `currency`。 |
| `direction` | string | いいえ | `inbound`、`outbound`、`deposit`、`withdrawal`のいずれか。プロバイダー向けの任意のコンテキストです。中立的な送金前スクリーニングでは省略してください。返される`risk_score`、`severity`、資金フローの内訳は変わりません（[レスポンス](#レスポンス)の注記を参照）。 |

### 対応チェーン

マネージドスクリーニングは、ウォレットと取引ハッシュの両方のスクリーニングでBase（`BASE`）、Optimism（`OP`）、Arbitrum One（`ARB`）に対応しています。
接続したプロバイダーでは対応範囲が異なる場合があります。チェーンは、選択したプロバイダーとアカウントでも対応している必要があります。
Celo（`CELO`）、Mode（`MODE`）、Plume（`PLUME`）は、接続したTRM Labsアカウント（Marketplace、独自キーの持ち込み）を通じてスクリーニングされます。マネージドスクリーニングはこれらに対応しておらず、`400`を返します。
別のEVMネットワークに`ETH`を送信しないでください。同じアドレスでも、チェーンごとにアクティビティとリスクが異なる場合があります。

マネージドスクリーニングでは、`USDT`と`USDC`はEthereumを指す従来のエイリアスであり、これらのトークンが存在するすべてのネットワークを横断して検索するものではありません。
ウォレットの実際のチェーンには、ネットワーク識別子（`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`で別途指定してください。
[アセットとネットワークの選択](https://docs.didit.me/ja/transaction-monitoring/aml-screening.md#アセットとネットワークの選択)を参照してください。

> [!WARNING]
>
> `LIGHTNING`は、コンソールの**Marketplace**でアプリケーションにEllipticまたはChainalysisのBYOKプロバイダーを接続している場合にのみ利用できます。
> マネージドのMerkle Science、またはCrystalやTRM Labsでは利用できません。
> 対応する接続済みプロバイダーがないリクエストは`400`を返し、スクリーニングも課金も行われません。

```bash theme={null}
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"
  }'
```

## レスポンス

レスポンスは標準化されたスクリーニング結果で、取引スクリーニングが返す`WALLET_SCREENING`プロバイダー結果と同じ構造です。

| フィールド | 型 | 説明 |
| - | - | - |
| `provider` | string | アドレスをスクリーニングしたプロバイダー（`merklescience`、`crystal`、`chainalysis`、`elliptic`、`trmlabs`）。 |
| `screening_type` | string | 常に`WALLET_SCREENING`です。 |
| `risk_score` | integer | 0〜100に正規化されたリスクスコア。Merkle Scienceはアドレスを`0-5`で評価し、これは`0`、`15`、`35`、`55`、`75`、`95`のいずれかに対応します。 |
| `severity` | string | `risk_score`から導出されるリスク区分（下記の注記を参照）。`UNKNOWN`、`LOW`、`MEDIUM`、`HIGH`、`CRITICAL`のいずれかです。 |
| `status` | string | `SCREENED`、`PENDING`、`ERROR`のいずれかです。 |
| `summary` | string | 人が読める形式の要約。 |
| `wallet_address` | string | スクリーニング対象のアドレス。 |
| `blockchain` | string | スクリーニング対象のチェーン。 |
| `sanctions_hit` | boolean | スクリーニング対象のウォレットが制裁対象である場合、またはその取引相手のいずれかの資金が制裁対象の主体に由来する場合（エクスポージャー）に`true`になります。この2つは区別されません。 |
| `pep_counterparty` | boolean \| null | 重要な公的地位を有する者 (PEP)へのエクスポージャー。PEPに関する検出結果がない場合は`null`で、現在はどのプロバイダーもPEPを報告しないため、現時点ではすべての結果がこれに該当します。`false`になるのは、スクリーニングで明示的に該当なしと判定された場合のみです。`null`をPEPチェック完了と解釈しないでください。 |
| `dominant_risk_category` | string \| null | 最も重み付けの高い高リスクカテゴリー、または`null`。 |
| `risk_factors` | array | `risk_score`の根拠をランク付けして説明したもの、つまりこの判定を生んだ要因です。[リスク要因](#リスク要因)を参照してください。 |
| `source_of_funds` | array | 資金の受け取り元をエンティティ別に示したもの。[エクスポージャーの内訳](#エクスポージャーの内訳)を参照してください。 |
| `destination_of_funds` | array | 資金の送金先をエンティティ別に示したもの。エントリーの構造は`source_of_funds`と同じです。 |
| `counterparty_connections` | array | プロバイダーがこのアドレスの帰属先とするエンティティ。[取引相手とのつながり](#取引相手とのつながり)を参照してください。 |
| `network_nodes`, `network_edges` | array | 取引スクリーニング用のエクスポージャーのグラフ。ウォレットスクリーニングの結果では空です。 |
| `transaction_hash`, `block_timestamp`, `total_value_usd`, `fee_usd`, `transaction_flows_status`, `transaction_flows_error` | null | 結果の構造を共有する取引スクリーニング用のフィールド。ウォレットスクリーニングの結果では常に`null`です。 |
| `sender_rows`, `receiver_rows`, `transaction_flows` | array | 取引スクリーニング用のフィールド。ウォレットスクリーニングの結果では常に空です。 |
| `raw_response` | object | プロバイダー独自のペイロード。構造はプロバイダーごとに異なり、予告なく変更される場合があります。これを解析せず、上記の正規化されたフィールドを参照してください。 |
| `report_signature` | string | この結果に対する不透明な署名で、お客様のアプリケーションに紐づいています。[PDFとして出力](#pdfレポート)するには、このフィールドを含めてレスポンスを変更せずに再送信してください。 |

> [!NOTE]
>
> **`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`だけでは対応を判断できません。各エントリーは1つの要因を示し、高リスクのものが先に並び、その後はその要因を経由して移動した金額の順に並びます。

| フィールド | 型 | 説明 |
| - | - | - |
| `source` | string | `attribution`（プロバイダーがそのアドレスを*何である*とみなしているか。独自のタグやクラスター）または`exposure`（資金が実際にどこへ移動したか）。 |
| `category` | string | 正規化されたリスクカテゴリー。エクスポージャーの内訳と同じ語彙を使用します。 |
| `label` | string | プロバイダー独自の表記（例：`Gambling / Crypto only`）。UIではこれを使用してください。プロバイダーのコンソールに表示される内容と一致します。 |
| `entity_name` | string \| null | 帰属先のエンティティ（ギャンブルサイトや取引所など）。このページの例では`Example Gambling`などのプレースホルダーを使用しています。 |
| `direction` | string | `incoming`、`outgoing`、`connected`、`attribution`（アドレス自体のタグ）、またはプロバイダーが方向を報告しなかった場合は`unknown`。 |
| `exposure_type` | string | `direct`（1ホップ）、`indirect`（マルチホップ）、`attribution`（アドレス自体のタグ）、またはプロバイダーが取引相手までのホップ数を示さなかった場合は`unknown`。`unknown`は未分類として扱い、決して`direct`とみなさないでください。 |
| `amount_usd` | number \| null | この要因に帰属するUSD建ての金額。 |
| `percentage` | number | 両方向を合わせた、アドレスのスクリーニング対象の**合計**取引量に占める割合です。方向ごとに正規化される`source_of_funds` / `destination_of_funds`内の`percentage`とは異なります。リスト全体で比較・合算できます。 |
| `is_high_risk` | boolean | そのカテゴリーをDiditが高リスクとして扱うかどうか（`sanctioned`、`mixer`、`stolen_funds`、`ransomware`、`scam`、`darknet_market`、`terrorist_financing`、`child_exploitation`、`hacked_exchange`、`high_risk_exchange`、`seized_funds`）。 |
| `description` | string | 要因を1行で表したもの（例：`9.01% indirect outgoing exposure to Gambling / Crypto only (Example Gambling)`）。 |

> [!NOTE]
>
> **`is_high_risk`の要因がないのにスコアが高い場合も、実際に意味のある結果です。** これは、プロバイダーが制裁、PEP、帰属エンティティとの一致を報告することなく、独自のエクスポージャーモデルでアドレスを評価したことを意味します。リストに*含まれている*要因は、その評価の背景にある資金フローです。`summary`にはこの旨が明記されるため、こうしたアドレスは確定したヒットではなく「フローを確認すべきもの」として扱ってください。`risk_factors`は最も強い5つの要因までに制限されます。`source_of_funds`と`destination_of_funds`には常に完全な内訳が含まれます。
>
> **`risk_factors`はネストされたフィールドではなく、トップレベルのフィールドです。** このフィールドが導入される前にスクリーニングされた結果にはキー自体が含まれません。その場合は空の説明だとみなすのではなく、空のリストとして扱ってください。

### エクスポージャーの内訳

`source_of_funds` / `destination_of_funds`の各エントリは、そのアドレスと資金をやり取りした1つのエンティティを表します。

| フィールド | 型 | 説明 |
| - | - | - |
| `category` | string | 正規化されたリスクカテゴリ(`exchange_licensed`、`dex`、`defi`、`mixer`、`sanctioned`、`darknet_market`、`stolen_funds`など)。 |
| `entity_name` | string \| null | 帰属先のエンティティ。取引所、ミキサー、制裁対象グループなど。このページの例ではプレースホルダーを使用しています。 |
| `entity_type` | string \| null | プロバイダーのエンティティタイプ(`Exchange`、`DeFi`、`Sanctions`)。 |
| `entity_subtype` | string \| null | 詳細なサブタイプ(`Mandatory KYC and AML`、`OFAC`)。 |
| `description` | string \| null | プロバイダーによるエンティティのラベルを示す`entity_type / entity_subtype`。 |
| `exposure_direction` | string | `incoming`、`outgoing`、`connected`のいずれか。 |
| `exposure_type` | string | `direct`(1ホップ)または`indirect`(複数ホップ)。 |
| `is_direct` | boolean | `exposure_type`が`direct`の場合は`true`。 |
| `amount_usd` | number \| null | エンティティに帰属するUSD建ての金額。 |
| `percentage` | number | その方向の総エクスポージャーに占める割合(0–100)。 |
| `hops` | integer \| null | エンティティまでのホップ数(直接の取引相手の場合は`1`)。プロバイダーが報告する場合に返されます。Merkle Scienceはエクスポージャーが直接か間接かのみを報告するため、常に`null`になります。その場合は`exposure_type`を使用してください。 |
| `country` | string \| null | エンティティの主要な国(ISO 3166-1 alpha-2)。プロバイダーが把握していない場合は空または`null`になります。 |
| `provider_entity_id`、`provider_entity_type_id`、`provider_entity_subtype_id` | string \| null | エンティティとそのタイプに対するプロバイダー独自の識別子。 |
| `raw_amount`、`raw_currency` | number \| null, string \| null | 資産自体の単位での金額。プロバイダーが報告する場合に返されます。 |

### 取引相手とのつながり

`counterparty_connections`には、スクリーニング対象のアドレスの帰属先としてプロバイダーが特定したエンティティが一覧表示されます。Merkle Scienceの場合、これらはアドレス自体のオーナータグとユーザータグに由来するため、同じエンティティが2回表示されることがあり、資金フローは含まれません。`received_usd`、`sent_usd`、`received_hops`、`sent_hops`は`null`、`percentage`は`0.0`になります。資金フローは`source_of_funds`と`destination_of_funds`から読み取ってください。

| フィールド | 型 | 説明 |
| - | - | - |
| `entity_name` | string \| null | 帰属先のエンティティ。 |
| `entity_type` | string \| null | プロバイダーのエンティティタイプ。 |
| `entity_subtype` | string \| null | 詳細なサブタイプ。 |
| `categories` | array | エンティティの正規化されたリスクカテゴリ。 |
| `risk_level` | string | 小文字で、内容はプロバイダーによって異なります。Merkle Scienceの場合は、アドレス自体の0-5のリスク等級(`no_risk`、`low`、`medium_low`、`medium`、`high`、`critical`)で、エンティティのカテゴリが高リスクの場合は`high`に引き上げられます。エンティティ固有の等級ではありません。 |
| `is_direct` | boolean | Merkle Scienceでは常に`true`です。Merkle Scienceのつながりは取引相手ではなく帰属情報であるためです。 |
| `received_usd`、`sent_usd` | number \| null | エンティティから受け取った、またはエンティティに送ったUSD建ての金額。プロバイダーが報告する場合に返されます。 |
| `received_hops`、`sent_hops` | integer \| null | 各方向におけるエンティティまでのホップ数。プロバイダーが報告する場合に返されます。 |
| `percentage` | number | アドレスのエクスポージャーに占める割合。プロバイダーが報告する場合に返され、それ以外は`0.0`になります。 |
| `country` | string \| null | 判明している場合、エンティティの国。 |
| `provider_entity_id` | string \| null | エンティティに対するプロバイダー独自の識別子。 |

> [!WARNING]
>
> `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`を使用してください。

### 例

OFACの制裁リストに掲載されたアドレスをMerkle Scienceでスクリーニングした実際のレスポンスです。`raw_response`のみを短縮し、`report_signature`を差し替えています。

```json theme={null}
{
  "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.0,
      "amount_usd": 9813695.0,
      "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.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.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.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.0,
      "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>"
}
```

これらの例はレスポンスの形式を示すものであり、実際のアドレスに対する判定を保証するものではありません。
リスクスコアと制裁エクスポージャーは、選択したネットワーク、最新のインテリジェンス、設定されたリスクポリシーによって異なります。
取引所への帰属はリスクスコアがゼロであることを意味しません。取引所のウォレットも、資金フローを通じて制裁エクスポージャーを持つ場合があります。
`sanctions_hit: true`は、ウォレット自体が制裁対象であることを示す場合もあれば、その資金に制裁エクスポージャーがあることのみを示す場合もあります。そのため、これだけではスクリーニング対象のウォレットの所有者が制裁対象であることを意味しません。
記録された取引に対して同じスクリーニングを実行する場合、ルールでは、プロバイダーがウォレット自体を制裁対象のエンティティに帰属させた場合にのみ`true`になる`custom_values.wallet_sanctioned`と、`custom_values.aml_sanctions_exposure_pct`も参照できます。
[ルール用のスクリーニングフィールド](https://docs.didit.me/ja/transaction-monitoring/aml-screening.md#ルール用のスクリーニングフィールド)を参照してください。
帰属とエクスポージャーを区別するには、`risk_factors`、`source_of_funds`、`destination_of_funds`を確認してください。
手順の詳細は[暗号資産・ウォレットスクリーニング](https://docs.didit.me/ja/transaction-monitoring/aml-screening.md#スクリーニング結果)を参照してください。

## PDFレポート

スクリーニング結果のDiditブランドのPDFを取得するには、`report_signature`を含むレスポンス本文をそのまま`POST /v3/wallet-screening/pdf/`に再送信します。この処理はステートレスで、プロバイダーへの呼び出しも追加の請求も発生せず、何も保存されません。再送信の前に署名済みのフィールド(`risk_score`、`severity`、`sanctions_hit`など)を編集すると、`400`で失敗します。

```bash theme={null}
RESULT=$(curl -s -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"}')

curl -X POST https://verification.didit.me/v3/wallet-screening/pdf/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d "$RESULT" \
  -o wallet_screening_report.pdf
```

リクエストとレスポンスの完全なスキーマおよびエラーの形式については、[ウォレットスクリーニングPDF](https://docs.didit.me/ja/management-api/transactions/screen-wallet-pdf.md)を参照してください。

## 請求

スクリーニングが成功するたびに、AMLモニタリングの利用1回分が、取引に紐づく暗号資産スクリーニングと同じ料金で請求されます。マネージドキーと接続したキーの料金については[料金](https://docs.didit.me/ja/transaction-monitoring/aml-screening.md#対応プロバイダー)を参照してください。サンドボックスのアプリケーションには請求されません。検証エラー（`400`）とプロバイダー未設定エラー（`409`）が請求されることはありません。

## エラー

| ステータス | 意味 |
| - | - |
| `400` | ウォレットアドレスの形式が不正であるか、`wallet_address`が指定されていないか、`blockchain`がサポート対象外です。 |
| `401` | `x-api-key`が指定されていないか、無効です。 |
| `409` | アプリケーションにAMLプロバイダーが設定されていません。先にトランザクションモニタリングを設定してください。 |
| `409` | 接続したAPIキーがプロバイダーに拒否されました（`wallet_screening_provider_credentials_rejected`）。Marketplaceの接続でキーを更新してください。トランザクションモニタリングの設定でキーを設定している場合は、そちらで更新してください。同じキーで再試行しても解決しません。 |
| `409` | 設定されているAMLプロバイダーは、まだウォレットスクリーニングに対応していません（`wallet_screening_provider_unavailable`）。 |
| `422` | `0x`アドレスが`blockchain`なしで送信されました（`wallet_screening_chain_undetermined`）。レスポンスボディに`candidate_chains`が含まれるため、そのいずれかを指定して再送信してください。スクリーニングも請求も行われません。 |
| `502` | プロバイダーがスクリーニングを完了できませんでした。時間をおいて再試行してください。 |

## 次のステップ

> [card] [APIリファレンス](https://docs.didit.me/ja/management-api/transactions/screen-wallet.md)
>
> Screen Walletエンドポイントのリクエストとレスポンスの完全なスキーマです。

> [card] [Screen Wallet PDF](https://docs.didit.me/ja/management-api/transactions/screen-wallet-pdf.md)
>
> スクリーニング結果をDiditブランドのPDFとして出力します。

> [card] [暗号資産・ウォレットスクリーニング](https://docs.didit.me/ja/transaction-monitoring/aml-screening.md)
>
> 取引作成時の自動スクリーニングと結果モデルについて説明します。


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