Skip to content

Permissions Fingerprinting

Permissions fingerprinting queries the state of 14 browser permission APIs. The combination of granted, denied, and prompt states is unique per user profile.

Tested permissions

geolocation, notifications, push, camera, microphone, accelerometer, gyroscope, magnetometer, clipboard-read, clipboard-write, midi, background-sync, persistent-storage, screen-wake-lock

Possible states

  • granted — user previously allowed
  • denied — user previously blocked
  • prompt — not yet asked
  • unsupported — API not available in this browser

Entropy and stability

PropertyValue
Entropy~5 bits
Stability0.65
Typical duration4-6ms

Excluded in incognito-resistant mode because permission states may reset in private browsing.

Usage

ts
const fp = await neoprint.get({ collectors: ['permissions'] })
const perms = fp.components.permissions.value

console.log(perms.notifications)  // "granted"
console.log(perms.camera)        // "prompt"
console.log(perms.midi)          // "unsupported"

Released under the MIT License.