Skip to main content
ZeroKeyUSB can act as an airgapped Bitcoin signer. The wallet is a standard BIP84 native SegWit wallet (m/84'/0'/0', bc1q… addresses). The 12-word seed is generated on the device from the ATECC608A hardware TRNG, stored AES-encrypted, and shown only on the OLED — it never leaves over USB. You watch balances and build transactions on a separate wallet (phone/desktop); the device only ever reveals public data (the zpub) and signatures.
Find the Bitcoin menu under Tools → Bitcoin. Mainnet only.
Menu itemWhat it does
Show seedRe-displays the 12 words on the OLED (screen only)
Watch-onlyPrints the zpub, master fingerprint and wpkh descriptor over USB
Create walletGenerates a new 12-word seed (overwrites any existing one)

1 · Create the wallet

1

Open Tools → Bitcoin → Create wallet

If a wallet already exists, the device asks you to hold Center to confirm the overwrite (this destroys the old seed). On a fresh device it starts straight away.
2

Write the 12 words on paper

The device shows the words in pages of three. Advance by tapping. Write them on paper only — never photograph them or type them into a computer.
3

Store the paper safely

Anyone with these 12 words controls the funds. The device keeps the seed encrypted; the paper is your only backup.
Create wallet generates a brand-new random seed and overwrites the previous one. Coins on the old wallet are lost unless you backed up its 12 words.
You can re-check the words any time with Show seed.

2 · Set up a watch-only wallet (phone/desktop)

To see balances and build transactions you import the public account key into a normal wallet (BlueWallet, Nunchuk, Sparrow, Bitcoin Core…). The device exposes it as a zpub and a wpkh descriptor with the master-key origin — the origin is required so the transactions you build are recognised by the signer.
1

Open the Bitcoin webtool

Open bitcoin.html in Chrome or Edge (Web Serial), Connect device, and unlock the device with your PIN.
2

Get watch-only from device

Press Get watch-only. The page shows the fingerprint, zpub and the full descriptor wpkh([FP/84h/0h/0h]zpub…/0/*)#checksum, plus a QR code.
3

Scan into your wallet

Scan the descriptor QR (or the zpub QR) into your mobile wallet. It can now show balances and create transactions, but it cannot spend — it has no private key.
You can also trigger the export from the device itself: Tools → Bitcoin → Watch-only prints the same data over the serial connection.

3 · Sign a transaction (PSBT)

The flow is the standard airgapped PSBT flow: build the spend on your watch-only wallet, sign it on ZeroKeyUSB, then broadcast from the wallet.
1

Build the spend

In your watch-only wallet, create the transaction and export the unsigned PSBT (base64).
2

Send it to the device

In bitcoin.html, paste the PSBT and press Send to device.
3

Verify ON THE DEVICE

The OLED shows the destination, the amount being sent and the fee. Verify these on the device screen, not in the browser.
4

Hold Center to sign

Hold Center to sign (a progress border fills around the screen). Tap any other button to cancel. The device returns the signed PSBT to the webtool.
5

Broadcast

Copy the signed PSBT back into your wallet, finalise and broadcast.
Always confirm the address and amount on the device’s own screen before holding to sign. A compromised computer can show you one thing in the browser while sending another — the device screen is the trusted display.
If the PSBT has no inputs belonging to this wallet, the device replies “No inputs for us” and signs nothing — that is expected when the PSBT is for a different wallet.

Security model

  • The seed never leaves the device over USB. It is shown only on the OLED, and stored AES-encrypted (same key as your credentials, protected by your PIN).
  • Only public data (zpub, descriptor) and signatures are sent over USB.
  • Signing requires a deliberate Center hold after on-screen review — never blind-signs.
  • Entropy comes from the ATECC608A hardware TRNG; the device refuses to generate a seed if the hardware RNG check fails.
  • The wallet is BIP84 mainnet (m/84'/0'/0').

Navigate the menu

Where to find Tools → Bitcoin.

Broken / no screen

Recover access if the display fails.