Legal

Privacy Policy

Effective 1 October 2026 · updated 22 October 2026 (what changed) · Apex AI Labs ("Mizan", "we") · support@joinmizan.app

This policy explains what information Mizan collects, why, where it goes, and what you can do about it. It covers the Mizan mobile app and the website joinmizan.app. We have written it to match what the software actually does today; when the software changes in a way that matters to you, this policy changes with it and the date above moves.

1. The short version

2. What we never hold

3. What we collect, and why

Everything in this table is either necessary to provide the app (the legal basis where one is required is performance of our contract with you or our legitimate interest in running a safe service) or clearly optional and off until you turn it on.

InformationWhere it comes fromWhy we have it
Sign-in identity — an identifier from Apple or Google, the email address that comes with it, and the internal ID our sign-in provider (Privy) issues for it. If you sign in with Google, Privy also receives your name from Google; Mizan never reads or stores it. We do not receive your Apple or Google password.You, when you sign in.To know which wallet is yours and to keep anyone else out of it.
Wallet address — the public address of your Solana wallet.Your device, when the wallet is created.To show your holdings and history, to build swaps and sends you ask for, and to route the service fee correctly.
Profile — a handle, and if you add them a photo, a banner and a short bio; notes you write on your positions; who you follow; and your visibility setting (Public or Private; Public by default once you have seen how it works — see section 6).You, if you choose.So people can find and follow you. Who you follow decides what appears in your activity feed — it is how the feed is personalized for you. See section 6.
Country — a two-letter country code, derived from your IP address when you use the app.Derived on our server from your connection, using a geolocation database (MaxMind).Mizan is only available in some regions. We must know where a request comes from to apply that rule. The country is worked out for each request and is not kept on your account. The one place it is stored is the early-access list, below.
IP address.Your connection.To derive the country above, to limit how many requests one address can make in a short window (abuse protection), and — only when you start a card purchase — to pass to Stripe so it can check where you are buying from. Rate-limit counters are deleted within a day. Like every website, our hosting providers keep standard server logs for a limited time.
Device attestation — a key identifier that Apple's App Attest issues for your installation.Your device, via Apple.To confirm requests come from a genuine, unmodified copy of the app. It identifies an installation, not a person, and it is not used for advertising or tracking.
On-chain activity — the holdings, transactions and swaps of your wallet address.The Solana blockchain, read through an indexing provider (Helius).To show your balances and history quickly and to keep them accurate. This is public data; see section 4.
State you live in — the U.S. state or territory you choose before your first card purchase.You, when you buy with a card for the first time; you can change it in Settings.Card purchases are not offered everywhere: not in Hawaii, which Stripe's onramp terms exclude, and not in New York and U.S. territories, which we exclude while our legal review is pending. It is used for card purchases only — never for swaps, sends or anything else.
Card purchase records — each time you open Stripe's page from Mizan: an internal ID, Stripe's ID for the purchase, the status Stripe reports, the dollar and SOL amounts Stripe reports, and the blockchain transaction Stripe names as the delivery.Our server when you start a purchase; Stripe, as the purchase goes on.To show you how your purchase is going and to match it to the SOL arriving in your wallet. We never receive your card number, bank details or identity documents.
Send-address check — the address you enter when sending.You, when you send.Before a send, our server checks the destination against public sanctions lists (the U.S. OFAC list). The check runs and returns; it is not used to build a profile of you.
Push token — the device token used to deliver notifications.Your device, only after you allow notifications.To tell you when a transaction confirms. Turn notifications off in your phone's settings and the token stops being used.
Crash reports and app sessions — what went wrong in the app and the state of the app when it did; and, for each time the app is used, whether that session ended in a crash, with a random identifier for the installation.The app, via Sentry.To fix bugs and to know how often the app crashes. Not linked to you: personal details are switched off, wallet addresses and identifiers are scrubbed before reports leave the device, and performance tracing is off. See section 8.
App update checks — each time the app starts, it asks Expo's update server whether a newer, signed version of the app's code is available. The request carries a random identifier the app creates for this installation, the app version and the update it is running, the platform (iOS), and — only if the app's previous start failed — a short error message.The app, via Expo (EAS Update), in versions from 1.2.0 (13).To deliver fixes without waiting for an App Store release. Updates carry fixes only; new features still go through Apple's review. Every update must be signed with Mizan's own key, and the app refuses any that is not. The identifier is not linked to your account and Mizan does not read it; Expo uses it to roll a fix out to a share of phones first. See section 8.
Swap review counts — for each swap review: which network it was on, whether it was confirmed, whether it showed a price warning (and which) or an "out of date" warning, how many times it refreshed itself, and the app version.The app, via PostHog.To check that a swap review works first time, every time, and to find out why when it does not. No account, wallet address, amount, token, device name, location or IP address is attached. See section 8.
Early-access email — the address you give on this website or on the app's "not available in your region yet" screen; from the app, also your country (as above).You; the country is derived from your connection.To tell you, in one message, when Mizan launches in your region; and, from the country, to see where people are waiting, so we know where to open next (counts by country, not a profile of you). Nothing else. Stored in a table nobody can read from the internet.
Support messages — what you write to support@joinmizan.app.You.To answer you.

