Every day, AI agents make decisions on our behalf — buying, sending emails, signing documents — and nobody verifies there's a real human behind them. Soulprint solves this with Zero-Knowledge Proofs: 100% on-device, open source (MIT), free to run. soulprint.digital 🇧🇪 Belgique/België's Numéro de registre national is not in Soulprint yet. You can add it in ~30 minutes with one PR. npx soulprint verify-me # scan ID + face match — all local # → SPT token (score 0-100)

# AI agent includes token in every call # X-Soulprint: eyJ... (score: 84)

# API verifies in 3 lines: import { requireSoulprint } from "soulprint-mcp"; server.tool("premium", requireSoulprint({ minScore: 80 }), handler);

ZK proof: Circom 2.1.8 · Groth16 · 844 constraints · 564ms prove · 25ms verify. NRN: 11 digits (YYMMDD-XXX-CC). Check: 97 - (first 9 digits mod 97) = last 2 digits. // packages/verify-local/src/document/countries/BE.ts import { CountryVerifier, DocumentResult, NumberValidation } from "../verifier.interface";

const BE: CountryVerifier = { countryCode: "BE", countryName: "Belgique/België", documentTypes: ["nrn", "eid"],

parse(ocrText: string): DocumentResult { // Numéro de registre national format: 11 digits YYMMDDXXXCC const doc_number = ocrText.match(/(\d{11})/)?.[1] ?? ""; return { valid: !!doc_number, doc_number, country: "BE" }; },

validate(docNumber: string): NumberValidation { // 97 - mod97 check return { valid: validateNRN(docNumber) }; }, };

export default BE;

Then add one line in registry.ts: import BE from "./countries/BE"; // add to registry map: "BE": BE,

Open a PR → your country joins the global AI identity standard. 🌍 Belgique/België joins the AI age — local developers can verify their AI agents Permanent git credit — you're in the history forever Decentralized identity — no Big Tech as gatekeeper Fast — 30 min partial, 2-3h full with MRZ 🌀 https://soulprint.digital

💻 GitHub — fork here

📖 Contributing guide

One PR