> For the complete documentation index, see [llms.txt](https://docs.vespr.xyz/vespr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vespr.xyz/vespr/user-guide/getting-started/connect-a-hardware-wallet/keystone-mobile-only-supported.md).

# Keystone

Connect a Keystone to VESPR on iOS, Android and the browser extension by scanning QR codes, sign Cardano transactions on the device, and fix common scanning errors.

VESPR works with Keystone hardware wallets on iOS, Android and the browser extension. Keystone never connects by cable or Bluetooth: VESPR and your Keystone exchange QR codes with their cameras. VESPR scans your account from the Keystone once, and for each signature the Keystone scans the request from VESPR and VESPR scans the signature back.

{% hint style="danger" %}
**Never type your Keystone's recovery phrase into VESPR or any other app.** Connecting a Keystone never asks for it.
{% endhint %}

## Before you start

### Keystone firmware 1.7.0 or newer (multi-coin)

Your Keystone needs the **multi-coin** firmware, version **1.7.0 or newer**. To check your version:

{% content-ref url="/pages/iPg4ucIwZH7PZro1yTuI" %}
[Check Keystone Firmware Version](/vespr/user-guide/getting-started/connect-a-hardware-wallet/keystone-mobile-only-supported/check-keystone-firmware-version.md)
{% endcontent-ref %}

To update the firmware, follow Keystone's guide and make sure you install the **multi-coin** firmware:

{% embed url="<https://support.keyst.one/getting-started/firmware-upgrading>" %}
Keystone Support URL for Firmware Update
{% endembed %}

### VESPR version

Use the latest version of VESPR. Keystone needs at least:

* **iOS and Android:** VESPR 3.8.0 or newer.
* **Browser extension:** the latest version, in Chrome or Brave on a computer with a webcam.

You can check your version in VESPR under **Settings** → **Version**, and update from your app store:

{% tabs %}
{% tab title="iOS" %}
{% embed url="<https://apps.apple.com/us/app/vespr-cardano-wallet/id1565749376>" %}
{% endtab %}

{% tab title="Android" %}
{% embed url="<https://play.google.com/store/apps/details?id=art.nft_craze.gallery.main>" %}
{% endtab %}

{% tab title="Browser extension" %}
{% embed url="<https://chromewebstore.google.com/detail/vespr-wallet/bedogdpgdnifilpgeianmmdabklhfkcn>" %}

To update the extension right away, see [Updating VESPR](/vespr/user-guide/the-basics/updating-vespr.md).
{% endtab %}
{% endtabs %}

***

## Step 1: Show the connection QR code on your Keystone

On your Keystone:

1. Unlock it and, on the home screen, tap the **…** (more) button at the top right.
2. Tap **Connect Software Wallet**.
3. Choose **VESPR** from the list of wallets.
4. The Keystone shows a QR code for the account named under it. That's the account VESPR will add.

<figure><img src="https://1666257432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxmgYWup0cXQteeId2qIa%2Fuploads%2FFCUBOAbbBQdZOU6VDshm%2Fimage.png?alt=media&amp;token=d8f4e069-6271-48e7-87d1-46efd0345520" alt="Keystone screens: the more menu, Connect Software Wallet, VESPR in the wallet list, and the Connect VESPR QR code"><figcaption><p>On the Keystone: <strong>…</strong> → <strong>Connect Software Wallet</strong> → <strong>VESPR</strong>.</p></figcaption></figure>

***

## Step 2: Scan the QR code with VESPR

{% tabs %}
{% tab title="iOS and Android" %}

1. In VESPR, tap **Connect hardware wallet**:
   * **First time in VESPR:** on the welcome screen.
   * **Adding to your wallets:** tap your wallet's picture at the top left of the home screen (or go to **Settings** → **Change Account**), then **Connect hardware wallet** under **New Wallets**.
2. Tap **Connect Keystone**.
3. If your phone asks whether VESPR may use the camera, allow it.
4. On **Connect Keystone to the VESPR Wallet**, point your phone's camera at the QR code on the Keystone.

<figure><img src="https://1666257432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxmgYWup0cXQteeId2qIa%2Fuploads%2Fgit-blob-1c3bd1f3c555b57d27e58887a3068361f3dd6915%2Fhardware-choose-ios.png?alt=media" alt="Choose Hardware Wallet screen with Connect Ledger and Connect Keystone" width="300"><figcaption><p>Tap <strong>Connect Keystone</strong>.</p></figcaption></figure>

<figure><img src="https://1666257432-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxmgYWup0cXQteeId2qIa%2Fuploads%2Fgit-blob-787df62903d97ffa8056e3e7e674311bb4a4c6e5%2Fkeystone-scan-ios.png?alt=media" alt="Connect Keystone to the VESPR Wallet screen with the camera viewfinder" width="300"><figcaption><p>Scan the QR code from your Keystone. The camera image appears in the frame.</p></figcaption></figure>
{% endtab %}

{% tab title="Browser extension" %}

1. In VESPR, click **Connect hardware wallet** (on the welcome screen, or under **New Wallets** in your wallet list).
2. A separate **VESPR window** opens, and the extension shows **Continue in the VESPR window**. Carry on in the new window.
3. Click **Connect Keystone**.
4. When the browser asks whether VESPR may use your camera, allow it.
5. Hold the Keystone's QR code up to your webcam.

The scanning happens in the VESPR window because the browser can only ask for camera access in a normal window. If you blocked the camera before, allow it again in the browser's site settings for VESPR (see [Troubleshooting](#troubleshooting)).
{% endtab %}
{% endtabs %}

***

## Step 3: Finish

When VESPR reads the QR code, you see **Device Connected!** Tap **Continue**.

VESPR adds the account as a new wallet named **Keystone**, followed by your Keystone's fingerprint and the account number (for example, `Keystone 51d38a3f#0`). In the browser extension, the VESPR window closes and VESPR restarts with your Keystone wallet selected. Scanning the same account again selects the wallet you already have instead of adding a copy.

To add another Keystone account, repeat these steps with that account shown on the Keystone. Each account becomes a separate wallet in VESPR.

***

## Sign with your Keystone

When you send from your Keystone wallet or approve a dApp request, you sign by passing QR codes both ways:

1. Review the request in VESPR and continue.
2. VESPR shows **Scan with Keystone** and a QR code that keeps changing. On the Keystone, tap the scan button and point its camera at VESPR's screen until it has read the whole code.
3. Check the details on the Keystone and approve them there. The Keystone then shows a QR code with the signature.
4. In VESPR, tap **Continue**. On **Scan QR Code**, scan the QR code on the Keystone with your phone's camera or your webcam.
5. VESPR adds the signature and submits the transaction.

**In the browser extension,** sends you start in VESPR are signed in the separate VESPR window, which closes when you're done. Click **Cancel** in VESPR to stop waiting and close it. dApp requests open in their own VESPR window, where you sign them in the same way.

{% hint style="warning" %}
Keystone signing is not available when VESPR opens as a small **Pop Up** from the browser toolbar (for example in Arc), because the Pop Up can't use the camera. Use VESPR in Chrome or Brave, where it opens in the side panel.
{% endhint %}

***

## Troubleshooting

| VESPR shows                                                                                                       | What to do                                                                                                                                                                                                                                        |
| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Wrong QR code scanned**: We failed to complete the connection to Keystone.                                      | Show the right QR code on the Keystone: **…** → **Connect Software Wallet** → **VESPR**. Then tap **Try again** and scan it.                                                                                                                      |
| **Camera permission required to scan QR codes**: The browser blocked camera access for VESPR. (browser extension) | In the browser's site settings for VESPR, allow the camera, then click **Try again**.                                                                                                                                                             |
| The camera view stays blank and VESPR shows no message (iOS and Android)                                          | You may have declined camera access earlier. Allow the camera for VESPR in your phone's settings, then open the Keystone step again.                                                                                                              |
| **Something went wrong** after you scan the signature                                                             | The QR code you scanned isn't the signature for this request, or couldn't be read. Tap **Try again**: VESPR shows its request QR code again. Scan it with the Keystone, approve, then tap **Continue** and scan the signature the Keystone shows. |
| **Not available in the Pop Up**                                                                                   | VESPR is open as a toolbar Pop Up, which can't use the camera. Use VESPR in Chrome or Brave.                                                                                                                                                      |

If the Keystone can't read VESPR's QR code, raise your screen brightness and hold the Keystone steady in front of the screen until it has read every part. If the Keystone rejects the request, update both the Keystone firmware and VESPR to their latest versions, then try again.
