Limitguard publishes its own trust signals at
GET /v1/self-verify: public, free, no key needed. Every signal links to evidence you can check yourself, starting with the Dutch business register (KVK) entry of the company that operates Limitguard.Zero-Access Trust Model
Limitguard is built on a zero-access principle: we minimize what we store, we make what we do store auditable, and we give you the tools to verify us independently.Data Minimisation
Only the fields you submit are processed. Check records are kept for 365 days, the audit log stores one-way hashes of entity identifiers, and
GET /v1/data/retention lists every retention period.EU Data Residency
Application data is stored in the EU. Limitguard is operated by Ambulatio Consulting B.V. (trading as Limitguard), a Dutch company registered with the KVK under 77272471.
Self-Verifying
Limitguard verifies itself with its own API. The result is public at
GET /v1/self-verify, and each signal carries a link to its evidence.Hash Chain Audit Trail
Every verification event is recorded in a tamper-evident hash chain. No entry can be modified without breaking the chain.
Certificate Records
Trust certificates are API records issued and verified via
/v1/certificate/*, not written to any blockchain or contract. Limitguard’s only on-chain footprint is its own ERC-8004 agent identity (agent 95545 on Base).Security Transparency
Responsible disclosure via RFC 9116. Our
/.well-known/security.txt is public. The security mailbox is hosted on Proton Mail.Data Flow
A singlePOST /v1/entity/check request moves through the following stages. All 7 data sources are queried in parallel, not sequentially, which is why median response time is under 500ms.
The middleware chain runs top-to-bottom on every request. Sandbox detection fires before payment verification — if you are in sandbox mode, x402 is never reached. See Sandbox Mode for details.
Middleware Security Stack
Every request passes through 8 middleware layers before reaching the router. Order is fixed and cannot be bypassed.The 7 Data Sources
Limitguard queries 7 independent data sources in parallel. No single source determines the outcome: the trust score is a weighted composite across all available signals.1. KVK / CBE Registry
Dutch Chamber of Commerce (KVK) and Belgian CBE business registry.Verifies legal registration status, company age, registered address, SBI/NACE activity codes, and filing history. An active registration with multi-year history is a strong positive signal. Shell companies and recently dissolved entities are flagged.
2. OpenSanctions
80+ global sanctions and watchlist sources.Checks against OFAC (US), EU consolidated list, UN Security Council, UK OFSI, and dozens of national and regional lists. OpenSanctions is the industry-standard open-source sanctions dataset — updated daily.
3. Country Risk
CPI (Corruption Perceptions Index) + FATF grey and blacklist.Jurisdiction risk is evaluated using Transparency International’s CPI score and the FATF (Financial Action Task Force) list status. High-risk jurisdictions — particularly FATF blacklisted or greylisted countries — reduce the trust score regardless of other signals.
4. Domain Intelligence
WHOIS registration age, DNS configuration, and SSL certificate analysis.Domain age is a strong fraud signal: most fraudulent entities use recently registered domains. We also inspect DNS records for anomalies, check for DMARC/SPF/DKIM email authentication, and validate SSL certificate chain and expiry.
5. IBAN Validation
Bank account structure and BIC/SWIFT verification.Validates the structural integrity of provided IBANs, resolves the BIC, and checks the issuing institution against known risk lists. Mismatched country codes between the IBAN and the declared entity jurisdiction are flagged.
6. VAT / VIES
EU VAT number validation via the European Commission VIES system.Confirms that the provided VAT number is active and registered to the declared entity name. VIES is the authoritative EU source for cross-border VAT verification — used by tax authorities across all 27 member states.
7. Wallet Format Check
Address-format validation for ETH/EVM, BTC, and SOL addresses.The entity check only validates that a submitted wallet address is well-formed for its chain (regex match, no lookups). It does not screen against mixer, darknet, or sanctioned-wallet lists, and it is not factored into the trust score. For real wallet screening (OFAC SDN match, on-chain signals, and named risk rules), use the separate, free wallet screening tool (
verify_wallet / POST /v1/mcp/verify-wallet).Source Availability by Request
Not every source is queried on every request. Source selection depends on which identifiers are provided and which tier (cached or fresh) is requested.
More identifiers = higher confidence. An entity check that includes a KVK number, domain, VAT number, and IBAN will produce a significantly more accurate score than one submitted with name and country only.
Trust Scoring Methodology
The trust score is not a black box. Every score comes withtop_factors that explain exactly which signals drove the result, which source produced them, and how much weight they carried.
Output Fields
Score Bands
Entity Clusters
Thecluster field classifies entities into behavioural archetypes based on signal patterns across all sources. Cluster assignment improves interpretability — a trust_score of 72 means different things for an established_eu_sme versus a newly_registered_offshore.
Confidence Score
Theconfidence field (0–1) reflects how much data was available to produce the score. An entity verified across 6 of 7 sources scores 0.96+. An entity verified with name and country only may score 0.55.
Infrastructure and Data Residency
Where Your Data Lives
Application data (API requests, check records, audit logs and dashboard accounts) is stored in the EU. Cloudflare, a US company, routes and filters traffic to Limitguard under the EU-US Data Privacy Framework; the privacy policy describes its role.
GDPR Compliance
Limitguard is GDPR-compliant by default — not through configuration.1
Data minimization
Only the fields you submit are processed. We do not enrich requests with additional personal data beyond what is required for verification.
2
Limited retention
Each non-sandbox check is stored with its normalised identifiers (IBANs only as a keyed hash) for 365 days, then deleted. The audit log stores one-way hashes of entity identifiers, never the identifiers themselves.
GET /v1/data/retention (any API key) lists every data category and its retention period.3
Right to erasure (Art. 17)
GDPR Article 17 right to erasure is supported. Send
DELETE /v1/data/purge with the entity_name (and optionally a wallet_address) to erase that entity’s records held for your API key, including its check records. Matching audit entries are tombstoned rather than removed, so GET /v1/audit/verify can still check the chain.4
EU data residency
Application data is stored in the EU (see the table above). Cloudflare routes traffic under the EU-US Data Privacy Framework.
5
Legal documents
The privacy policy, data processing agreement and terms of service are published on limitguard.ai. The API also serves them at
GET /v1/legal/privacy, /v1/legal/dpa and /v1/legal/terms.Audit Trail and Hash Chain Integrity
Every verification event is recorded in a tamper-evident append-only log. Each entry includes a SHA-256 hash of the previous entry — forming a hash chain that makes retroactive modification detectable.How the Chain Works
If any historical entry is modified, its hash changes — which breaks every subsequent entry in the chain. The break is immediately detectable by any verifier replaying the chain from the genesis entry.Audit Entry Structure
Audit entries contain hashes of entity identifiers, not the identifiers themselves. The entity name, KVK number, and other submitted fields are never stored in the audit log — only a one-way hash that allows correlation without reconstruction.
Querying the Audit Trail
Both endpoints are scoped to your own API key.GET /v1/audit/query also takes from, to and offset, and returns {"entries": [...], "count", "limit", "offset"} with each entry in the shape above.
Self-Verification
Limitguard verifies itself using its own API. This endpoint is public, free, and unauthenticated. It returns six published signals about the operator, each with an evidence link, and the score they add up to.Trust Certificates (API Records, Not On-Chain)
Trust certificates are records Limitguard issues, stores, and verifies over its own REST API. They are not written to a blockchain, anchored to a contract, or backed by the ERC-8004 standard: nothing about certificate storage or verification touches a chain. The only on-chain element anywhere in Limitguard is its own agent identity: agent95545 on the ERC-8004 Identity Registry on Base, which is unrelated to certificate issuance.
How Certificates Work
1
Certificate requested
A caller with an API key sends
POST /v1/certificate/issue with an entity name, country, and the trust_score / trust_level to record.2
Not derived automatically
The trust score on a certificate is supplied by the caller in the request; it is not computed or re-verified server-side from a completed
/v1/entity/check. Issuance is being restricted to Limitguard admins for this reason.3
Stored as an API record
Limitguard holds the certificate in its own store (
certificate_id, entity name, country, trust score/level, issued_at, expires_at, and a SHA-256 certificate_hash of those fields). Certificates expire based on valid_days (default 365) and can be revoked by their owner.4
Public verification
Anyone can verify a certificate via
GET /v1/certificate/{certificate_hash} (public, no auth). There is no separate on-chain copy to cross-check it against; this API response is the record.Certificate Fields
Querying Certificates
Certificates do expire:
verify_certificate checks the current time against expires_at and marks the certificate invalid once it has passed, alongside active/revoked status. There is no smart contract to query directly: verification is entirely through the endpoint above, so it depends on Limitguard’s own uptime like any other endpoint.Security Transparency
RFC 9116 Security Contact
Limitguard publishes a machine-readable security contact per RFC 9116:Expires is always one year ahead of the request.
Encrypted Communications
security@limitguard.ai is hosted on Proton Mail (Switzerland). Messages from other Proton Mail users are end-to-end encrypted; messages from other providers are encrypted at rest once received.
Responsible Disclosure
We operate a responsible disclosure programme. Security researchers who identify vulnerabilities in good faith will receive acknowledgement, coordinated disclosure timelines, and credit. See limitguard.ai/security for the full programme terms.Summary: What We Claim vs. How You Verify It
Every claim in this document is backed by a verifiable endpoint or public record. We built it this way intentionally — because a trust infrastructure provider that asks you to “just trust us” has missed the point entirely.
Further Reading
Self-Verification Methodology
Machine-readable JSON: the signals, weights and evidence sources behind
GET /v1/self-verifyx402 Protocol
How x402 payment verification works
Sandbox Mode
Test the full verification flow without touching real data sources
API Reference
Full endpoint documentation including audit, certificate, and self-verify endpoints