StakeLiquid Stake
Toggle Mondo to use your liquid staked Celo positions vs regular staked Celo positions.

Privacy Policy

Last updated: April 2026

Applies to: mondo.celo.org

1. Who we are

Celo Mondo (mondo.celo.org) is an open-source staking and governance interface for the Celo blockchain, maintained by Celo Org. Source code is publicly available at github.com/celo-org/celo-mondo.

2. What data we collect and why

2.1 Usage analytics (PostHog)

We use PostHog (hosted in the EU at eu.i.posthog.com) to understand how the application is used. PostHog is configured with the following privacy settings:

  • No persistent identity profiles. PostHog never creates a profile tied to you across sessions.
  • Session-scoped only. All PostHog state is stored in sessionStorage, which is cleared when you close the tab. There are no analytics cookies.
  • No IP address. Your IP address is deleted from every event before it leaves your browser.
  • Wallet addresses scrubbed from URLs. Any EVM address in page URLs, referrers, and pathnames is replaced with [address] before being sent to PostHog.
  • Wallet dialogs excluded. The wallet connection dialog is excluded from autocapture.
  • Text and attributes masked in autocapture. Text content and HTML attributes are not captured by autocapture events.
  • Session replay input masking. Input fields are masked by default in session recordings. Other on-screen content (text, amounts, addresses) is visible in replays and is used solely for product improvement.

PostHog receives page views, page-leave events, clicks on UI elements (autocapture), session recordings (with input fields masked), and the custom events listed below. All events are anonymous.

EventProperties sent
bridge_clickedBridge name
wallet_connectedWallet type (e.g. "MetaMask")
wallet_disconnected(none)
stake_completedAction type, CELO amount, validator group address
lock_completedAction type, CELO amount
vote_completedProposal ID, vote type
upvote_completedProposal ID
delegate_completedAction type, delegation percentage
account_created(none)
nav_clickedNavigation item label
mode_toggledMode (CELO / stCELO)
proposal_viewedProposal ID, stage
proposal_filter_changedFilter value
vote_button_clickedProposal ID, vote type
validator_group_viewedValidator group address and name
stake_button_clickedValidator group address (optional)
stake_menu_clickedAction type, validator group address
delegatee_viewedDelegatee address and name
delegate_button_clickedDelegatee address (optional)
register_delegatee_clicked(none)
external_link_clickedURL, context

Your own wallet address is never included in any analytics event. Validator group addresses and delegatee addresses that appear in some events are public on-chain addresses.

2.2 Internal analytics database

Every analytics event listed in §2.1 is also stored in our own PostgreSQL database. Each record contains a random session ID (a UUIDv4 scoped to your browser tab session), the event name, event properties, and a timestamp. No wallet address, IP address, or persistent cross-session identifier is stored.

2.3 Geo-restriction check

When you connect a wallet, your request is sent to our /police endpoint. This uses Vercel's geo-enrichment headers to determine your country and region (ISO 3166 codes). No IP address is stored — only the country/region is logged transiently. Access is blocked (HTTP 451) for visitors from North Korea, Iran, Cuba, Syria, and Russian-occupied territories of Ukraine (Crimea, Luhansk, Donetsk) as required by applicable sanctions law.

2.4 OFAC sanctions screening

When you connect a wallet, your wallet address is checked against the OFAC Specially Designated Nationals list. This check is performed entirely in your browser — your wallet address is never sent to any external server for this purpose. The sanctions list is downloaded from a public GitHub URL and cached in your browser's localStorage for 24 hours.

2.5 Celo name resolution (namespace.ninja)

To display human-readable names next to wallet addresses in the UI, displayed wallet addresses are sent to a GraphQL endpoint operated by Namespace (celo-indexer-reader.namespace.ninja). This is a read-only lookup. Resolved names are cached in your browser's localStorage (key: celonames_cache) with no expiry. Only addresses actively displayed in the UI are queried.

2.6 Staking auto-activation (Upstash)

When you stake CELO, a delayed activation job is scheduled via Upstash QStash. The following data is sent to Upstash: your wallet address, the validator group address, and the transaction hash. This data is used solely to trigger the required on-chain activateForAccount call approximately 24 hours after staking. Upstash is governed by the Upstash Privacy Policy.

2.7 stCELO Cloud Functions

For stCELO withdraw and claim operations, your wallet address is sent as beneficiary to a Celo-operated Cloud Function at us-central1-staked-celo-bot.cloudfunctions.net. This is used to trigger the relevant on-chain transaction on your behalf.

2.8 Wallet connection (WalletConnect / RainbowKit)

Wallet connectivity is handled by RainbowKit and WalletConnect. When connecting via WalletConnect, session data (wallet type, chain ID, connection session) is relayed through WalletConnect's servers. This is governed by the WalletConnect Privacy Policy.

2.9 Delegate registration

If you choose to register as a governance delegate, you submit your name, wallet address, image, website, Twitter handle, and bio. This data is submitted as a pull request to the public celo-org/governance GitHub repository and becomes publicly visible.

3. What we do not collect

  • Your wallet address is never sent to PostHog, stored in our analytics database, or logged server-side.
  • Private keys or seed phrases — the application never requests, handles, or transmits these.
  • Cookies — no cookies are set by this application. PostHog is configured to use sessionStorage instead of cookies.
  • Cross-session tracking — session identifiers are stored only in sessionStorage and are cleared when you close the tab.

4. Local storage used by this application

StorageKeyContentsCleared
sessionStorageanalytics_session_idRandom UUIDv4 (anonymous session token)On tab close
sessionStoragePostHog SDK stateAnonymous PostHog SDK dataOn tab close
sessionStoragemodeStaking mode preference (CELO / stCELO)On tab close
localStoragecelonames_cacheMap of wallet address → Celo nameManual clear only
localStorageOFAC list URLCached OFAC sanctions address list24-hour TTL
localStoragethemeUI theme preference (dark/light)Manual clear only

5. Third-party processors summary

ProcessorData sentPurposeRegion
PostHogAnonymous usage events, page viewsProduct analyticsEU
WalletConnectWallet session metadataWallet connection relayGlobal
Namespace (namespace.ninja)Wallet addresses displayed in UICelo name resolutionUnknown
UpstashWallet address, tx hashStaking auto-activation queueGlobal
stCELO Cloud FunctionsWallet addressstCELO protocol operationsUS (GCP)
GitHub (Octokit)Name, address, bio (delegate registration only)Governance delegate registryGlobal

6. Your rights

Depending on your jurisdiction you may have the right to access, correct, or delete data we hold about you. Because our analytics data is stored against a random per-session UUID (not linked to your identity), we are generally unable to locate records for a specific individual. For any privacy requests, contact us via the GitHub repository at github.com/celo-org/celo-mondo/issues.

7. Changes to this policy

We will update this policy when the data practices of the application change. The "Last updated" date at the top will reflect the most recent revision. Changes are traceable in the git history of the repository.

Powered by CeloBlockscout and Forno · Privacy