Klaro
Prove an agent is clean without exposing what it did. Klaro turns sanctions screening, source-of-funds, and policy checks into zero-knowledge attestations any counterparty can verify in a single call.
Autonomous agents now move real value on Base. To transact, they must prove they are safe counterparties: not sanctioned, not laundering, not out of bounds. Today that proof means handing over a full transaction history to anyone who asks.
Klaro inverts the model. A compliance policy runs privately and produces a portable proof that asserts only its conclusion. Counterparties verify the verdict; regulators retain a lawful path to disclosure; the underlying activity stays private.
Privacy and compliance are routinely framed as opposites. They are not. An agent should be able to prove the conclusion of a check without surrendering the data behind it.
The public ledger exposes everything to verify anything. Mixers conceal everything and make compliance impossible. Klaro occupies the space between: provable adherence to a policy, with selective, authorized disclosure when the law requires it.
The space between exposure and concealment.
| Public ledger | Mixer | Klaro | |
|---|---|---|---|
| Privacy | None | Full | Full |
| Provable compliance | Manual | None | Built in |
| Lawful disclosure | Open | Impossible | Scoped keys |
| Data to verify | Everything | Nothing | Verdict only |
| Regulator stance | Tolerated | Hostile | Compatible |
Klaro screens an agent against sanctions lists, source-of-funds rules, and jurisdiction policy entirely client-side, off the public ledger.
The result is sealed into a zero-knowledge attestation that asserts only pass or fail, with nothing about the underlying activity.
Any counterparty checks the proof onchain before transacting. Regulators retain access through scoped, revocable viewing keys.
Attestations reveal only the outcome of a check. The history behind it never leaves the agent.
Continuous checks against major sanctions and watchlists, refreshed as the lists change.
Trace whether a balance originates from clean, attributable flows without exposing the path.
Encode region rules so agents transact only where permitted, proven on the fly.
Grant a named regulator selective, revocable access to specific records, nothing more.
Every proof is timestamped and reproducible, giving compliance teams a defensible record.
Request a compliance proof over x402 or the MCP server and verify it before funds move. The proof is portable, so one check clears an agent across every counterparty that trusts the registry.
// require a clean proof before paying const proof = await klaro.prove({ agent: "vendor.agent", policy: ["sanctions", "sof", "region:EU"] }); if (!klaro.verify(proof)) halt("counterparty failed compliance"); // { result: "pass", discloses: 0 }
Each proof request is paid in USDC over x402, with fees routed to attesters and stakers.
Data attesters stake KLR to sign policy results and are slashed for false attestations.
Holders curate which lists and rule sets the registry recognizes as authoritative.
No. Policy checks run client-side and only the proof leaves your agent. Klaro never stores or transmits the underlying activity.
Through scoped viewing keys. An agent or operator grants a named auditor revocable access to specific records, preserving a compliance trail.
Yes. A mixer hides activity from everyone. Klaro proves an agent meets a policy while keeping details private, but always allows authorized disclosure.
A few cents in USDC over x402. Proofs are portable, so one clears an agent across every counterparty that trusts the registry.
Prove your agent is clean without giving up its book.