無料
月額$0。クレジットカード不要。
- 無料KYCバンドル(本人確認 + パッシブ・ライブネス + 顔照合 + デバイス&IP分析), 毎月500回まで
- ブロックリストユーザー
- 重複検出
- すべてのセッションで200以上の不正シグナル
- Diditネットワーク全体でのKYC再利用
- ケース管理プラットフォーム
- ワークフロービルダー
- 公開ドキュメント、サンドボックス、SDK、MCP (Model Context Protocol) サーバー
- コミュニティサポート


世界中の2,000以上の組織から信頼されています。

$0.15 per check
ウォレットスクリーニングは1チェックあたり$0.15です。または、既存のスクリーニングプロバイダーをDidit内で利用することも可能です。その場合でも、単一のケースキューと監査証跡で一元管理できます。
ID、生体認証、顔照合、制裁リスト、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェック項目を選択します。ダッシュボードでフローにドラッグ&ドロップするか、同じフローをAPIにPOSTするだけです。条件分岐やA/Bテストもコード不要で実行できます。
Web、iOS、Android、React Native、Flutter SDKでネイティブに組み込むか、ホストされたページにリダイレクトします。または、メール、SMS、WhatsAppなど、どこからでもユーザーにリンクを送信するだけです。お使いのスタックに最適な方法をお選びください。
Diditは、カメラ、照明の指示、モバイル連携、アクセシビリティをホストします。ユーザーがフローを実行している間、200以上の不正シグナルをリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。結果は2秒以内に表示されます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、却下、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングすることも可能です。または、コンソールを開いてすべてのセッション、すべてのシグナルを検査し、ケースを自由に管理できます。
$ curl -X POST https://verification.didit.me/v3/transactions/ \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"wallet_address": "0xRecipient...",
"currency": "ETH",
"direction": "OUTBOUND"
}'{ "risk_score": 87, "severity": "CRITICAL" }// Your endpoint receives a signed wallet-screening result
app.post("/webhooks/didit", (req, res) => {
const sig = req.headers["x-signature-v2"];
const expected = crypto.createHmac("sha256", SECRET)
.update(req.rawBody).digest("hex");
if (sig !== expected) return res.sendStatus(401);
const { status, decision, txn_id } = req.body;
// status: APPROVED | IN_REVIEW | DECLINED | AWAITING_USER
res.sendStatus(200);
});{ webhook_type: "transaction.status.updated", status: "APPROVED" }# Didit Wallet Screening (KYT) — integrate in 5 minutes
You are integrating Didit's Wallet Screening / Know Your Transaction (KYT)
module into <my_stack>. Follow these steps exactly. Every URL, header,
and enum value below is canonical — do not paraphrase or "improve" them.
Wallet Screening produces a standardised risk payload regardless of
which underlying provider sits behind it:
- Risk score 0-100 + severity (LOW, MEDIUM, HIGH, CRITICAL)
- Source of funds breakdown across 14+ categories
- Exposure table (counterparty entities, direct vs indirect hops)
- Network graph metrics
- Sanctions / darknet / mixer flags as discrete signals
## 1. Provision an account
- Sign up: https://business.didit.me (no credit card required).
- Or provision programmatically: POST https://apx.didit.me/auth/v2/programmatic/register/
## 2. Choose a screening source
- Wallet Screening runs at $0.15 per check on Didit's own on-chain
risk data — nothing to configure, it works out of the box.
- Or bring your own screening provider and run it inside Didit: open
Transactions > Settings > Provider Preferences in the Business
Console (https://business.didit.me) and paste your existing
provider API key. The screening result payload is identical
whichever source you use.
## 3. Two integration paths — pick one
### Path A — Workflow / Transactions API (recommended)
Best when you want Wallet Screening chained into the Transaction
Monitoring rules engine so flagged transactions automatically generate
review cases.
POST https://verification.didit.me/v3/transactions/
Headers:
x-api-key: <your-api-key>
Content-Type: application/json
Body (outbound pre-transfer screen, screens the destination wallet):
{
"transaction_id": "withdrawal-001",
"transaction_category": "finance",
"include_crypto_screening": true,
"transaction_details": {
"direction": "OUTBOUND",
"amount": "0.25",
"currency": "ETH",
"currency_kind": "crypto",
"action_type": "withdrawal"
},
"subject": {
"entity_type": "individual",
"vendor_data": "user-123",
"full_name": "John Doe"
},
"counterparty": {
"entity_type": "unhosted_wallet",
"full_name": "John Doe",
"payment_method": {
"method_type": "crypto_wallet",
"account_id": "0xRecipientWallet..."
}
}
}
Direction rules — required:
- INBOUND pre-transfer -> screens counterparty.payment_method.account_id
- INBOUND post-transfer -> screens the tx hash scoped to subject.payment_method.account_id
- OUTBOUND pre-transfer -> screens counterparty.payment_method.account_id
- OUTBOUND post-transfer -> screens the tx hash scoped to counterparty.payment_method.account_id
For post-transfer screening, also include
transaction_details.payment_reference_id -> the blockchain tx hash
### Path B — Standalone wallet-screening API
Best when you want a one-off wallet-risk lookup without writing a full
transaction. Same screening source, same $0.15 per check price.
POST https://verification.didit.me/v3/transactions/
Headers:
x-api-key: <your-api-key>
Content-Type: application/json
Body:
{
"wallet_address": "0xRecipientWallet...",
"currency": "ETH",
"direction": "OUTBOUND"
}
Synchronous JSON response — no webhook required for the standalone call.
Use Path A whenever the screening result needs to flow into the rules
engine, case management, or the auto-remediation loop.
## 4. Webhooks
Register one webhook destination per workspace:
POST https://verification.didit.me/v3/webhook/destinations/
Body: { "url": "https://yourapp.com/didit/webhooks",
"events": ["transaction.status.updated"] }
Every delivery carries an X-Signature-V2 Hash-based Message Authentication
Code (HMAC) header. HMAC-SHA256 verification MUST run against the raw body bytes (the raw payload as Didit sent it) BEFORE any JSON parsing — re-serialising the parsed body changes whitespace and key order, which invalidates the signature.Verify it before trusting the payload:
signature = hmac_sha256(secret, raw_body).hex()
if signature != request.headers["X-Signature-V2"]:
return 401
## 5. Reading the result
Every screening returns a standardised risk object:
- risk_score (0-100, higher = more exposure)
- severity ("LOW", "MEDIUM", "HIGH", "CRITICAL")
- source_of_funds (array of { category, percentage })
- exposure (array of { entity, hop_distance, received, sent, risk })
- flags (array including "sanctioned", "darknet_market", "mixer",
"ransomware", "child_exploitation", "scam", and others)
- network_graph (nodes, edges, centrality, depth)
Feed flagged transactions into the Transaction Monitoring rules engine
so high-risk hits automatically generate cases at the published
$0.02 per transaction inspection rate.
## 6. Travel Rule (FATF Recommendation 16)
For Virtual Asset Service Provider (VASP) to VASP transfers, include
the Travel Rule payload alongside the transaction body:
"travel_rule": {
"originator_vasp": {...},
"beneficiary_vasp": {...},
"originator": { "full_name", "date_of_birth", ... },
"beneficiary": { "full_name", "wallet_address" }
}
Didit handles the structured-message exchange with supported counterparty
VASPs. Reference: https://docs.didit.me/transaction-monitoring/travel-rule
## 7. Hard rules — do not change
- Base URL stays https://verification.didit.me (NOT apx.didit.me).
- Auth header stays x-api-key (lowercase, hyphenated).
- Webhook signature header stays X-Signature-V2 (NOT X-Signature).
- currency_kind is always "crypto" for wallet screening.
- direction is always UPPERCASE ("INBOUND" or "OUTBOUND").
- severity casing stays UPPERCASE: LOW, MEDIUM, HIGH, CRITICAL.
## 8. Pricing reference
- $0.15 per wallet screening on Didit's own on-chain risk data — or
bring your own screening provider and run it inside Didit.
- $0.02 per transaction inspected by the Transaction Monitoring rule
engine. AML on flagged transactions at $0.20 per check.
- 500 free verifications every month on every account, forever.
- No minimums, no contracts. Volume discounts above 100k screenings
per month — see https://didit.me/pricing.
## 9. Verify your integration
1. Create a sandbox API key at https://business.didit.me.
2. Post the example outbound transaction above against a known-flagged
tutorial wallet — the response should have severity "CRITICAL" and
carry a "sanctioned" flag.
3. Confirm the webhook fires with transaction.status.updated and the
X-Signature-V2 header verifies cleanly.
4. Open Case Management in the console — the transaction should land
in the queue with source PROVIDER and severity CRITICAL.
Done. Wallet Screening is live. Reach out to support@didit.me with the
workspace id if you hit a wall.月額$0。クレジットカード不要。
使った分だけお支払い。25以上のモジュール。モジュールごとの公開価格、月額最低料金なし。
カスタムMSA & SLA。大量利用や規制対象プログラム向け。
無料で開始 → チェック実行時のみ支払い → カスタム契約、SLA、データレジデンシーが必要な場合はエンタープライズプランへ。
Diditは、本人確認と不正対策のためのインフラです。私たちが自社でプロダクトを開発していたときに「こんなプラットフォームがあれば」と願ったものを形にしました。オープンで柔軟、そして開発者に優しいため、単なるブラックボックスとしてではなく、お客様のスタックの真の構成要素として機能します。
単一のAPIで、個人の本人確認(KYC、顧客確認)、企業の本人確認(KYB、企業確認)、暗号資産ウォレットのスクリーニング(KYT、トランザクション確認)、およびリアルタイムのトランザクション監視をカバーします。このスタックは、以下の特徴を備えています。
基盤となるフットプリント:48以上の言語で14,000以上のドキュメントタイプ、1,000以上のデータソース、そして全セッションで200以上の不正シグナルを検出します。Diditのインフラは、すべてのセッションから動的に学習し、日々改善されています。
ウォレットスクリーニング(Know Your Transaction (KYT) とも呼ばれます)は、暗号資産ウォレットアドレスまたはトランザクションハッシュのオンチェーンリスクを評価します。制裁対象への露出、ダークネット市場、ランサムウェアウォレット、ミキサー、盗難資金の取引相手、詐欺ウォレット、テロ資金供与などを、リスクスコア、深刻度レベル、資金源の内訳、およびリアルタイムでルーティング可能な個別のフラグとして表示します。
Didit内でエンドツーエンドでスクリーニングされるチェック1回あたり$0.15です。または、独自のスクリーニングプロバイダーをDidit内で利用することも可能で、同じ/v3/ Application Programming Interface (API) コントラクトで、統一されたケースワークと監査が提供されます。
詳細なリファレンス: docs.didit.me/core-technology/wallet-screening/overview。
Didit内でエンドツーエンドでスクリーニングされるチェック1回あたり$0.15です。単一の公開価格で、別途分析契約を管理する必要はありません。
既にお好みのスクリーニングプロバイダーがある場合は、独自のスクリーニングプロバイダーをDidit内で利用できます。プロバイダーキーをビジネスコンソールに貼り付けるだけで、Diditがディスパッチするすべてのスクリーニングがお客様のキーを使用し、既存のプロバイダー契約にカウントされます。
最低利用料金、契約、超過料金の心配はありません。ワークスペースごとにモードを切り替えるには、Transactions → Settings → Provider Preferences をご利用ください。
通常、フロー全体はエンドツーエンドで30秒未満で完了します。IDを手に取り、書類を撮影し、セルフィーを撮影すれば完了です。これは市場で最速です。従来のKYCプロバイダーでは、同じフローで90秒以上かかることが一般的です。
バックエンドでは、Diditはユーザーがセルフィーを完了した瞬間からウェブフックが発火するまでの時間を測定し、p99で2秒未満で結果を返します。モバイルキャプチャは、低速な電話やネットワーク向けに最適化されています。プログレッシブ画像圧縮、遅延SDKロード、ユーザーがウェブから開始した場合のQRコードによるデスクトップから電話へのワンタップハンドオフなどが含まれます。
背後にあるプロバイダーに関わらず、標準化されたペイロードです。
risk_score, 0~100、数値が高いほどリスクが高いことを示します。severity, LOW、MEDIUM、HIGH、CRITICAL。source_of_funds, 14以上のカテゴリ(制裁対象ウォレット、テロ資金供与、児童搾取、ランサムウェア、盗難資金、ダークネット市場、ミキサー、詐欺、高リスク取引所、ギャンブル、規制対象取引所、P2P、未識別サービス)にわたる内訳。exposure, 直接的または間接的なホップ距離を持つ取引相手エンティティ、および送受信金額。network_graph, 中心性と深さのメトリクス。flags, sanctioned、darknet_market、mixer、ransomwareなどの個別のシグナル。トランザクション監視のレスポンスでも同じ形式が返されます。
すべてのセッションは7つの明確なステータスのいずれかに分類されるため、お客様のコードは常に何をすべきかを知ることができます。
Approved, すべてのチェックに合格しました。ユーザーを次のステップに進めます。Declined, 1つ以上のチェックに失敗しました。ユーザーは、フロー全体を再実行することなく、特定の失敗したステップ(例:セルフィーの再撮影)を再提出できます。In Review, コンプライアンスレビューのためにフラグが立てられました。コンソールでケースを開き、すべてのシグナルを確認し、承認または拒否を決定します。In Progress, ユーザーはフローの途中にいます。Not Started, リンクは送信されましたが、ユーザーはまだ開いていません。長時間放置されている場合はリマインダーを送信します。Abandoned, ユーザーはリンクを開きましたが、時間内に完了しませんでした。再エンゲージするか、期限切れにします。Expired, セッションリンクの有効期限が切れました。新しいセッションを作成してください。すべてのステータス変更時に署名付きウェブフックが発火するため、お客様のデータベースは常に同期されます。中断および拒否されたセッションは無料です。
本番データは、デフォルトで欧州連合内のAmazon Web Servicesで処理および保存されます。規制当局が要求する管轄区域については、エンタープライズ契約で代替リージョンをリクエストできます。
あらゆる場所で暗号化。すべてのデータベース、オブジェクトストレージ、バックアップでAES-256による保存時暗号化。すべてのAPIコール、ウェブフック、ビジネスコンソールセッションでTransport Layer Security 1.3による転送時暗号化。生体認証データは、個別の顧客マスターキーで暗号化されます。
保持期間はお客様が管理できます。デフォルトの保持期間は無期限(無制限)ですが、アプリケーションごとに30日から10年の間で短く設定することも可能です。また、ダッシュボードまたはAPIからいつでも個々のセッションを削除できます。
認証:SOC 2 Type 1(Type 2監査進行中)、ISO/IEC 27001:2022、iBeta Level 1 PAD、およびスペインのTesoro / SEPBLAC / CNMVからの公式認定により、Diditのリモート本人確認は対面での本人確認よりも安全であることが証明されています。詳細レポートは/security-complianceをご覧ください。
Diditは、本人確認インフラにとって重要な規制当局の要件にデフォルトで準拠しています。
詳細なメモ、すべての証明書、すべての規制当局からの書簡は/security-complianceをご覧ください。
3つの統合パスがあります。お客様のスタックに合ったものをお選びください。
これら3つすべてで、同じダッシュボード、同じ請求、同じ成功報酬型料金が適用されます。ステップバイステップガイドはdocs.didit.me/integration/integration-promptをご覧ください。