Version 1.4 — Last updated: June 4, 2026
This Privacy Policy describes how BAGHOLDER ("we," "us," or "our") collects, uses, and protects your information when you use our mobile application.
BAGHOLDER stores the following data locally on your device using encrypted storage (iOS Keychain / Android Keystore for secrets, an encrypted local database for structured data):
Other than the blocked-attempt mirror noted above, this data is NOT transmitted to our servers and remains exclusively on your device.
To protect against data loss (device replacement, app reinstallation, or accidental storage clearing), BAGHOLDER automatically creates an encrypted backup of your on-device data. This backup is encrypted on your device using a key derived from your wallet before transmission. We store the encrypted data on our server but cannot decrypt, read, or access its contents. Only your wallet can unlock the backup.
The backup includes: purchase history, bag configurations, app settings, and portfolio snapshots. On reinstall or device change, signing in recovers your wallet, which automatically decrypts and restores your data.
You can delete your backup at any time by deleting your account in Settings.
Our server stores the following data in a secured database:
During signup, before you have a wallet, the App fires events to our server to record outcomes at each gate (age verification, state selection, and legal-document review). These records exist so that we can apply the safeguards described below and so that we can produce an audit trail if a regulator ever asks how we screened our users. The events we record:
Each event is keyed by a per-device fingerprint — a random UUID issued by our server on first launch, stored in your device's secure storage. The fingerprint cannot be linked to your wallet, name, email, or any identity on our side; it exists only so we can recognize repeat attempts from the same install. The fingerprint resets if you reinstall the App on Android (iOS Keychain persists across reinstalls).
We also capture the request IP address at the moment of state attestation. This is used solely as a passive cross-reference for the audit trail — we do not use IP to block, throttle, or geolocate you in real time, and we do not display it back to you anywhere in the App. IP is recorded only on the attestation event itself, not on every subsequent App request.
We treat the captured IP address as a signal, not a
proof. Many factors — VPNs, mobile carrier NAT
(millions of mobile users share the same egress IP through their
carrier), corporate networks, school networks, IPv6 transition,
Tor — make the IP address of any request an unreliable
indicator of the user's actual physical location. We do not
claim, in our own analysis or in any defense we would offer to a
regulator, that the IP address proves where you live or where you
were when you attested. Your self-attested state of
residence is the primary record; the IP at attestation
is one secondary cross-reference for the audit trail. If you
later update your state of residence (see
Settings → State of Residence), we record a separate
state_changed event with the prior and new state
codes, preserving the full history of every state you have
attested.
Soft-block. If the same device exceeds a small number of rejection attempts at the age or state gate within a short window, the App will display a "we can't verify your eligibility right now, please try again later" message and temporarily disable further attempts. This is a friction control to prevent rapid retry-with-different-input attacks; legitimate users who fat-finger a digit are not affected.
These records are retained for one year and are never linked to your wallet, payment, or order records, even after you have a wallet.
These records are necessary for payment processing, service improvement, regulatory compliance, and feature functionality. They do NOT include your name, email address, phone number, or any other personally identifiable information (PII).
Important: your phone number and email address DO pass through our server when you make a buy — they are forwarded to Coinbase as required by their payment API. The transit is encrypted (HTTPS) and the values are discarded immediately after they're sent to Coinbase. No row of any database on our server contains your phone or email at rest.
BAGHOLDER does not store on any server:
BAGHOLDER integrates with third-party services that process your data under their own privacy policies:
Coinbase processes USD-to-USDC conversion via their embedded onramp API and provides public price chart data. On every buy we send Coinbase your wallet address, your verified US phone number, your email address, your IP address, the amount, and the destination chain. Coinbase uses these for fraud prevention, identity verification, receipt delivery, and tax reporting under their own privacy policy. We receive only confirmation of successful USDC delivery. No user data is shared for market data requests.
Tax reporting: BAGHOLDER is a non-custodial software tool and does not prepare or file tax forms on your behalf. Buying cryptocurrency through our integrated onramp is generally not itself a taxable event under current US tax law, but each subsequent token swap or sale can be a taxable event for which you are responsible. Any tax forms you receive related to your crypto activity will come from a third party (such as an exchange where you eventually sell), not from BAGHOLDER. Use the Activity CSV export in the app's Settings to share your purchase history with a qualified tax professional. Tax rules vary by jurisdiction and change over time — always consult a qualified tax advisor for your specific situation.
See: coinbase.com/legal/privacy
When you verify your phone, Google's Firebase service sends the
SMS and returns proof to us that you control the number. Firebase
sees your phone number; we receive only the verification result.
The phone is NOT visible to our server in this step. Firebase uses
the number for verification and abuse prevention.
See: firebase.google.com/support/privacy
Privy creates and manages your non-custodial embedded wallet using
advanced cryptographic techniques. Privy may collect your email
address or social login credentials for authentication. We do not
receive or store these credentials.
See: privy.io/privacy
We use Google's Firebase Crashlytics for crash reporting. When
the app crashes, Crashlytics sends Google a crash report that
includes a Crashlytics Installation UUID (an anonymous identifier
Google generates per app install — not linked to any account
or wallet on our side), your IP address (used by Google for
geographic crash distribution and discarded afterward), the stack
trace and exception details, device model, and OS version. We
strip wallet addresses and Solana addresses from error messages
before sending. Crash reports do NOT contain your name, email,
phone, or wallet address.
See: firebase.google.com/support/privacy
Third-party providers relay blockchain data between your wallet and the network. They may see your wallet address in transaction requests. No personal data is shared beyond the wallet address.
For purchases on Solana, our server sends your swap parameters
(input token, output token, amount, your wallet address) to
Jupiter's public aggregator API so it can return a routed swap
transaction your wallet then signs. Jupiter sees only the wallet
address and swap parameters.
See: jup.ag/legal/terms-of-use
We fetch public cryptocurrency market data from CoinGecko. No user data is shared with CoinGecko.
You have the right to:
If you are a California resident, the California Consumer Privacy Act (CCPA) provides you with additional rights:
To exercise these rights, contact us at support@getbagholder.com.
BAGHOLDER is available in 44 U.S. states. BAGHOLDER is not available in New York, Connecticut, Louisiana, Vermont, Minnesota, New Mexico, or the District of Columbia.
BAGHOLDER is not intended for anyone under the age of 18. We do not knowingly collect personal information from children under 18. If we become aware that a child under 18 has provided us with personal information, we will take steps to delete such information.
We use industry-standard security measures to protect your data, including:
No system is 100% secure. You are responsible for securing access to your device.
We may update this privacy policy from time to time. The current version is always available in the app under Settings. If we make material changes, you will be asked to review and accept the updated policy.
If you have questions about this privacy policy, contact us at:
support@getbagholder.com
getbagholder.com