We do not collect your contacts, your location beyond the country above, your photos, or anything from other apps. We do not use advertising identifiers and we do not have an advertising SDK in the app.

4. Public blockchain data

Solana is a public ledger. Every transaction your wallet makes — what you sent, received or swapped, when, and with which address — is recorded on the blockchain, visible to anyone, and cannot be edited or deleted by us or by anyone else. Mizan reads this data to show it to you; it does not create the exposure and cannot remove it. If you would rather a particular activity not be linked to an address people know is yours, use a different wallet for it.

5. Adding funds

There are two ways to add funds.

Before your first card purchase we ask which U.S. state you live in, because card purchases are not offered everywhere (section 3). What the app shows about a purchase is what Stripe reports; your balance is what the blockchain shows.

6. Profiles and the activity feed

Mizan has a social layer. Who you follow decides what appears in your activity feed. The app first shows you, once, how it works, and you choose one of two settings. You can change it at any time in Settings → Privacy.

Public (the default). Once you choose a handle, anyone can find you, follow you and open your profile: your handle, and a photo, banner and short bio if you add them; your wallet value (the total of what you hold, and how it has changed); your gain or loss in dollars and your percentage return; your positions, with how much you hold of each and any notes you wrote on them; and your place on the leaderboard, which ranks people by measured gain in dollars. People who follow you see your swaps, with their amounts, in their activity feed.

Private. Other people can still find your profile and see your handle, photo, banner, bio and follower counts, and that your account is private. To see anything else they send a follow request, which you accept or decline; declining does not tell them. Only people you approve see your wallet value, gain, return, positions and swaps — the same things a Public account shows everyone. A Private account is never ranked on the leaderboard. Switching to Private keeps the followers you already have; you can remove a follower at any time, and they then stop seeing your account, including what was already in their feed. Switching back to Public accepts any requests still waiting.

An account marked as belonging to a minor is never shown publicly, whatever its settings. If you used Mizan before wallet values became visible, yours is not shown until the app has told you about it. Making a setting stricter applies immediately to what others can see; making it looser does not reveal activity from before, because it was never recorded for the feed. You can remove your handle at any time.

7. Selling personal information — and your opt-out

Today, we do not sell or share your personal information in the sense those words carry under U.S. state privacy laws such as the California Consumer Privacy Act, and we do not disclose it to third parties for their own marketing.

We may use and share aggregated, de-identified statistics — for example, "which screened assets are swapped most" or how many people use a feature in a month. These cannot reasonably be linked back to you, and we commit not to attempt to re-identify them.

If we ever decide to sell or share personal information at the individual level, we will, in this order: update this policy to say exactly what and to whom; add an opt-out switch inside the app; and give you notice before the first such sale.

You can record an opt-out now. There is no switch in the app yet because there is nothing to switch off. If you want your preference on file so it is honoured automatically should our practices change, email support@joinmizan.app with the subject "Do not sell or share my personal information" from the address on your account, or include your handle or wallet address. We will confirm within 15 business days and apply it without asking you to justify it.

8. Analytics and crash reports

Crash reporting goes through Sentry. It is configured so that personal details are not sent, wallet addresses and account identifiers are removed from reports before they leave your device, and performance traces are disabled. Sentry also counts app sessions — whether each one ended in a crash — using a random identifier for the installation, so we can see how often the app crashes; it is not linked to your account or to you. All of it is off entirely in development builds. Each report also says which version of the app's code was running — the app version and, if one is installed, which update — which is the same for everyone on that version.

App update checks go to Expo, the company behind the tools the app is built with. When the app starts it asks Expo's update server whether a fix is waiting, and downloads it in the background; it takes effect the next time the app is opened. The request carries a random identifier for this installation (created by the app, kept in the app's storage, deleted with the app), the app version and the update it is running, the platform, and — only if the previous start failed — a short error message. It carries no account, wallet address or email address, and Mizan does not receive or read the identifier. Every update is signed with Mizan's own key, and the app refuses any update that is not.

