# Wallet Generation

## Overview

We provide a 1-click solution to onboard users from a variety of different chains. These wallet's private keys can later be exported to use outside of the Clusters ecosystem.&#x20;

| Bitcoin | Ton      | Aptos  | Litecoin |
| ------- | -------- | ------ | -------- |
| EVM     | Cosmos   | Ripple | Algorand |
| Solana  | Dogecoin | Tron   |          |

## Security

### Authentication

Signing into your cluster starts with verifying wallet ownership using off-chain authentication via signature signing. All users must sign an off-chain signature to prove they own their cluster.

**Passphrase:** Users may choose to opt in for an additional layer of security by adding a passphrase. We recommend users enable this feature when storing significant amount of funds on generated wallets.&#x20;

{% hint style="info" %}
Clusters does not store this passphrase. It is impossible to recover if lost and will result in forfeiting the ability to recover private keys of wallets generated on the users account.
{% endhint %}

* Passphrases are used as the encryption key for private key shards.
* Users will need to enter their passphrase in order to export their wallet's private keys.

### Private Key Storage

Key's are split up into 3 different shares using the [Shamir's secret sharing](https://en.wikipedia.org/wiki/Shamir%27s_secret_sharing). It is split between user and cloud encrypted storage. In order to reveal the private key, 2 out of the 3 shares need to be present. Full keys are never sent over the air or stored in Clusters infrastructure.

1. **User device share —** Stored on the users device via local storage. This share will be stored encrypted using the passphrase if opted in.
2. **Recovery share** **—** This share is encrypted at rest by default and stored by Clusters. This share is encrypted using the users passphrase if they opt in for this additional security later.
3. **Backup share —** Encrypted at rest and stored by Clusters. It's used, in conjunction with the recovery share, to generate an additional compatible user device share if it's lost or moving to another device.


---

# 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.clusters.xyz/introduction/features/wallet-generation.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.
