# Frame

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-McGIm-145WxRIIEKoLZ%2Fuploads%2FbiNQx8M2tKU8MD4wMR6P%2FFrameLogoTextCropped.png?alt=media&#x26;token=d4b5c7c1-a739-46be-b9aa-635fbba78223" alt=""><figcaption></figcaption></figure>

**Frame** is a privacy-focused Ethereum wallet that runs as a native desktop application on MacOS, Windows and Linux. It is a capable alternative to MetaMask which can manage all of your accounts, tokens and items and allows you to seamlessly and securely connect them to any dApp.

Frame connects to the Lattice1 hardware wallet via a custom integration with which you can use Frame's innovative UI with the safety of the Lattice - when connected to Frame, all transaction requests have to be approved on the device screen.

{% hint style="success" %}
This also means that **everything** you can do with Frame (this includes all chains and EVM Layer 2 apps supported by Frame), you can also do with the Lattice1 connected to it.
{% endhint %}

#### Frame and Your Lattice <a href="#frame-and-your-lattice" id="frame-and-your-lattice"></a>

Frame uses what they call **Accounts** - each account is basically an interface from which you control a single EVM **address** (public key) - exactly like MetaMask. When you connect your Lattice to Frame, you can select the addresses from the wallet stored on your Lattice to be imported and each will then create a new Frame account.

Signing transactions is done the same way you're used to with Frame hot wallets: you will approve the transaction on Frame - but, unlike using a hot wallet, you will then also have to approve the transaction on the Lattice screen for it to go through (this is because your private keys are on the Lattice and not stored on Frame as it is with hot wallets).

When you connect your Lattice to Frame, your private keys remain safely stored on the hardware wallet, which means signing transactions will require approval on both Frame and then the Lattice screen.

{% hint style="info" %}
Unlike MetaMask, if you have the **same address (public key) on multiple hardware signers**, you can **use either hardware signer** to sign transactions for that account in a single instance of the Frame application. More on that in **Advanced Frame Setup**.

Another important difference between Frame and MetaMask is that in Frame, having a default "hot" account is not a condition for connecting to a hardware wallet - You can connect your Lattice as the **only account** in Frame.
{% endhint %}

<figure><img src="https://268056579-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MZJQypB4fk8YIsDKCl_%2Fuploads%2FGCrb3o4PQZ5aTyDC3e93%2Fimage.png?alt=media&#x26;token=d9fa9940-70a9-4622-9099-2e9029783f86" alt=""><figcaption></figcaption></figure>


---

# 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.gridplus.io/apps-and-integrations/frame.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.
