{
  "ok": true,
  "app_id": "exodusmovement.exodus",
  "comparable": true,
  "comparison_status": "comparable",
  "regressed": false,
  "grade_delta": "A ← B",
  "score_delta": 7,
  "from": {
    "scan_id": "fa6081be-544a-4cb7-8186-cf4c6c2a23d1",
    "version": "26.9.9",
    "analysis": {
      "issues": [],
      "stages": {
        "pii": "complete",
        "sbom": "complete",
        "signing": "certificate_parsed",
        "strings": "complete",
        "manifest": "complete"
      },
      "status": "complete",
      "grading": {
        "policy": "static-coverage-v1",
        "blockers": [],
        "eligible": true
      },
      "bytes_total": 174147027,
      "bytes_scanned": 174147027,
      "bytes_skipped": 0,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "d5fd71c3528c89fb4e8674032a70e97ba2cefee2c02a2aea91580839ed9c9e7d"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "d2363ed019c12da48aa0bd8d2ebc3a9224d14c9f70c44a77cefc4efcd8430db8"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "b34786a48ff613c372f12a646a6205f070ef0bfe2ab044e4600cea0d8fc80f94"
        }
      ],
      "ruleset_sha256": "dac4bdac2204e219decf0d6f4465e38aad987eecc8eafa5febdee754eeaf182e"
    },
    "grade": "B",
    "score": 89,
    "scanned_at": "2026-09-11T10:22:42.010Z"
  },
  "to": {
    "scan_id": "a4934cb8-9214-4ff2-a39f-0f5ca3bcfb75",
    "version": "26.9.25",
    "analysis": {
      "issues": [],
      "stages": {
        "pii": "complete",
        "sbom": "complete",
        "signing": "certificate_parsed",
        "strings": "complete",
        "manifest": "complete"
      },
      "status": "complete",
      "grading": {
        "policy": "static-coverage-v1",
        "blockers": [],
        "eligible": true
      },
      "timings_ms": {
        "total": 27111.051,
        "harvest": 8574.338999999998,
        "detectors": 17286.719999999972
      },
      "bytes_total": 182966970,
      "bytes_scanned": 182966970,
      "bytes_skipped": 0,
      "files_processed": 2104,
      "coverage_version": 2,
      "string_encodings": [
        "ascii",
        "utf16le"
      ],
      "signature_validation": "not_performed"
    },
    "provenance": {
      "mode": "static",
      "artifacts": [
        {
          "name": "base.apk",
          "sha256": "33b767528292eae42049d0769b977ebf7ec5be4fad11b74bd97955d3f82f4bba"
        },
        {
          "name": "config.arm64_v8a.apk",
          "sha256": "c9e09fa7569a7090657297814cf89c9cae663b92637c0b40a4623f41859c80a3"
        },
        {
          "name": "config.xxhdpi.apk",
          "sha256": "e0c8642b1d31b83b6c9b93c968d8e8bab2f1df5269aaade3ace10c8434fd0211"
        }
      ],
      "ruleset_sha256": "69544396ce47de08b97fb3d04080662e1cbb38c704bd5aa3d4b7e5489cde22e8"
    },
    "grade": "A",
    "score": 96,
    "scanned_at": "2026-09-29T23:24:18.410Z"
  },
  "findings": {
    "added": [
      {
        "finding_type": 1,
        "severity": "low",
        "title": "Amazon S3 bucket reference",
        "fingerprint": "4fa0ae3b41db03268a2cc10ccbf30a1f6f4cd7d4d64941d48e48a3d6c8ca02d0",
        "verified": false
      },
      {
        "finding_type": 2,
        "severity": "low",
        "title": "Firebase Realtime Database reference",
        "fingerprint": "709be73a0d243dc3b3d2b1f86dfe6e606bbf7402799ed101e6644603e13fdbb7",
        "verified": false
      }
    ],
    "removed": [
      {
        "finding_type": 77,
        "severity": "low",
        "title": "Data Safety label omits Contacts",
        "fingerprint": "52d6df5eafe80ad7de0275ee425de0bf8d715439e92a9026117bea4d546827d0",
        "verified": false
      },
      {
        "finding_type": 1,
        "severity": "low",
        "title": "Amazon S3 bucket reference",
        "fingerprint": "5bfc1be6e0bde94645e51f1880e1cd1ec53ca22a547435e0a908a433c7c87be9",
        "verified": false
      },
      {
        "finding_type": 2,
        "severity": "low",
        "title": "Firebase Realtime Database reference",
        "fingerprint": "5619477e7ef6d7c5de6a06f65654565817904d5cf8bf555b456287fc34d324f6",
        "verified": false
      },
      {
        "finding_type": 77,
        "severity": "low",
        "title": "Data Safety label omits Location",
        "fingerprint": "cacfd47daa7d0aafb7cbd1791f3964ef2850687203797b5e24429c41acdf7290",
        "verified": false
      },
      {
        "finding_type": 78,
        "severity": "medium",
        "title": "Ships third-party ad/analytics SDKs but Data Safety declares no data shared",
        "fingerprint": "2b54e044aaab4c3f757c82024e4d291eb1074bc851c642350ce6faee6f887e08",
        "verified": false
      }
    ],
    "persisting_count": 2,
    "added_by_sev": {
      "critical": 0,
      "high": 0,
      "medium": 0,
      "low": 2
    },
    "removed_by_sev": {
      "critical": 0,
      "high": 0,
      "medium": 1,
      "low": 4
    }
  },
  "trackers": {
    "added": [
      "Google Analytics for Firebase"
    ],
    "removed": [
      "Google AdServices"
    ]
  },
  "known_vulns": {
    "from": 0,
    "to": 0,
    "delta": 0,
    "from_recorded": true,
    "to_recorded": true
  }
}