Tools: πŸ‡°πŸ‡ͺ Kenya devs: Add Huduma Namba / National ID to the AI identity standard β€” Soulprint open source (30 min PR)

Tools: πŸ‡°πŸ‡ͺ Kenya devs: Add Huduma Namba / National ID to the AI identity standard β€” Soulprint open source (30 min PR)

What Soulprint does ## πŸ‡°πŸ‡ͺ Kenya: Huduma Namba / National ID ## The code β€” fill in the blanks and open a PR ## Why contribute? ## Resources 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 πŸ‡°πŸ‡ͺ Kenya's Huduma Namba / National ID is not in Soulprint yet. You can add it in ~30 minutes with one PR. ZK proof: Circom 2.1.8 Β· Groth16 Β· 844 constraints Β· 564ms prove Β· 25ms verify. National ID: 8 digits. Huduma Namba: 8 digits. Passport: 9 alphanumeric chars. Then add one line in registry.ts: Open a PR β†’ your country joins the global AI identity standard. 🌍 One PR. One country. The future of AI identity is open source. Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to ? It will become hidden in your post, but will still be visible via the comment's permalink. as well , this person and/or COMMAND_BLOCK: 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); COMMAND_BLOCK: 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); COMMAND_BLOCK: 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); CODE_BLOCK: // packages/verify-local/src/document/countries/KE.ts import { CountryVerifier, DocumentResult, NumberValidation } from "../verifier.interface"; const KE: CountryVerifier = { countryCode: "KE", countryName: "Kenya", documentTypes: ["national_id", "huduma"], parse(ocrText: string): DocumentResult { // Huduma Namba / National ID format: National ID 8 digits const doc_number = ocrText.match(/(\d{8})/)?.[1] ?? ""; return { valid: !!doc_number, doc_number, country: "KE" }; }, validate(docNumber: string): NumberValidation { // exactly 8 digits return { valid: /^\d{8}$/.test(docNumber) }; }, }; export default KE; CODE_BLOCK: // packages/verify-local/src/document/countries/KE.ts import { CountryVerifier, DocumentResult, NumberValidation } from "../verifier.interface"; const KE: CountryVerifier = { countryCode: "KE", countryName: "Kenya", documentTypes: ["national_id", "huduma"], parse(ocrText: string): DocumentResult { // Huduma Namba / National ID format: National ID 8 digits const doc_number = ocrText.match(/(\d{8})/)?.[1] ?? ""; return { valid: !!doc_number, doc_number, country: "KE" }; }, validate(docNumber: string): NumberValidation { // exactly 8 digits return { valid: /^\d{8}$/.test(docNumber) }; }, }; export default KE; CODE_BLOCK: // packages/verify-local/src/document/countries/KE.ts import { CountryVerifier, DocumentResult, NumberValidation } from "../verifier.interface"; const KE: CountryVerifier = { countryCode: "KE", countryName: "Kenya", documentTypes: ["national_id", "huduma"], parse(ocrText: string): DocumentResult { // Huduma Namba / National ID format: National ID 8 digits const doc_number = ocrText.match(/(\d{8})/)?.[1] ?? ""; return { valid: !!doc_number, doc_number, country: "KE" }; }, validate(docNumber: string): NumberValidation { // exactly 8 digits return { valid: /^\d{8}$/.test(docNumber) }; }, }; export default KE; CODE_BLOCK: import KE from "./countries/KE"; // add to registry map: "KE": KE, CODE_BLOCK: import KE from "./countries/KE"; // add to registry map: "KE": KE, CODE_BLOCK: import KE from "./countries/KE"; // add to registry map: "KE": KE, - Kenya 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