Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Didit Database Validation

Integrate Didit Database Validation API to verify personal data against government databases. Use when the user wants to validate identity against government...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 231 · 0 current installs · 0 all-time installs
byDidit@rosasalberto
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The skill is an identity-validation integration that requires only a Didit API key and calls https://verification.didit.me/v3/database-validation/. The declared primary env var (DIDIT_API_KEY) and the included Python script align with the described functionality; there are no unrelated credentials, binaries, or config paths requested.
Instruction Scope
SKILL.md and the included script instruct only to construct JSON requests to Didit endpoints and handle responses. There are no instructions to read unrelated files, harvest other environment variables, or send data to third-party endpoints outside Didit's documented endpoints. The README does include programmatic registration steps that require an email/OTP flow, but it does not instruct the agent to access mailboxes or other unrelated state.
Install Mechanism
There is no install spec and no downloaded archives; the skill is instruction-only with a small helper script. The script uses the Python 'requests' library (a standard third-party dependency) but the package is not pulled from an arbitrary URL. No high-risk install actions are present.
Credentials
Only DIDIT_API_KEY is required and declared as the primary credential, which is proportionate for a 3rd-party API integration. No additional secrets, broad cloud credentials, or unrelated tokens are requested.
Persistence & Privilege
The skill does not request permanent/always-on inclusion (always:false) and does not modify other skills or system-wide settings. Model invocation is allowed (platform default), which is expected for an integration skill.
Assessment
This skill appears internally consistent, but it deals with sensitive personal identity data — proceed with caution. Before installing: (1) Verify the Didit domains/endpoints (verification.didit.me and apx.didit.me) and that the documentation links in SKILL.md are genuine; (2) Keep DIDIT_API_KEY secret (use a secure secret store) and avoid printing keys to logs; the provided script prints responses which may include PII, so restrict logging and retention; (3) Confirm you have legal basis and user consent to validate identities and to transmit government ID numbers to a third-party service; (4) Be aware queries may incur per-request charges — test with non-production/test keys and review billing policies; (5) Note the skill's publisher is not clearly identified in the registry — if you don't trust the source, consider validating the code and endpoints independently before granting the API key. If you want a deeper assurance, request a signed provenance or vendor contact and confirm the API behavior against your own test account.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.1.0
Download zip
latestvk97e35m9f5y8p04y69aahnkr4h8266ez

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

🗄️ Clawdis
EnvDIDIT_API_KEY
Primary envDIDIT_API_KEY

SKILL.md

Didit Database Validation API

Overview

Verifies personal data and identity documents against trusted government and financial databases. Prevents synthetic identity fraud and ensures identity authenticity.

Key constraints:

  • Requires at least the national ID/document number for the target country
  • Coverage: 18 countries (primarily Latin America + Spain)
  • Results: full_match, partial_match, or no_match
  • Only charged per successful query — no charge if insufficient data

Matching methods:

MethodDescriptionStarting Price
1x1Single data source validation$0.05
2x2Two data sources cross-validation$0.30

API Reference: https://docs.didit.me/standalone-apis/database-validation Feature Guide: https://docs.didit.me/core-technology/database-validation/overview Supported Countries: https://docs.didit.me/core-technology/database-validation/database-validation-supported-countries


Authentication

All requests require x-api-key header. Get your key from Didit Business Console → API & Webhooks, or via programmatic registration (see below).

Getting Started (No Account Yet?)

If you don't have a Didit API key, create one in 2 API calls:

  1. Register: POST https://apx.didit.me/auth/v2/programmatic/register/ with {"email": "you@gmail.com", "password": "MyStr0ng!Pass"}
  2. Check email for a 6-character OTP code
  3. Verify: POST https://apx.didit.me/auth/v2/programmatic/verify-email/ with {"email": "you@gmail.com", "code": "A3K9F2"} → response includes api_key

To add credits: GET /v3/billing/balance/ to check, POST /v3/billing/top-up/ with {"amount_in_dollars": 50} for a Stripe checkout link.

See the didit-verification-management skill for full platform management (workflows, sessions, users, billing).


Endpoint

POST https://verification.didit.me/v3/database-validation/

Headers

HeaderValueRequired
x-api-keyYour API keyYes
Content-Typeapplication/jsonYes

Body (JSON)

ParameterTypeRequiredDescription
id_numberstringYesUniversal ID number — auto-maps to correct country field
first_namestringNoFirst name for matching
last_namestringNoLast name for matching
date_of_birthstringNoDOB in YYYY-MM-DD (required for some countries)
issuing_statestringNoISO 3166-1 alpha-3 country code
save_api_requestbooleanNoSave in Business Console
vendor_datastringNoYour identifier for session tracking

