Can I trust DuckDuckGo, optional Duck.ai?
This app did not meet one of the trust checks that applied to it, with no red flags.
- Best for
- People who keep browsing history on their own device
- What it means for you
- Browsing history and tracker-block statistics stay on the device, with no third-party analytics, advertising, or crash-reporting SDKs present in this build. The bundled libraries (GRDB, Lottie, Kingfisher, and others) are utility components with no data-collection function. Telemetry is first-party and anonymous, with no persistent device identifiers and no search query content.
- Main concern
- Browsing history backup-accessible via iCloud without full file protection on a privacy browser
- The developer's description
- DuckDuckGo iOS browser prioritizes privacy with built-in password vault, VPN protection, and tracker blocking. No third-party ads, analytics, or tracking identifiers. End-to-end encrypted cross-device sync.
- Third-party services
- 6
- Findings rated low or higher
- 2
Open on the App StoreOpens the app's listing on the App Store in a new tab.
Full findings
Open this scan in your dashboardThe account that ran this scan sees every finding and the Rescan button there.
Trust checks
Secure by Design
StrongStrong security foundation
Why this result
This check looks for security issues at high severity or above in the code of this build, and none were recorded. Its scope covers stored credentials, how the app protects data on the device, and how it protects data in transit.
Data Minimization
StrongTracking done right
Why this result
The check looks at analytics and attribution code for companies other than the developer: the data it reads, the companies named in code as recipients, and whether a consent step runs before that code. In this build, either no such code was recorded, or a consent step runs before it and the app's own disclosures describe the collection.
The app contains no third-party analytics, advertising, or attribution SDKs. All usage telemetry is handled by DuckDuckGo's own internal system, which includes code to send anonymous, non-linked behavioral counts to a DuckDuckGo-controlled server. No personal identifiers, search queries, or browsing history are included in these events. The app does not use the advertising identifier or any vendor identifier. The privacy tracking flag is declared as false, and no tracking domains are listed. There is no evidence of data collection that occurs before a user takes an action.
Manifest Mismatch
One criterion not metDisclosure incomplete or contradicted
Why this result
The check compares the app's privacy disclosures against what the code does, and at least one claim did not match in this build. Mismatches of this kind include a data category collected but not disclosed, a recipient the disclosure omits, and an identifier attached to data the disclosure describes as anonymous.
User Control
StrongNo lock-in
Why this result
The check looks for a way to export the data an account has accumulated and a way to delete the account itself. In this build, either both were found, or the app has no account of its own and keeps its data on the device. For an app without an account, the developer has no server-side copy to export or delete, and deleting the app removes the data in its own storage.
Browsing history, bookmarks, passwords, and browser settings are stored locally on the device. The Fire Button feature permanently wipes all local browsing data on demand. The password vault stores credentials in a format the user controls on their own device. Account credentials and authentication state are removed from the device when an account is removed. There is no evidence of proprietary data formats that would trap user content or of artificial barriers to stopping use of the app.
Strengths
- No third-party analytics, advertising, or crash-reporting SDKs present — eliminates all third-party data flows and SDK supply-chain risk
- No IDFA, IDFV, or persistent cross-app tracking identifiers used anywhere in the app
- Browsing history and tracker-block statistics stay on the device with no behavioral reporting to external servers
- Password vault uses application-layer AES-GCM 256-bit encryption with a two-level key hierarchy and biometric lock, matching dedicated password manager standards
- Cross-device sync encrypted end-to-end with libsodium Argon2id, Curve25519/XSalsa20-Poly1305, and BLAKE2b — exceeds industry standard for sync security
- All telemetry is first-party and anonymous with no PII, no persistent device identifiers, and no search query content
- Data sharing across extensions is restricted to the developer's own Team ID (HKE973VLUW) — no third-party access to any shared containers
- Fire Button wipe deletes the CoreData browsing history store entirely — above-industry-average mitigation for privacy-aware users
- HTTPS upgrade applied proactively via a bundled bloom filter before connections are made
What the app contains
6 services
Third-party services the scan names in the build:
- GRDB
- Lottie
- JWTKit
- ZIPFoundation
- Kingfisher
- Gzip
Libraries
| Library | Version | Advisory |
|---|---|---|
| Autofill_-727AF466A0EF7FB8_PackageProduct | 1.0 | none confirmed |
| BloomFilter | 3.0.4 | none confirmed |
| BloomFilterObjC | 1.0 | none confirmed |
| BloomFilterWrapper | 1.0 | none confirmed |
| BrowserServicesKit | 1.0 | none confirmed |
| CombineExtensions_-990568FB7DB6F02_PackageProduct | 1.0 | none confirmed |
| Common_17A2E8D93C1D2F_PackageProduct | 1.0 | none confirmed |
| ConcurrencyExtensions_7B64C1CD057D37D0_PackageProduct | 1.0 | none confirmed |
| ContentBlocking | 1.0 | none confirmed |
| ContentScopeScripts_AFF2657D638ED0_PackageProduct | 1.0 | none confirmed |
Show all 37 librariesShow fewer
Method and limits
Static analysis: the decompiled code, manifest and resources of this build, read file by file. Network traffic at run time is established by a capture of the running app.
- Files decompiled
- 38
- Scan date
- 10 September 2026
Corrections
No correction is published for this app.
Developer response
No response is published for this app.
Report an error Opens an email to [email protected] that names this app and this scan.