Skip to main content
Don’t trust us. Verify us. That is the operating philosophy behind every architectural decision at Limitguard. We are a trust infrastructure provider — and trust infrastructure must be independently verifiable. This document explains exactly how the system is built, what data it touches, where it lives, and how you can confirm every claim we make.
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 single POST /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.
Security headers are set at the middleware layer, not the application layer. This ensures they are present on every response — including errors, health checks, and 402 responses — regardless of which handler processes the request.

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 with top_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

The cluster 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

The confidence 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.
Build confidence thresholds into your integration policy. For example: require confidence >= 0.80 before automated approval, regardless of the trust score itself.

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.
We recommend integrating /v1/self-verify into your vendor due diligence workflow. The response is computed on every request, not cached.

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: agent 95545 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-verify

x402 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