Device & Session Security
The enforcement layer on every customer device: screenshots, calls, networks, device limits and high-value step-up, with each control writing to the audit chain.
Attested devices
36,412
1 iOS + 1 Android + 1 web per account
Network blocks, Feb
482
VPN 311 · open Wi-Fi 171
Step-up checks, Feb
1,204
biometric + liveness at £5,000+
Lost-mode deregistrations
17
re-registration requires full KYC
Security policy register
Every control, its platform mechanism, and the audit action it emits
| Policy | Scope | Enforcement | Audit action |
|---|---|---|---|
| SEC-P1Screenshot blocking | iOS · Android · Web | FLAG_SECURE on Android (capture returns black frame); iOS capture detection with immediate notice; web watermark + PrintScreen logging. Every attempt is an audit event. | SECURITY_SCREENSHOT_BLOCKED |
| SEC-P2Screen-recording detection | iOS · Android · Web | UIScreen.capturedDidChange (iOS) and MediaProjection callbacks (Android) blank the UI while recording; in-page getDisplayMedia intercepted on web. Logged across all pages. | SECURITY_RECORDING_DETECTED |
| SEC-P3In-call guard | iOS · Android | CXCallObserver / TelephonyCallback surface active incoming & outgoing calls: persistent scam warning shown, transfers disabled, group calls (incl. WhatsApp) treated as high-risk and blocked while the app is active. | SECURITY_CALL_WARNING |
| SEC-P4VPN disallowed | All platforms | NEVPNManager / NetworkCapabilities VPN transport check + server-side egress-IP classification; session refused while a VPN is active. | SECURITY_VPN_BLOCKED |
| SEC-P5Open/unsecured Wi-Fi disallowed | All platforms | Captive-portal & security-type checks (no open/WEP networks); web requires TLS context. Session blocked until a trusted network is used. | SECURITY_OPEN_WIFI_BLOCKED |
| SEC-P6Device limit (1 iOS + 1 Android + 1 web) | Account | Attested device registry (Play Integrity / App Attest); registering a third mobile device or second same-platform device evicts the oldest; one concurrent web session; newest login wins. | SECURITY_SESSION_EVICTED |
| SEC-P7Lost-mode auto-deregistration | iOS · Android | Device flagged lost (user, ops, or MDM signal) is deregistered and signed out on next heartbeat; re-registration requires full KYC + liveness. | SECURITY_LOST_MODE_DEREGISTER |
| SEC-P8Geolocation monitoring | All platforms | Coarse location logged per session (IP-resolved on web, fused provider on mobile); jurisdiction mismatches feed KDX-R8 arbitrage monitoring. | SECURITY_GEO_LOGGED |
| SEC-P9Biometric + liveness | Registration · £5,000+ transfers | Doc + liveness at enrolment; biometric + liveness step-up before releasing any transfer at or above £5,000 (or £-equivalent). | SECURITY_STEP_UP_PASSED |
Device registry (sample)
Attested via App Attest / Play Integrity at install; one active device per platform, per account
| Device | User | Platform | Attestation | Network | Last geo | Status |
|---|---|---|---|---|---|---|
ios-8842 iPhone 15 | a.okonkwo | iOS | App Attest ✓ | WPA3 · home | London, UK | Active |
android-2210 Pixel 8 | a.okonkwo | Android | Play Integrity ✓ | WPA2 · office | London, UK | Active |
web-4f2a Chrome · macOS | a.okonkwo | Web | TLS session | TLS 1.3 | London, UK | Active |
web-9c11 Safari · macOS | a.okonkwo | Web | TLS session | TLS 1.3 | London, UK | Evicted |
android-1077 Galaxy S23 | s.khan | Android | Play Integrity ✓ | VPN detected | Karachi, PK | Blocked (VPN) |
ios-5521 iPhone 14 | m.alrashid | iOS | App Attest ✓ | None | Dubai, AE | Deregistered (lost) |
ios-3390 iPhone 13 | f.abubakar | iOS | App Attest ✓ | WPA2 · home | Lagos, NG | Active |
Regulatory transaction limits by jurisdiction
Enforced in-app before any conversion; the tightest applicable limit wins. Biometric + liveness step-up applies at £5,000+ everywhere.
| Jurisdiction | Local thresholds | Per-tx cap (£) | Daily cap (£) | Regulatory basis |
|---|---|---|---|---|
| 🇬🇧UK · GBP | £500 (sandbox) / £10,000 | £500 | £25,000 | FCA Sandbox restriction; post-VoP firm limits |
| 🇳🇬NG · NGN | ₦5m (T2) · ₦50k/day cash-out (T0) | £2,560 | £12,800 | CBN tiered-KYC limits; agent cash-out thresholds |
| 🇺🇸US · USD | $3,000 recordkeeping / $10,000 CTR | £7,200 | £18,000 | FinCEN travel rule & CTR thresholds |
| 🇪🇺EU · EUR | €1,000 unverified / €10,000 | £8,500 | £21,000 | TFR + MiCA; AMLR cash-equivalent ceilings |
| 🇦🇪AE · AED | AED 3,500 travel rule | £6,900 | £17,000 | CBUAE PTSR; goAML thresholds |
| 🇵🇰PK · PKR | ₨1m/month (EMI wallet) | £2,800 | £5,600 | SBP EMI limits; VA Act 2025 |
| 🇸🇬SG · SGD | S$5,000 (DPT retail guard) | £2,900 | £14,500 | MAS PSN02 + DPT consumer measures |
| 🇨🇭CH · CHF | CHF 1,000 unverified | £880 | £22,000 | FINMA AMLO-FINMA art. 51a threshold |
| 🇶🇦QA · QAR | QAR 55,000 goAML | £11,900 | £23,800 | QCB sandbox conditions; QFIU thresholds |
Indicative register maintained with local counsel. Figures are policy caps, not legal advice. Breach attempts are refused client-side, re-checked server-side, and logged with the KDX-R3 structuring monitor watching for repeated near-cap activity.