Privacy
What Hyprr stores, what it doesn't, and where the data goes.
Wallet keys
Hyprr never asks for your main wallet’s private key or seed phrase. The link flow uses WalletConnect: your wallet app holds the key, Hyprr only sees the signed messages your wallet returns.
When you link a wallet, Hyprr generates a fresh agent key locally on your device.
You approve this agent key once via WalletConnect (Hyperliquid’s approveAgent action).
From then on, order signing happens locally with that agent key — your main wallet is
only used to revoke the agent if you want to disconnect.
The agent key is stored on-device:
- Android: in an SQLCipher-encrypted database. The encryption passphrase is held in Android’s hardware-backed Keystore via EncryptedSharedPreferences.
- iOS: in a SQLite database protected by
NSFileProtectionCompleteUntilFirstUserAuthentication— AES-256 at rest with a per-file key derived from your passcode entangled with the device’s hardware key; unreadable on a stolen device that hasn’t been unlocked since boot.
The database is excluded from cloud backup (Android allowBackup=false + iOS
NSURLIsExcludedFromBackupKey).
Network traffic
Hyprr contacts three sets of servers, and nothing else:
- Hyperliquid —
https://api.hyperliquid.xyz(REST) andwss://api.hyperliquid.xyz/ws(WebSocket) for market data and orders. We pin Hyperliquid’s TLS certificate chain so a compromised CA can’t intercept the traffic. - WalletConnect — Reown’s public relay, only while you’re actively linking a wallet. Payloads are encrypted end-to-end between your device and your wallet app; Hyprr never proxies wallet signatures through our infrastructure.
- Crash reporting —
crash.codeskraps.com, only when an exception fires. See Crash reports below.
Analytics
No usage analytics, no behavioural telemetry, no advertising IDs. Hyprr does not track which screens you visit, which assets you view, or how often you trade.
Crash reports
Hyprr ships unhandled exceptions and selected non-fatal errors to a self-hosted
GlitchTip instance at crash.codeskraps.com (no third
parties involved — the backend is operated by the same developer as the app).
Each report contains:
- the exception type, message, and stack trace,
- the app release (e.g.
1.0.0) and environment (mainnetortestnet), - the Sentry SDK’s default device context — model, OS version, locale, free memory at crash time.
Each report does not contain:
- your wallet address — any
0x+ 40-hex-char string in an exception message is redacted to0x….<last4>on-device before the event is queued for upload, - your agent key, signatures, or any database contents,
- screen contents, taps, or navigation history (no breadcrumbs from UI),
- a stable user identifier — events are not linked across launches.
Performance traces (timing samples, not crashes) are sampled at 1%. Crash events are sent at 100%.
There is no in-app opt-out at the moment. If you want to disable crash reports
entirely, the only option today is to block crash.codeskraps.com at the
network level; an in-app toggle is on the roadmap.
Contact
Privacy questions or data requests: me@codeskraps.com.
To delete data collected by the app, see the data deletion request page.