DEV Community

Manuel Felipe Arias Pineda
Manuel Felipe Arias Pineda

Posted on

Your country is missing from the AI identity standard — help us fix that in 30 minutes

Every day, millions of AI agents make decisions — buy, sell, send emails, sign documents — and nobody knows if a real human is actually behind them.

Soulprint solves this. It's an open-source ZK identity protocol that proves a real person controls an AI bot, without uploading anything to a server.

We need developers from every country to add their national ID format. It takes ~30 minutes and a single PR.


The problem with AI identity today

"Is this Claude instance acting on behalf of a real human, or a rogue bot?"

Current options:

  • Worldcoin — requires iris scan, centralized, US-only practical
  • Stripe Identity — $1.50/verification, closed source, cloud-dependent
  • Persona — $0.50–$3.00/check, enterprise-only

Soulprint is different:

  • ✅ 100% on-device — nothing leaves your machine
  • ✅ Zero-Knowledge Proof — validators learn nothing except "this is a real human"
  • ✅ Open source — MIT license, 7 npm packages
  • ✅ Free — run your own validator node

How it works in 60 seconds

# 1. Verify once (scan your national ID + face match — all local)
npx soulprint verify-me

# 2. Your AI agent includes the token in every call
# X-Soulprint: eyJ0eXBlIjoic291bHByaW50... (score: 84/100)

# 3. Any MCP server or API validates in 3 lines
import { requireSoulprint } from "soulprint-mcp";
server.tool("premium-tool", requireSoulprint({ minScore: 80 }), handler);
Enter fullscreen mode Exit fullscreen mode

The ZK proof (Circom 2.1.8, Groth16, 844 constraints) proves:

  • You have a valid national ID
  • Your face matches the ID photo
  • You haven't registered twice (nullifier = unique hash per person)

No raw data ever transmitted. Verification runs locally in ~5 seconds.


We need YOUR country

Right now Soulprint has:

Country Document Status
🇨🇴 Colombia Cédula de Ciudadanía ✅ Full (OCR + MRZ + face)
🇲🇽 Mexico INE / CURP ⚡ Partial
🇦🇷 Argentina DNI ⚡ Partial
🇧🇷 Brazil CPF ⚡ Partial
🇨🇱 Chile RUN ⚡ Partial
🇵🇪 Peru DNI ⚡ Partial
🇻🇪 Venezuela Cédula ⚡ Partial
🌍 Your country ? ❌ Missing

Your country deserves to be on this list.


How to add your country — it really is 30 minutes

The interface is simple. Every verifier has 4 things:

// packages/verify-local/src/document/countries/XX.ts
import { CountryVerifier, DocumentResult } from "../verifier.interface";

const XX: CountryVerifier = {
  countryCode:   "XX",               // ISO 3166-1 alpha-2
  countryName:   "Your Country",
  documentTypes: ["national_id"],

  parse(ocrText: string): DocumentResult {
    // Extract fields from OCR text of the physical document
    // Fields: doc_number, full_name, date_of_birth, sex, expiry_date
    const doc_number = ocrText.match(/YOUR_REGEX/)?.[1] ?? "";
    return { valid: !!doc_number, doc_number, country: "XX" };
  },

  validate(docNumber: string): NumberValidation {
    // Validate format + check digits (if your ID has them)
    return { valid: /^\d{8,12}$/.test(docNumber) };
  },
};

export default XX;
Enter fullscreen mode Exit fullscreen mode

Then one line in registry.ts:

import XX from "./countries/XX";
// add to the registry map:
XX.countryCode: XX,
Enter fullscreen mode Exit fullscreen mode

That's literally it. Open a PR and you've added your country to the global AI identity standard.

What you need to know:

  • The OCR text format of your national ID
  • The document number format (length, check digits if any)
  • Optionally: MRZ format if your ID has a machine-readable zone

Why contribute?

  1. Your country joins the AI age — developers from your country can verify their AI agents
  2. You're in the git history — permanent credit as the contributor who added your nation
  3. You build the future you want — decentralized identity, no Big Tech gatekeeping
  4. It's fast — 30 minutes for a partial implementation, 2-3 hours for full with MRZ

Resources

# Quick start
git clone https://github.com/manuelariasfz/soulprint
cd soulprint && pnpm install
cp packages/verify-local/src/document/countries/AR.ts \
   packages/verify-local/src/document/countries/XX.ts
# Edit XX.ts → open PR
Enter fullscreen mode Exit fullscreen mode

Countries we're especially looking for: 🇺🇸 USA, 🇬🇧 UK, 🇩🇪 Germany, 🇫🇷 France, 🇯🇵 Japan, 🇰🇷 Korea, 🇮🇳 India, 🇳🇬 Nigeria, 🇿🇦 South Africa, 🇮🇩 Indonesia, 🇵🇭 Philippines, 🇹🇷 Turkey, 🇵🇱 Poland, 🇺🇦 Ukraine, 🇸🇦 Saudi Arabia, 🇪🇬 Egypt, 🇲🇾 Malaysia, 🇹🇭 Thailand, 🇻🇳 Vietnam, 🇮🇹 Italy, 🇪🇸 Spain, 🇳🇱 Netherlands

One PR. One country. The future of AI identity is open source.

Top comments (0)