# Deploy a web wallet with the SDK

The Tonomy SDK powers Tonomy ID to manage users keys. You can use it to create your own wallet (web or mobile) with a fully customized UI to suite your needs.

We suggest one of the following strategies:

## 1. Deploy a web version of the Tonomy ID wallet

Run [Tonomy ID](https://github.com/Tonomy-Foundation/Tonomy-ID/tree/master) and instead of compiling the Android and iOS applications, compile to web instead. Fork the repository to customize the UI.

Please [contact us](https://pangea.web4.world/contact-us) for assistance in deploying your bespoke solution.

## 2. Install the Tonomy SDK in your project

Install the [Tonomy SDK](https://github.com/Tonomy-Foundation/Tonomy-ID-SDK/tree/master) in your project and manage identities directly.

How to use the SDK as a web wallet:

1. Choose a `KeyManager` class implementation:
   * [jsKeyManager](https://github.com/Tonomy-Foundation/Tonomy-ID-SDK/blob/master/src/sdk/storage/jsKeyManager.ts) - for web browsers
   * [RNKeyManager](https://github.com/Tonomy-Foundation/Tonomy-ID/blob/master/src/utils/RNKeyManager.ts) - for React Native mobile apps
2. Choose a `Storage` class implementation:
   * [browserStorage](https://github.com/Tonomy-Foundation/Tonomy-ID-SDK/blob/master/src/sdk/storage/browserStorage.ts) - for web browsers
   * [storage](https://github.com/Tonomy-Foundation/Tonomy-ID/blob/master/src/utils/storage.ts) - for React Native mobile apps
3. Create a new user. We suggest you familiarize yourself with how this is done by looking at the integration tests by checking the [User controller](https://github.com/Tonomy-Foundation/Tonomy-ID-SDK/blob/master/test/helpers/user.ts) test which manages a Tonomy ID account and DID
4. Get the `KeyManager` object from the `User` object

```ts
const keyManager = user.keyManager;
```

5. Use the `keyManager` object for signatures. See the [signData()](https://github.com/Tonomy-Foundation/Tonomy-ID-SDK/blob/master/src/sdk/storage/keymanager.ts) function in the interface for signing data.


---

# 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.tonomy.io/run-tonomy-gov-os/deploy-wallet.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.