Swap review counts are the only analytics in the app, through PostHog. When a swap review ends, the app sends one record: which network the swap was on (Solana or another), whether you confirmed, whether a price warning or an "out of date" warning appeared (and which), how many times the review refreshed itself, and the app version. Nothing else. It carries no account, wallet address, amount, token, device name or model, language, time zone or location.

There is no individual side to this data. The app does not create a profile of you at PostHog, and the random identifier it uses is held only in memory — a new one every time the app starts — so two uses of the app cannot be linked to each other, let alone to you. Location lookup is switched off in the app itself, and PostHog is set to discard the IP address a request arrives from. Screen recording, automatic event collection and app-open tracking are all off. Because nothing links these records to a person, they cannot be found or deleted by account, and there is nothing in them for the opt-out in section 7 to act on. If we ever collect anything at the individual level, we will update this policy and the date above before that change ships.

9. Who processes data for us

We use a small number of providers to run Mizan. Each receives only what its job requires and is bound by terms that prohibit using the data for its own purposes.

ProviderWhat they doWhat they see
PrivySign-in and the embedded self-custodial wallet on your device.Your Apple/Google sign-in identity and email address — and, if you sign in with Google, your name from Google (Mizan never reads or stores it) — the public wallet address, and one piece of the split key, which cannot sign on its own. The full key is assembled only on your device; Mizan never receives any piece of it.
SupabaseOur database and server functions.The account and activity data in section 3.
HeliusReads the Solana blockchain and tells us when your wallet's activity changes.Your public wallet address and its public on-chain activity.
JupiterFinds the best route for a swap across Solana's markets.The swap you ask for and your public wallet address, so the swap can be built for you to sign.
StripeCard purchases of SOL, on Stripe's own page (section 5). Purchases are processed by Stripe, the merchant of record (per Stripe's documentation). Stripe acts for itself here, not only for us: its own privacy policy covers what you give it.From us: your public wallet address, the IP address of the request, and an internal purchase ID. From you, directly: whatever you enter on Stripe's page. Mizan does not receive that.
Zero HashStripe's crypto services provider: the cryptocurrency services in a card purchase are powered by Zero Hash LLC and Zero Hash Liquidity Services LLC (section 5). It acts under its own terms and privacy policy, which you accept on Stripe's page.Nothing from us directly. What you enter on Stripe's checkout may be collected by Zero Hash as Stripe's crypto services provider; Mizan does not receive it.
MaxMindA geolocation database that runs on our server.Nothing is sent to MaxMind; the lookup happens on our side.
SentryCrash reports (section 8).Crash details with identifiers removed.
PostHogSwap review counts (section 8), stored in the United States.The counts described in section 8 and the app version. The IP address a request arrives from is discarded.
ExpoDelivers signed updates to the app's code — fixes — and hosts them (sections 3 and 8), from app version 1.2.0 (13).Each time the app starts: the random installation identifier, the app version and the update it is running, the platform, the IP address the request comes from, and — only after a failed start — a short error message. No account, wallet address or email address.
Apple and GoogleSign-in, app distribution, push notifications, device attestation.As described in their own policies for those services.

We may also disclose information where the law requires it, to protect the rights and safety of users or the public, or as part of a merger, acquisition or sale of the business — in which case this policy continues to apply to the information transferred, and you will be told.

10. How long we keep things

11. Your controls and rights

We will ask for enough to confirm the request comes from the account holder — normally an email from the address on the account — and nothing more.

12. Security

Your full key exists only on your device. Every request to our servers is authenticated and checked against the account it claims to be from; the database enforces row-level ownership so one account cannot read another's rows; secrets live only on the server; and every transaction is simulated before you are asked to sign it, so an unexpected drain is refused rather than signed. No system is perfectly secure, and no one at Mizan will ever ask you for your keys, recovery information or password. If you believe something has gone wrong with your account, write to support@joinmizan.app immediately.

13. Children

Mizan is for adults. You must be at least 18 to use it, and we do not knowingly collect information from anyone younger. If you believe a child has created an account, tell us and we will delete it.

14. Where data is stored

Our servers and providers are located in the United States. If you use Mizan from elsewhere, your information is transferred to and processed there. Where the law requires it, we rely on standard contractual clauses or an equivalent safeguard with our providers for that transfer.

15. Changes to this policy

When we change this policy in a way that matters, we will update the date at the top, note what changed, and tell you in the app before the change takes effect. Continued use after that date means the new version applies. Earlier versions are available on request.

22 October 2026: added app update checks through Expo (sections 3, 8 and 9), from app version 1.2.0 (13), and that crash reports name the version of the app's code that was running.

16. Contact

Apex AI Labs · support@joinmizan.app · joinmizan.app