Los agentes de IA actúan sin identidad verificada. Soulprint lo resuelve: ZK Proofs, 100% local, MIT.
🇪🇸 El DNI español no está en Soulprint todavÃa. ¿Lo agregas en 30 minutos?
DNI / NIE España
DNI: 8 dÃgitos + letra de control (módulo 23, tabla TRWAGMYFPDXBNJZSQVHLCKE).
NIE: X/Y/Z + 7 dÃgitos + letra.
const ES: CountryVerifier = {
countryCode: "ES", countryName: "Spain",
documentTypes: ["dni", "nie"],
parse(ocrText: string): DocumentResult {
const dni = ocrText.match(/(\d{8}[A-Z]|[XYZ]\d{7}[A-Z])/)?.[1] ?? "";
return { valid: !!dni, doc_number: dni, country: "ES" };
},
validate(docNumber: string): NumberValidation {
const letters = "TRWAGMYFPDXBNJZSQVHLCKE";
if(/^\d{8}[A-Z]$/.test(docNumber)) {
return { valid: letters[Number(docNumber.slice(0,8))%23] === docNumber[8] };
}
if(/^[XYZ]\d{7}[A-Z]$/.test(docNumber)) {
const n = docNumber.replace("X","0").replace("Y","1").replace("Z","2");
return { valid: letters[Number(n.slice(0,8))%23] === n[8] };
}
return { valid: false };
},
};
export default ES;
💻 GitHub · Un PR. Un paÃs.
Top comments (0)