Verify before you send

Payments don't come back. Check the address first.

A crypto address is 42 random characters. An IBAN is 20. Nobody reads them — we all check the first four and the last four, which is exactly the gap attackers aim at. DoublyCheck reads the whole thing with your camera and compares it, character by character, against the address you already trust.

No account No cloud No trackers iOS & Android
Bitcoin
Live example

Saved

Scanned

Illustrative examples. The app compares on-device and never sends an address anywhere.

What it is

A second pair of eyes for the field that must not be wrong.

DoublyCheck is a camera and a memory. The camera reads the address in front of you — on a screen, on paper, on a hardware wallet display. The memory holds the addresses you've decided to trust, encrypted on your phone.

Put the two together and you get the one thing no wallet and no banking app gives you: an answer to "is this the same address as last time?"

It is not a wallet. It holds no keys, moves no money, and has no balance. It doesn't replace your bank or your exchange — it checks the destination before you commit to one.

How it works

Three steps, about ten seconds.

Every step runs on the phone in your hand. Nothing is uploaded, because there is nowhere to upload it to.

  1. 01

    Scan

    Point the camera at an address — a QR code, a line of text on a website, a printed invoice, the screen of a hardware wallet. Text recognition runs locally on the device.

  2. 02

    Validate

    Bitcoin, Ethereum and IBAN all carry a built-in checksum. DoublyCheck verifies it immediately, so a misread character is caught as a structurally invalid address before any comparison runs.

  3. 03

    Compare

    Against a saved entry, against your clipboard, or against a second scan from another source. Every character is checked, and the ones that differ are highlighted — including the middle ones your eye skips.

One thing DoublyCheck is deliberately not for: scanning an address and then typing the result into your wallet. That inverts the whole idea. The app exists to confirm that two independent sources agree — not to become a third source you have to trust.

Who it's for

Two kinds of irreversible payment.

The same check, aimed at two very different threats. Pick the one that sounds like your week.

Inside the app

Built around one question, answered well.

Camera and QR, one screen

Read a QR code or plain text off any surface — a monitor, a paper invoice, a Ledger display. Text recognition and decoding both happen on the device, with no network permission needed to do the work.

A named address book

"Cold storage." "Kraken withdrawal." "Müller GmbH." An address you've labelled and confirmed once becomes the reference for every check after it — which is what turns a scanner into a control.

Scan history

Every scan is timestamped locally. An address you've used sixteen times since January looks very different from one you're seeing for the first time.

Checksum validation

A garbled scan almost always breaks the address checksum. DoublyCheck tells you the read was bad instead of quietly comparing the wrong string.

Encrypted, on-device

IBANs are personal data under the GDPR, so the address book is encrypted locally and flagged to stay out of device backups.

The app

Scan, match, and the moment it doesn't.

Scanning an address and comparing it against a saved favourite The encrypted on-device address book of saved, labelled addresses A no-match result with the differing characters highlighted A warning about a clipboard hijacked address Privacy by design: no cloud, encrypted storage, no tracking

Supported formats

Every format DoublyCheck reads carries a checksum.

That's not a coincidence — it's the selection criterion. A format with a checksum can be validated before it's compared, so a bad camera read is caught as a bad read rather than reported as a mismatch.

Bitcoin

Legacy and P2SH (Base58Check), plus SegWit and Taproot in Bech32 and Bech32m.

Ethereum

EIP-55 mixed-case checksums, so a single wrong character is detectable rather than merely unlucky.

IBAN

The ISO 13616 mod-97 check digits, validated for every country that uses the format — so a mistyped or misread IBAN is rejected before you compare it to anything.

Privacy

There is no server to trust.

A list of the addresses you pay is a map of who you deal with and what you hold. The only defensible place for it is your phone.

100% on-device

Scanning, matching and storage all happen locally. No scan and no address leaves the phone.

No accounts, no cloud

Nothing to sign up for, nothing to breach, no password to reset.

Encrypted storage

The address book is encrypted on device and kept out of automatic backups.

Zero ads, zero trackers

No analytics SDK, no advertising identifier, no third-party code watching you work.

Watch

A minute, start to finish.

Scanning an address, saving it under a name, and catching the moment a second scan doesn't agree with the first.

Ten seconds now, or an irreversible transfer later.

Free to use, with an address book that grows when you want more room. No account, nothing to configure.