# Choosing USB vs QR Code

Since launching Cypherock X1, a lot of users requested us to support airgap operation through QR codes. Our conclusion is that air-gapped communication offers little-to-no added hardware wallet security while degrading the user experience. QR codes have similar threat models as that of USB communication. Here are some points that were considered while choosing to move forward with USB connectivity:

1. QR codes compromise a lot on UX when there are a lot of input UTXOs. For hardware wallets to make secure transactions, all of the transaction hashes of spendable outputs need to be verified in the hardware which could be in multiple kilobytes. Wallets that do not fetch this and do not verify this on the hardware are compromising on security. So QR code-based wallets will take a lot of time to transfer all of this data from the mobile app to the hardware. Whereas, this is 100 times faster through USB.
2. QR codes can be vulnerable to phishing attacks or other forms of social engineering, where an attacker tricks the user into scanning a malicious address that steals their Crypto assets. While using QR codes, the user usually does not verify the recipient's address manually.
3. Performing firmware updates with QR codes is not feasible, there will be a requirement to either connect with USB or utilize SD cards for updates - which can be cumbersome from a user experience standpoint. In some ways, if the user has to use the USB or SD card for a firmware update, that means the promise of the hardware wallet being completely air-gapped through the QR code becomes null and void.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cypherock.com/design-decisions/cypherock-x1-hardware-architecture/choosing-usb-vs-qr-code.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
