# Fingerprints drawn from real hardware

> Mosaic draws each profile's GPU, screen, CPU, memory and fonts from one real device, so the parts of a fingerprint agree with each other and with the host.

Source: https://mosaicbrowser.com/features/real-fingerprints

## Machines that exist: fingerprints drawn from real hardware

Mosaic draws each profile's GPU, screen, CPU, memory and fonts from one real device, so the parts of a fingerprint agree with each other and with the host.

Mosaic is a desktop app

Email yourself the link and open it on your computer.

![A profile fingerprint in Mosaic: GPU, screen, fonts, timezone and language matched to the exit](https://mosaicbrowser.com/shots/fingerprint-detail.png)
*One machine, drawn whole: renderer, CPU cores, memory, screen and pixel ratio, from one device record.*

A Mosaic fingerprint is drawn as a whole machine, not as a set of independent fields. The unit is a device record: one real computer, with its GPU as its driver names it, the CPU thread counts that model ships with, the memory it ships with, and the screens it actually has. Drawing a profile means picking a device and then choosing within it.

## Why fields drawn separately go wrong

An earlier version of the generator drew the GPU from one table, the screen from a second and the CPU and memory from a third, each weighted by how common it was. Every single value was plausible. The combinations often were not: an Apple M3 Max beside a 13-inch MacBook Air panel, a laptop RTX 4060 beside a 3440x1440 ultrawide, a ThinkPad's UHD Graphics 620 beside thirty-two threads.

A detector that keeps a table of real hardware reads those instantly, and it reads them as masking, which is worse than any single honest value. With device records, those combinations are not filtered out after the draw. They cannot be built at all.

![A profile fingerprint in Mosaic: GPU, screen, fonts, timezone and language matched to the exit](https://mosaicbrowser.com/shots/fingerprint-detail.png)
*A profile's fingerprint: GPU, screen, fonts, timezone and language, with the location taken from the proxy's exit.*

Mosaic is a desktop app

Email yourself the link and open it on your computer.

[How it works: Machines that exist](https://mosaicbrowser.com/features/real-fingerprints)

## Strings measured, not typed

GPU renderer strings are where hand-written values fail. When we compared ours against real machines, renderer strings written by hand were wrong on 41 of 45 Windows rows. They now come from strings observed on real hardware, exactly as a driver reports them.

The rest of the profile follows the same rule. Canvas, audio and WebGL output, fonts, client hints, the speech voice list and media device counts are changed inside the engine, Tesseract Chrome, in C++. A page, an iframe and a worker all read the same values. [Why we built our own Chromium](https://mosaicbrowser.com/blog/why-we-built-our-own-chromium) explains why that is done in the engine and not with injected JavaScript.

## Agreeing with the computer it runs on

Some values cannot be changed honestly, because the host computer answers them from places the engine does not control. A Mac's GPU vendor shows through WebGPU, and the fonts and how they are measured belong to the operating system underneath. So the best match for a profile is the OS of the computer under it: macOS and Android on a Mac, Windows and Android on a Windows PC. Other desktops are allowed. Pick Windows on a Mac and you get a whole Windows record (GPU, screen, threads) plus a caution in the editor, since the fonts stay the Mac's. On our Mac, IPHey scored macOS 100/100 Trustworthy and Windows 80/100 Unreliable; a Linux claim showed 1 font against 159 on Pixelscan, which read it as masking.

## Not inherited from you

The opposite mistake is a value copied from your own computer into every profile. We test for it by drawing two profiles and reading the same surface in both: anything identical in both and equal to the host is inherited, not chosen. That test found dark mode, two accessibility settings, the display's color gamut, the monitor count and the scrollbar width all passing through from the host, as CSS and as request headers. Each is now drawn per profile.

Those draws follow what browsers send rather than what surveys say. Dark mode is drawn at 30% because that is roughly how often `prefers-color-scheme: dark` shows up in real traffic. The survey figure, around 80%, would make every profile stand out.

## Matched to the exit

Hardware is half a profile. Timezone, language and location follow the exit of the proxy the profile browses through, measured on each check rather than taken from the proxy's label, so a Berlin exit gets a Berlin clock and German in the language list. [Provider accounts](https://mosaicbrowser.com/features/proxy-providers) give every profile its own exit to match.

Android profiles come from records captured off real phones, with the same rule: one device, its own screen, GPU and User-Agent model, drawn together.

## What to check yourself

Open a profile and run its leak test, or point it at a public detector page. Every value in the [browser fingerprint](https://mosaicbrowser.com/glossary/browser-fingerprint) entry is one a page can read, and [canvas fingerprinting](https://mosaicbrowser.com/glossary/canvas-fingerprinting) covers the surface people ask about most.

## The smaller things it does

### Strings as drivers report them

GPU renderer strings come from real hardware, exactly as the driver spells them. When we checked the old hand-written ones, 41 of 45 Windows rows were wrong.

### Audit and repair

Any profile can be audited. Repair hardware redraws the machine from its own seed and keeps the cookies, canvas identity and locale.

## Works with

### The fingerprint is changed inside the engine, not painted on top

Tesseract Chrome: values changed in C++, not JavaScript.

### Timezone, language and location come from where the proxy comes out

Timezone, language and location follow the proxy.

### Any desktop OS or an Android phone, from the computer you have

macOS, Windows, Linux and Android, on any computer.

[All 29 features](https://mosaicbrowser.com/features)

## Machines that exist is in every plan

Free holds 3 profiles and 10 profile creations, with the same engine as Pro. Pro is $49 a month for any number.

Mosaic is a desktop app

Email yourself the link and open it on your computer.