The id_number field auto-maps to the correct country-specific field:

CountryMapped FieldDocumentFormat
ARGdocument_numberDNI
BOLdocument_numberCI
BRAtax_numberCPF11 digits
CHLpersonal_numberRUT
COLpersonal_numberCedula
CRIpersonal_numberCedula
DOMpersonal_numberCedula11 digits
ECUpersonal_numberCedula10 digits
ESPpersonal_numberDNI/NIE
GTMdocument_numberDPI
HNDdocument_numberDNI
MEXpersonal_numberCURP18 chars
PANdocument_numberCedula
PERpersonal_numberDNI8 digits
PRYdocument_numberCI
SLVdocument_numberDUI
URYpersonal_numberCI
VENdocument_numberCedula

Example

import requests

response = requests.post(
    "https://verification.didit.me/v3/database-validation/",
    headers={"x-api-key": "YOUR_API_KEY", "Content-Type": "application/json"},
    json={
        "id_number": "12345678",
        "first_name": "Carlos",
        "last_name": "Garcia",
        "issuing_state": "PER",
    },
)
print(response.json())
const response = await fetch("https://verification.didit.me/v3/database-validation/", {
  method: "POST",
  headers: { "x-api-key": "YOUR_API_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    id_number: "12345678",
    first_name: "Carlos",
    last_name: "Garcia",
    issuing_state: "PER",
  }),
});

Response (200 OK)

{
  "request_id": "a1b2c3d4-...",
  "database_validation": {
    "status": "Approved",
    "match_type": "full_match",
    "issuing_state": "PER",
    "validation_type": "1x1",
    "screened_data": {
      "personal_number": "12345678",
      "first_name": "Carlos",
      "last_name": "Garcia"
    },
    "validations": {
      "full_name": "full_match",
      "identification_number": "full_match"
    }
  }
}

Status Values & Handling

StatusMeaningAction
"Approved"Full match against government recordsIdentity confirmed
"Declined"No match foundIdentity could not be verified
"In Review"Partial match or insufficient dataReview screened_data and validations

Error Responses

CodeMeaningAction
400Invalid requestCheck ID number format for target country
401Invalid API keyVerify x-api-key header
403Insufficient creditsTop up at business.didit.me

Matching Logic

Name Matching

ResultCriteria
Full MatchFull name concatenation at 85% similarity (Levenshtein), OR First + Last both full match
Partial MatchAny single name component full match
No MatchNo component reaches 70% similarity

Individual name components use 70% Levenshtein threshold. Example: "Christophel" vs "Christopher" = Full Match; "Chris" vs "Christopher" = No Match.

1x1 Decision

Match TypeNameID Number
full_matchFull MatchFull Match
partial_matchPartial MatchFull Match
no_matchAll other combinations

2x2 Decision

Requires matching against 2 independent data sources:

Match TypeCondition
full_matchBoth sources confirm name + ID
partial_matchOne source confirms
no_matchNeither source confirms

DOB and ID number matching is exact only — no fuzzy matching.


Warning Tags

TagDescription
COULD_NOT_PERFORM_DATABASE_VALIDATIONMissing required data — provide ID number, name, and country
DATABASE_VALIDATION_PARTIAL_MATCHPartial match found — requires investigation
DATABASE_VALIDATION_NO_MATCHNo match found in government records

When COULD_NOT_PERFORM_DATABASE_VALIDATION fires, session goes to "In Review". Validation auto-retriggers once missing data is provided.


Supported Countries

CountryMethodCoverageRequired Input
Argentina1x195%Document number
Bolivia1x195%Document number + DOB
Brazil1x195%Tax number (CPF)
Chile1x195%Personal number (RUT)
Colombia1x195%Document number + type
Costa Rica1x195%Personal number
Dominican Republic1x195%Personal number
Ecuador1x1 / 2x290-96%Personal number
El Salvador1x195%Document number + DOB
Guatemala1x195%Document number
Honduras1x195%Document number
Mexico1x195%Personal number (CURP)
Panama1x195%Document number + DOB
Paraguay1x195%Document number
Peru1x1 / 2x295-99%Personal number
Spain1x195%Personal number + doc type + expiry
Uruguay1x195%Personal number + DOB
Venezuela1x195%Document number

Utility Scripts

validate_database.py: Validate identity against government databases from the command line.

# Requires: pip install requests
export DIDIT_API_KEY="your_api_key"
python scripts/validate_database.py --id-number 12345678 --country PER --first-name Carlos --last-name Garcia
python scripts/validate_database.py --id-number GARC850315HDFRRL09 --country MEX

Files

2 total
Select a file
Select a file to preview.

Comments

Loading comments…