One plain-English page. No lawyer-speak. If anything on this page turns out to be false in practice, that is grounds for you to uninstall Shield and tell everyone you know. We publish a monthly signed warrant canary so you can check this hasn't changed.
| Category | Sent to Zoza? | Retention |
|---|---|---|
| Wallet addresses, private keys, seed phrases Any form, any chain. |
Never | We never see or touch these. They stay in your wallet. |
| Transaction contents / signatures you sign After our modal, signing happens inside your wallet. |
Never | The modal's decision is local. We don't receive the signed payload. |
| Your approval ledger The list of approvals you've granted, shown in the popup. |
Local only | Stored in chrome.storage.local on your device. Deleted when you uninstall. |
| Clipboard hashes (for clipboard guard) SHA-256 of addresses you copied. |
Local only | In-memory + chrome.storage.local. Auto-deleted after 5 minutes. |
| URL lookups "Is this domain in the phishing registry?" |
Yes, minimally | Only the domain (not full URL, not query params) is sent. We log the request count per domain-hash for 7 days, then delete. See below. |
| Phishing reports you submit When you click "Report phishing" in the popup. |
Yes | Domain + your optional comment + a rotating reporter token (not your IP, not your wallet). Kept for 90 days while investigators assess. |
| Our phishing + verified-dApp registry | Public | Fully public, hash-chained, signed. Verify here. |
| Telemetry / analytics events "feature_used", click counts, etc. |
None shipped | Shield does not emit telemetry. No Google Analytics, no Sentry, no Mixpanel, no PostHog. If we add any in the future, it will be opt-in with an explicit toggle AND an entry in the audit log. |
| IP address | At request time | Our CDN (Cloudflare) logs IPs for DDoS protection. Logs are rotated in 72 hours and never joined to any Shield-specific identifier. |
The extension does need to ask our server "is example.com in the phishing registry?" That query
is unavoidable for the core defense. Here's how we minimize what we learn:
https://example.com/wallet?k=secret becomes example.com.background.js: checkURL().shield-api.zoza.world. These are joinable to a user only by timing correlation, not by any identifier we hold.If we receive a subpoena we believe is unlawful, illegitimate, or overbroad, we will challenge it. We publish a monthly warrant canary stating we have not received a National Security Letter or its equivalent. If that canary stops appearing, treat it as signal.
You do not have to trust us. Every claim is verifiable:
| Claim | How to verify |
|---|---|
| Extension doesn't send wallet data | Open Chrome DevTools → Network while you use a dApp. Only shield-api.zoza.world receives traffic, and only /v1/check (domain string) and /v1/registry (snapshot download) appear. |
| Approval ledger is local-only | Request source access (email security@zoza.world), open products/zoza-shield/extension/background.js. Search for RECORD_APPROVAL — every handler writes to chrome.storage.local, nothing network. Public GitHub link lands with the open-source release. |
| Installed extension matches the source | Run bash scripts/shield-build.sh from the tagged commit (source available on request). Compare SHA-256 against the release notes published on the warrant canary. |
| Registry hasn't been tampered | Open the audit verifier. Paste the public root key. Verify the hash chain in your browser with no trust in our server. |
Every change to this page corresponds to a signed entry in the audit log
with action retention_policy_update. If the live text on this page contradicts the last signed
audit entry, the live text is wrong and should not be trusted.
Major changes (adding telemetry, new data collected, retention lengthened) will be announced 30 days in advance via a blog post and a warrant-canary-adjacent signed statement.
Security issues: security@zoza.world (PGP key at
/.well-known/security.txt).
Privacy questions: privacy@zoza.world.
Law enforcement: legal@zoza.world. Valid process
only — informal requests receive a copy of this page.