The deterministic fact-verification layer for AI agents.
Agents confidently emit IBANs, phone numbers, domains, VAT numbers and crypto addresses that are subtly — and silently — wrong. Qiniso checks them against checksums and curated authoritative data, so a wrong answer is caught, not trusted. "Qiniso" means "truth" in Zulu.
Security and structure guardrails check whether an answer is safe or well-formed. Hallucination guardrails ask another LLM whether it's faithful to the prompt. None of them check whether a structured fact is actually correct against the real world — because that needs deterministic computation or curated data, not another model's opinion. That's Qiniso.
It verifies facts you give it; it is not a live-data provider and never asks for your credentials.
IBAN, payment card (Luhn + brand), ISBN-13, VIN.
TLD & domain (IANA root zone), IP, UUID, URL, email.
ISIN, CUSIP, SEDOL, LEI, US ABA routing.
Ethereum (EIP-55) & Bitcoin (Base58Check / Bech32) addresses.
Brazil CPF/CNPJ, South Africa ID, Spain DNI/NIE, India Aadhaar, EU/UK VAT.
ISBN-10, ISSN, ORCID.
Phone (global), date parsing, currency, holidays (~200 countries), UK VAT-by-date.
UK/US address parsing into structured fields.
Settings → Connectors → Add custom connector, and paste the URL. No login, no key:
https://qiniso.qinisolabs.workers.dev/mcp
Every check is also a typed function — no MCP required:
npm i @qinisolabs/qiniso
import { validateIban, validateVat } from "@qinisolabs/qiniso";
validateIban("GB82 WEST 1234 5698 7654 32"); // { valid: true, country: "United Kingdom", ... }