DEV Community

Manuel Felipe Arias Pineda
Manuel Felipe Arias Pineda

Posted on

πŸ‡²πŸ‡Ύ Malaysia devs: Add MyKad (NRIC) to the AI identity standard β€” Soulprint open source (30 min PR)

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

πŸ‡²πŸ‡Ύ Malaysia's MyKad (NRIC) is not in Soulprint yet. You can add it in ~30 minutes with one PR.


What Soulprint does

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);
Enter fullscreen mode Exit fullscreen mode

ZK proof: Circom 2.1.8 Β· Groth16 Β· 844 constraints Β· 564ms prove Β· 25ms verify.


πŸ‡²πŸ‡Ύ Malaysia: MyKad (NRIC)

MyKad: 12 digits. Format: YYMMDD-PB-XXXX. PB = 2-digit place of birth code. No check digit.


The code β€” fill in the blanks and open a PR

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

const MY: CountryVerifier = {
  countryCode:   "MY",
  countryName:   "Malaysia",
  documentTypes: ["mykad"],

  parse(ocrText: string): DocumentResult {
    // MyKad (NRIC) format: YYMMDD-PB-XXXX (12 digits)
    const doc_number = ocrText.match(/(\d{6}-?\d{2}-?\d{4})/)?.[1] ?? "";
    return { valid: !!doc_number, doc_number, country: "MY" };
  },

  validate(docNumber: string): NumberValidation {
    // 12 digits, valid YYMMDD prefix
    return { valid: /^\d{12}$/.test(docNumber.replace(/-/g,'')) };
  },
};

export default MY;
Enter fullscreen mode Exit fullscreen mode

Then add one line in registry.ts:

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

Open a PR β†’ your country joins the global AI identity standard. 🌍


Why contribute?

  • Malaysia 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

Resources

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

Top comments (0)