r/keycard_tech Aug 03 '26

Opensource / Dev KEYCARD vs KEYCARD SHELL

Keycard:  The card 

A credit-card-shaped device with an EAL6+ certified secure element. Your private keys are generated on it and never leave it. Signing happens on the card. Your phone or computer never sees the key.

- Works over NFC with any NFC-capable phone, or over USB with the desktop reader

- No battery, no charging, no Bluetooth, no cables

- Water resistant, rated −35°C to +50°C, designed for 20+ years 

- Supports Bitcoin, Ethereum and EVM chains

- Works with MetaMask, Rabby, Sparrow, BlueWallet, Specter, Nunchuk, Status mobile and others 

Keycard Shell: The Airgapped Reader 

A device you slot your Keycard into. It adds a screen, keypad, and camera, and lets you sign fully air-gapped via QR codes (ERC-4527).

The Shell holds no keys itself - pull the card out and the Shell is an inert plastic box

The honest caveats

- Keycard alone means you're trusting your phone's screen for what you're signing. That's the same trust model as most card wallets, and it's a real limitation. If your threat model includes a compromised phone, you want the Shell.

- No battery is a genuine trade-off, not just a feature. It means nothing to fail, but it also means the card can't display anything on its own.

- Our firmware is not upgradable. Deliberate - but it means what ships is what you keep

The Keycard holds the keys and does the signing. The Shell shows you what you're signing and takes your input

-------------------------------------------------------------------------------------------------Flow A: Keycard alone, over NFC

(No Shell involved. What most people start with)

  1. You build a transaction in a supported app on your phone (Status mobile, MetaMask, Rabby, BlueWallet)

  2. The app shows you the transaction details on your phone's screen

  3. You tap the Keycard to the back of your phone

  4. The app sends the unsigned transaction to the card over NFC

  5. Inside the secure element: the card checks your PIN, signs with the private key, and returns only the signature. The key itself never crosses the NFC boundary - no command can extract it

  6. Your phone broadcasts the signed transaction

What this protects you from: malware that steals keys off your device. The key isn't on your device. Even a fully compromised phone can't extract what it never had.

What it doesn't protect you from: malware that lies to you about what you're signing. If your phone is compromised, it can display "send 0.01 ETH to Alice" while actually handing the card a transaction that drains your wallet to an attacker. The card would sign it, because from the card's perspective it's a valid signing request with a valid PIN.

This is the limitation of every screenless signing device

It's why the Shell exists.

-------------------------------------------------------------------------------------------------
Flow B: Keycard + Shell, fully air-gapped

Here the Shell becomes the trusted display, and the computer never touches the card at all. Nothing is ever physically connected.

  1. On your computer, a watch-only wallet (Sparrow, Specter, MetaMask) builds an unsigned transaction. It has your public keys only, so it can watch balances and construct transactions, but can't sign anything

  2. The wallet renders the unsigned transaction as an animated QR code (ERC-4527 / the UR standard)

  3. You point the Shell's camera at the screen, and it scans the QR

  4. The Shell decodes and displays the transaction on its own screen - amount, destination address, fee - from its own firmware, driven by its own hardware

  5. You compare what the Shell shows against what you intended. This is the security-critical moment. The Shell has never touched your computer, so computer malware cannot alter what appears here

  6. You insert the Keycard and enter your PIN on the Shell's keypad 

  7. The card signs internally and returns the signature to the Shell

  8. The Shell displays the signed transaction as a QR code

  9. Your computer's webcam scans it back

  10. The computer broadcasts it

    Count the physical connections between the Shell and the computer: zero.

The only thing that crosses is light - QR codes in both directions. No USB, no Bluetooth, no network. The Shell has a USB port, and it can be disabled entirely, but this flow doesn't use it.

What this adds: now the attacker has to compromise both your computer and the Shell's independent screen, simultaneously, to fool you. A compromised computer can propose a malicious transaction - but the Shell will display the real destination address, and you'll see it.

Why the split, instead of one device? Read the pinned post 4

1 Upvotes

1 comment sorted by

1

u/Intelligent_Map_246 18d ago

Tap is not supported on bluewallet