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


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

ガバナンスが果たすべきこと
一人の人間が、ウォレット、メールアドレス、使い捨て携帯を 何百も作成できます。しかし、それだけでは、その人が百人の別人であることの証明にはなりません。Diditは、投票を実際の顔と実際の書類に紐付け、Face Search 1:N(無料)で同一人物の再試行を検出します。毎月500件の認証が無料です。
ID、生体認証、顔照合、制裁リスト、住所、年齢、電話番号、メールアドレス、カスタム質問など、必要なチェック項目を選択します。ダッシュボードでフローにドラッグ&ドロップするか、同じフローをAPIにポストします。条件分岐やA/Bテストも、コード不要で実行できます。
Web、iOS、Android、React Native、Flutter SDKでネイティブに組み込むことができます。ホストされたページにリダイレクトすることも、メール、SMS、WhatsAppなど、どこからでもユーザーにリンクを送ることも可能です。お使いのスタックに合った方法をお選びください。
Diditは、カメラ、照明の指示、モバイル連携、アクセシビリティをホストします。ユーザーがフローを実行している間、200以上の不正シグナルをリアルタイムでスコアリングし、すべてのフィールドを信頼できるデータソースと照合して検証します。結果は2秒以内に得られます。
リアルタイムの署名付きWebhookにより、ユーザーが承認、拒否、またはレビューに送られた瞬間にデータベースが同期されます。必要に応じてAPIをポーリングすることも可能です。または、コンソールを開いてすべてのセッション、すべてのシグナルを検査し、ケースを自由に管理できます。
Didit · ユニーク投票者
投票者 · ステップ 3 / 4
顔認証 vs コホート
Didit · 顔検索 1:N
Didit · プライバシー契約
プラットフォームが認識
Diditが保持(暗号化済み)
Didit · 再利用可能なKYC
Didit · 投票資格
Didit · 投票の整合性
$ curl -X POST https://verification.didit.me/v3/session/ \
-H "x-api-key: $DIDIT_API_KEY" \
-d '{
"workflow_id": "wf_voter_enrol",
"vendor_data": "voter-12871",
"metadata": { "cohort_id": "round-2026-05" }
}'{ ホストされたセッションURLを返します。完了後2秒以内に判定。 }$ curl https://verification.didit.me/v3/session/$SID/decision/ \
-H "x-api-key: $DIDIT_API_KEY"
# Returns:
{
"status": "Approved",
"face_search": { "matches": [] }
}{ ステータス 承認済み · 却下 · レビュー中 · 再提出 · 期限切れ }You are integrating Didit anti-Sybil identity into a voting / governance / survey / airdrop / quadratic-funding platform. The recipe ensures each real human can be counted exactly once — no duplicates, no bots, no farmed accounts.
Two pillars:
1. Verify the voter is a real human with a real identity. ONE call to POST /v3/session/ with ID Verification + Liveness + Face Match.
2. Check the voter has not already been enrolled in this cohort. Face Search 1:N runs the voter's face against every previously-enrolled voter and returns a similarity score. Above threshold → duplicate, block.
Cost:
- Voter Know Your Customer (KYC) bundle: $0.33 per voter (Sessions API)
- Face Search 1:N: free (included)
- Re-vote / next round with Reusable KYC: free (the user proves uniqueness without re-doing KYC)
- First 500 verifications free every month, forever
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60s, no card).
- Webhook endpoint with HMAC SHA-256 verification using the X-Signature-V2 header and your webhook secret.
- A workflow_id from the Workflow Builder that bundles ID Verification + Passive Liveness + Face Match 1:1 + Face Search 1:N + your jurisdiction rules (age, country, sanctions).
STEP 1 — Enrol the voter with the Sessions API
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<wf id with KYC + Face Search 1:N>",
"vendor_data": "<your voter id, max 256 chars>",
"callback": "https://<your-app>/vote/enrolment/callback",
"metadata": {
"purpose": "vote_enrolment",
"cohort_id": "<your election / round / airdrop id>"
}
}
Response: 201 Created with the hosted session URL. Redirect the voter to it. Sub-2-second median verdict on completion.
STEP 2 — Read the signed webhook on enrolment completion
Didit POSTs to your callback. Session statuses are Title Case With Spaces:
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your voter id>",
"status": "Approved",
"id_verification": { "status": "Approved" },
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 },
"face_search": { "status": "Approved", "matches": [] }
}
Status enum (exact case): Approved | Declined | In Review | Resubmitted | Expired | Not Finished | Kyc Expired | Abandoned.
Verify the X-Signature-V2 header BEFORE reading the body — HMAC SHA-256 of the raw bytes with your webhook secret.
STEP 3 — Block duplicates
When face_search.matches is non-empty AND the top match's similarity is above your threshold (typical: 0.85), DO NOT add the voter to the cohort. The voter has likely been enrolled already, possibly under a different document or alias.
Recommended handling:
similarity ≥ 0.95 → block automatically, log the match
similarity 0.85–0.95 → route to manual review
similarity < 0.85 → enrol normally
STEP 4 — Privacy-preserving storage
The platform stores ONLY:
- voter_pid (pseudonymous identifier — a UUID, NOT the raw document number)
- unique (boolean)
- age_band (e.g. "18+", "25-34") — never the raw birth date unless your eligibility rule needs it
- region (e.g. "EU", "ES") — never the raw address
Documents, biometrics, and full names stay inside Didit, encrypted at rest. Default retention 5 years post-relationship; configurable per workflow.
STEP 5 — Read the decision on demand
GET https://verification.didit.me/v3/session/{sessionId}/decision/
Headers:
x-api-key: <your api key>
Returns the full decision JSON. Use this when the tally service needs to confirm a voter is still eligible at vote time.
STEP 6 — Reusable KYC for subsequent rounds
Once a voter is verified, the next vote / round / airdrop can reuse the verification at no extra cost. The user proves uniqueness with a selfie only — no document re-capture. Same workflow, different cohort id.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
- Verify X-Signature-V2 on every payload.
CONSTRAINTS
- Session statuses use Title Case With Spaces (Approved, In Review). Don't transform them.
- Face Search 1:N is scoped to YOUR cohort by default — Didit doesn't share faces across customers.
- Always check the duplicate score BEFORE recording the ballot, never after.
- The platform never sees the raw ID document or the raw face template — only the verdict and the pseudonymous PID.
- Default record retention is 5 years post-relationship per the EU AML package; extend per your governing body's rules.
Read the docs:
- https://docs.didit.me/sessions-api/create-session
- https://docs.didit.me/sessions-api/retrieve-session
- https://docs.didit.me/integration/webhooks
- https://docs.didit.me/core-technology/reusable-kyc/overview
Start free at https://business.didit.me — sandbox key in 60 seconds, 500 verifications free every month, no credit card.月額$0。クレジットカード不要。
使った分だけお支払い。25以上のモジュール。モジュールごとの公開価格、月額最低料金なし。
カスタムMSA & SLA。大量利用や規制対象プログラム向け。
無料で開始 → チェック実行時のみ支払い → カスタム契約、SLA、データレジデンシーが必要な場合はエンタープライズプランへ。
Diditは本人確認と不正対策のためのインフラです。私たちが自分たちで製品を開発していたときに「こんなプラットフォームがあれば」と願ったものです。オープンで柔軟、そして開発者に優しいため、ブラックボックスとしてではなく、スタックの真の構成要素として機能します。
一つのAPIで、個人の本人確認(KYC、顧客確認)、企業の本人確認(KYB、企業確認)、暗号資産ウォレットのスクリーニング(KYT、取引確認)、およびリアルタイムでの取引監視をカバーします。このスタックは以下のように構築されています。
基盤となるフットプリント:48以上の言語で14,000以上のドキュメントタイプ、1,000以上のデータソース、そしてすべてのセッションで200以上の不正信号。Diditのインフラは、すべてのセッションから動的に学習し、日々改善されています。
シビル攻撃とは、一人の人間がウォレット、メールアドレス、使い捨て電話、偽のIDなどを大量に作成し、各アカウントを1票、1エントリー、1シェアとしてカウントするシステムを悪用して、多数の人間であるかのように装うことです。
投票や希少性が重要なあらゆる場所で発生します。
唯一の永続的な防御策は、各投票を実在の人間に紐付けることです。このソリューションが提供するのはまさにそれです。
それらはリソースの制御を証明するものであり、身体の制御を証明するものではありません。
顔と政府発行の書類はより困難です。身体には顔が一つしかなく、国ごとに顔一つにつき有効な政府発行IDは一つです。ウォレットを大量に作成するよりも、大規模な偽造には桁違いのコストがかかります。
フルフローは通常、エンドツーエンドで30秒未満で完了します, IDを手に取り、書類を撮影し、セルフィーを撮影して完了です。これは市場で最速です。 従来のKYCプロバイダーでは、同じフローで通常90秒以上かかります。
バックエンドでは、Diditはユーザーがセルフィーを完了した瞬間からWebhookが発火するまでのp99で2秒未満で結果を返します。モバイルキャプチャは、低速な電話やネットワーク向けに最適化されています。プログレッシブ画像圧縮、遅延SDKロード、そしてユーザーがウェブから開始した場合のQRコードによるデスクトップから電話へのワンタップハンドオフなどです。
投票者が登録すると、Diditはプライバシーを保護する顔テンプレート(画像ではなくベクトル)を作成し、それをコホート内の他のすべての投票者テンプレートと比較します。出力は、0から1までの類似度スコアを持つ一致リストです。
一般的なポリシー:
コホートはあなたのデータセットに限定されます。Diditは顧客間で顔を共有しません。テンプレートは保存時に暗号化され、投票プラットフォームに公開されることはなく、ユーザーが登録時に同意したプライバシー通知の対象となります。
すべてのセッションは7つの明確なステータスのいずれかに分類されるため、コードは常に何をすべきかを知っています。
Approved, すべてのチェックに合格しました。ユーザーを次のステップに進めます。Declined, 1つ以上のチェックに失敗しました。ユーザーは、特定の失敗したステップ(例:セルフィーの再撮影)を、フロー全体を再実行することなく再提出できます。In Review, コンプライアンスレビューのためにフラグが立てられました。コンソールでケースを開き、すべての信号を確認し、承認または却下を決定します。In Progress, ユーザーはフローの途中にいます。Not Started, リンクは送信されましたが、ユーザーはまだ開いていません。長期間放置されている場合はリマインダーを送信します。Abandoned, ユーザーはリンクを開きましたが、時間内に完了しませんでした。再エンゲージするか、期限切れにします。Expired, セッションリンクの有効期限が切れました。新しいセッションを作成します。すべてのステータス変更時に署名付きWebhookが発火するため、データベースは常に同期されます。中断および却下されたセッションは無料です。
本番データは、デフォルトで欧州連合内のAmazon Web Servicesで処理および保存されます。 規制当局が要求する管轄区域については、エンタープライズ契約で代替リージョンをリクエストできます。
あらゆる場所で暗号化。 すべてのデータベース、オブジェクトストレージ、バックアップで保存時にAES-256暗号化。すべてのAPIコール、Webhook、ビジネスコンソールセッションで転送時に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をご覧ください。
いいえ。一度Diditによって認証された投票者は、再利用可能なKYC(無料、含まれています)により、その後のすべてのラウンドでセルフィーのみでユニーク性を証明できます。書類の再取得は不要です。
実際には:
この資格情報は、eIDAS2(EUのデジタルID規制)に準拠し、Diditが提供するすべてのプラットフォームでポータブルです。投票者が資格情報を所有するため、要求に応じて再提示でき、あなたは再支払いする必要はありません。
すべての登録は、監査ログまたはDAOの透明性ポータルにエクスポートできる署名付きレシートを生成します。
session_id, 登録のDidit検証可能識別子voter_pid, あなたの仮名投票者IDverdict, Approved、Declined、In Reviewなど(ステータスenum:Approved、Declined、In Review、Resubmitted、Expired、Not Finished、Kyc Expired、Abandoned)cohort_id, どのラウンド/選挙/エアドロップかsignature, ペイロードのX-Signature-V2 HMAC SHA-256(Webhookシークレットを使用)timestampオンチェーンアテステーション(使用されている場合)と組み合わせることで、「この実在の人間が登録した」から「この投票が投じられた」までの改ざん防止可能な証跡が得られます。デフォルトの保持期間は5年ですが、統治機関の規則に従って延長可能です。
4つのステップ、半日で完了します。
business.didit.meでサンドボックスを開設, 60秒でサンドボックスキーを取得、クレジットカード不要POST /v3/session/を、結果を受け取るために署名付きWebhookを接続status: Approvedでface_search.matchesが空(またはしきい値未満)になるまで投票をブロックDidit MCP (Model Context Protocol) サーバーは無料で含まれています。上記の統合プロンプトをClaude Code、Cursor、Codex、Replit Agent、Devin、またはAiderに貼り付けると、エージェントがライブの/v3/ APIに対して全体をスキャフォールドします。