Compatibility matrix

Honest, community-maintained interop. Rows are only marked verified when someone actually ran it. Adding a verified row is the canonical first contribution (see CONTRIBUTING); the "Verified by" column is what makes this trustworthy, so please fill it with a real handle and date.

Browsers (QR detection path)

BrowserPlatformDetectorWorksVerified by
ChromemacOS / Windows / Linuxnative BarcodeDetectoryesmaintainers, Playwright/Chromium smoke, 2026-02
ChromeAndroidnative BarcodeDetectorexpectedcommunity verification wanted
EdgeWindowsnative BarcodeDetectorexpectedcommunity verification wanted
SafarimacOS 14+jsqr fallbackexpectedcommunity verification wanted
SafariiOS 17+jsqr fallbackexpectedcommunity verification wanted
Firefoxanyjsqr fallbackexpectedcommunity verification wanted
Samsung InternetAndroidnative BarcodeDetectorexpectedcommunity verification wanted

Notes: "native" means the browser ships BarcodeDetector with qr_code support and the library uses it directly (fastest). "fallback" means you must install the optional jsqr peer; the library loads it lazily. "expected" is a reasoned guess, not a test.

Senders / hardware devices

The decode core is verified against @ngraveio/bc-ur's own UREncoder. Physical wallet interop is untested by the maintainers. If you scan a real device, record the settings that worked (they matter as much as the yes/no).

SenderPayload typeFragment / fps observedWorksVerified by
@ngraveio/bc-ur UREncoderbytesanyyesmaintainers, unit + e2e, 2026-02
Keystonecrypto-psbt / crypto-account?unknowncommunity verification wanted
Blockchain Commons reference (seedtool)crypto-seed?unknowncommunity verification wanted
Sparrow / Nunchuk (as sender)crypto-psbt?unknowncommunity verification wanted
Foundation Passportcrypto-psbt?unknowncommunity verification wanted

How to add a row

  1. Run the demo (two-device mode) or your own integration against the target.
  2. Note browser + version, device, and, for senders, the fragment size / fps / ECC that worked.
  3. Edit the relevant table: set "Works" honestly (yes / no / partial) and put your GitHub handle + date in "Verified by".
  4. Open a PR. Even a "no, fails like this" row is valuable.
ur-scanner Browser receiver for animated BC-UR QR codes. Camera to bytes, no wallet required.