Xochi
Trade

Privacy Policy

Last Updated: November 2026

1. Introduction

Xochi offers public settlement and stealth settlement on a trusted stealth chain (Ethereum or Base, as the solver serves it). Recipient-private Shielded settlement and ZK compliance enforcement are targets, not live controls. This policy distinguishes current operator-visible records from proposed privacy and retention safeguards.

2. Information We Collect

Wallet Address: Public blockchain address for service identification. Stored with each trade record (deleted 90 days after the trade's last update in a final state unless a retention hold applies, Section 12), and kept without automatic deletion in account records such as your trust tier and tier proofs, stealth registration, Mandates, x402 payments, compliance screening results and promo code redemptions (kept so per-wallet limits stay lifetime limits). Also in logs.

Transaction Data: Trade intents, execution data and your transaction signatures, necessary for order fulfillment, including token pair, amounts and timestamps. Deleted with the trade record 90 days after the trade's last update in a final state (completed, failed, refunded or expired). For Stealth trades, the link between your wallet and the stealth payout (the payout transaction hashes) is deleted 7 days after the trade completes, fails or is refunded, unless a retention hold applies (Section 12); an expired trade keeps it until its trade record is deleted, and trades still in progress keep it until they resolve. A hold is not visible from outside: after the 7 days every request for the trade, including one with its read token, is answered as if the link had been deleted. Kept after that deletion: your wallet, the token pair, the destination chain, amounts, the times the trade changed status, the deposit and refund transactions, and a yes/no flag for whether the payout was delivered. Records of a stealth claim are deleted 7 days after the claim was started. Server logs follow their own retention and are not covered by this deletion. Deletion does not make the link impossible to reconstruct: we keep an index of public on-chain stealth announcements, which can be matched to your trade by amount and timing, as on the public chain. Riddler, the solver that fills orders, keeps its own record of the stealth payout, which this deletion does not cover; its retention period is not yet fixed.

Trust Score Data: Credential hashes from identity providers you connect. We store hashes only, not raw credentials. Retained until you revoke.

IP Address: Used for rate limiting and security. Kept for the rate-limit window; not stored in a swap failure report.

Error Reports: When a swap fails, the app can send a report: wallet address, intent and quote IDs, status, a sanitised reason and its category, the route and amount, app version, and the client's timestamp. It does not record your IP address or browser user-agent. Deleted after 30 days. We do not collect device identifiers, browser fingerprints, or usage analytics.

3. Information We Do Not Collect

We do not collect: private keys, seed phrases, government ID numbers or images, biometric data, full names or addresses, social security numbers, or any raw personally identifying information (PII).

4. How We Use Information

We use your information to execute trades and process intents, calculate fee rates (Standard for every user until Trust Score launches), detect and prevent fraud, comply with legal obligations, and improve the Service.

5. Zero-Knowledge Compliance (Xochi's ZK Compliance Oracle)

Xochi's ZK Compliance Oracle is a planned design. It is not live yet. As of July 18, 2026 we do not run sanctions screening, risk scoring, or anti-structuring checks on your trades, and no compliance oracle sits in the trade path.

When it ships, compliance checks will run as zero-knowledge circuits: your device generates a proof, and verifiers confirm it without seeing your trade amounts, exact scores, or screening details. We will update this policy before any screening goes live.

6. Privacy Levels

Privacy levels are not guarantees against operators or chain analysis. Solvers receive the exact amounts and destination needed to execute a trade.

Open/Public: Full trade details visible.
Standard: Trading pair and amount visible.
Stealth: One-time recipient address; amounts remain public.
Private / Shielded: Unavailable. The target is recipient-private Aztec settlement, not amount-private execution. Amount, token, solver, timing and source-chain activity remain public or inferable. Xochi, Riddler and the bridge see the destination and amount. For a payout in zk.money's DAI on Aztec, zk.money (Obsidion Labs Limited) also receives the recipient's Aztec address and the amount, through the signing enclave that must co-sign every such payment; zk.money, not Xochi, decides how it handles them, and its enclave software is not published.
Sovereign: Unavailable; excluded from the first shielded release.

The target requires recipient-owned spending and viewing keys, local discovery, backups and independent spendability. Operators must not hold those keys. Losing them can make funds unrecoverable. A callback, transaction hash or operator balance is not proof that you received spendable funds.

7. Data Sharing

We share data with cloud infrastructure providers (Cloudflare for hosting and delivery, Datadog for server logs), identity providers for verification, and solvers for trade execution based on your privacy tier. Our server logs do not include your IP address; Cloudflare processes it to serve each request. If you use es.xochi.fi (the alternate address for networks that block Cloudflare), our relay host also processes your IP address and requests while passing them on; it keeps no access log.

If a swap fails and you send us a report, that report records your wallet address so we can find the failure, but not your IP address or browser. It is only created when a swap fails, and it is deleted 30 days after it is received.

We may disclose information when required by valid subpoenas, court orders, or government requests. We do not sell your personal data.

8. Security

We use TLS 1.3 for all connections, AES-256 encryption at rest, zero-knowledge proofs for compliance, and role-based access controls. We conduct regular security audits and maintain a bug bounty programme.

No security measures are perfect. You are responsible for maintaining the security of your wallet and private keys.

9. Your Rights

You may request access to, correction of, or deletion of your personal data (subject to legal retention requirements and blockchain immutability). You may withdraw consent by disconnecting identity providers.

To exercise rights, contact us with your wallet address. We verify identity by requesting a signed message from your wallet.

10. Regional Rights

EEA (GDPR): Data transfers rely on Standard Contractual Clauses. You may lodge complaints with your supervisory authority.

California (CCPA/CPRA): You have rights to know, delete, and opt-out. We do not sell personal information.

Other: We comply with UK-GDPR, Brazil LGPD, and Switzerland FADP.

11. Cookies and Local Storage

Xochi does not set cookies. Not for sign-in, not for security, not for wallet state, not for anything. We add no analytics and load no third-party scripts, so nothing here follows you to other sites. One exception we do not yet control: the wallet library contacts WalletConnect, including a usage-reporting address they run, when any page loads. See Cookies and Local Storage.

The app does save a small amount of data in your browser's own storage so it can remember your theme, your recent swaps on this device, and your sign-in for the current tab. That data stays on your device. It is never sent to us. Clearing your browser data removes it.

See exactly what Xochi saves in your browser, what each item is for, and how to clear it.

12. Data Retention

Attestations are kept until you revoke them. Tier proofs are valid for 7 days but the record is not yet deleted; risk scores expire after 7 days. Sanctions screening results are kept as the law requires. IP addresses are kept for the rate-limit window and are not stored in swap failure reports. Swap failure reports are deleted after 30 days. Server error logs are kept for our log provider's retention period. Fee revenue records (intent ID, fee amount, token, chain and time; no wallet) are not yet deleted automatically. Your encrypted trade history is under your control.

A trade record (the intent, its status history, its quote, its settlement rows and any review items and notes on it) is deleted 90 days after the trade's last update in a final state (completed, failed, refunded or expired); trades still in progress are kept until they resolve. A trade is kept past the 90 days while a hold lasts, and deleted once it ends: an open compliance alert on the trade or its wallet (pending, escalated, or evidence-bundled with no filing recorded) until a compliance officer records the filing or dismisses it; a failed, refunded or expired trade that shows a delivered payout until an operator closes the review opened for it (a payout reported later opens a new review); a payout not yet delivered until it is delivered or its review is closed; any open operator review, and for 7 days after one is closed; a shielded note that can still be claimed, until it is claimed.

A hold is not visible from outside: once the 90 days have passed, the service answers every request for the trade, yours or anyone's, exactly as if it had been deleted. Only our operators and compliance officers can see a held trade. Review notes never contain transaction hashes or addresses. A refund's transaction is stored apart from the trade's delivery, so a refund is never read as a delivered payout.

Compliance alerts are kept while open, and 7 years from closure once closed (report filed, dismissed or expired). Deleted rows stay in our database provider's point-in-time recovery for up to 30 days. Blockchain data is permanent and immutable.

Bounded encrypted shielded recovery records, an approved resolved-record retention schedule and minimal replay tombstones are proposed controls, not implemented ones. Unresolved liabilities must remain retained until safely resolved. Encryption at rest would not remove operators' runtime visibility. Retention and legal approval remain prerequisites; this disclosure does not implement deletion.

On the Shielded testnet trial run (design A), Xochi will store the allowlist root and root block from each recipient-readiness record beside your source wallet. That links your wallet to the public Aztec allowlist update that added your recipient; while the allowlist is small, that update covers few recipients. We accept and disclose this linkage rather than remove it. The record does not store your recipient's position in the allowlist. This applies only to that trial run's allowlist: the planned production design has no recipient allowlist.

If you enroll a Shielded recipient on that trial run, Xochi stores your source wallet with the Aztec recipient address, its public keys, both enrollment signatures and your backup commitment. Revoking the enrollment, or letting it expire unused, stops new use but does not delete this record: it is kept indefinitely so a signed enrollment cannot be replayed.

13. Contact

For privacy-related inquiries or to exercise your rights, contact us at [email protected]

HomeLearnWhitepaperTermsPrivacyCookiesPublic Goods