> ## Documentation Index
> Fetch the complete documentation index at: https://umbra.0xcreator.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction

> Privacy-preserving token transfers on Solana, from your terminal.

<Info>
  This is a community-built CLI and is not an official product of the Umbra team. It is maintained independently as a contribution to the ecosystem.
</Info>

Umbra CLI is a command-line tool for interacting with the Umbra protocol on Solana. It lets you shield tokens into encrypted balances, transfer them anonymously through the mixer, and manage everything from a single terminal command.

## Extend with plugins

The CLI supports plugins — npm packages that add new commands to `umbra`. Install any compatible plugin and its commands are available immediately:

```bash theme={null}
umbra plugin add jup-earn
```

## Two ways to use Umbra

**Encrypted Token Accounts (ETA)**

Shield tokens from your public wallet into an on-chain encrypted balance. The balance is hidden — only you can decrypt it. Deposit, check your balance, and withdraw back to your public wallet at any time.

```
umbra eta deposit <mint> <amount>
umbra eta balance <mint>
umbra eta withdraw <mint> <amount>
```

**Stealth UTXOs (Mixer)**

Create stealth UTXOs in the mixer pool — anonymous token commitments that are unlinkable to their origin. Send UTXOs to other users or create them for yourself, then claim them back into your encrypted or public balance.

```
umbra utxo create <mint> <amount>
umbra utxo scan
umbra utxo claim
```

## Command overview

| Command                                     | Description                                                     |
| ------------------------------------------- | --------------------------------------------------------------- |
| `umbra user add <name> --backend <backend>` | Add a signer user (local keypair or managed wallet)             |
| `umbra user list`                           | List configured users                                           |
| `umbra user use <name>`                     | Set the active user for all commands                            |
| `umbra user remove <name>`                  | Remove a user and its stored credentials                        |
| `umbra config set <key> <value>`            | Set a CLI-wide config value                                     |
| `umbra config get [key]`                    | Print one or all config values                                  |
| `umbra register`                            | Publish your on-chain Umbra user account                        |
| `umbra eta deposit`                         | Move tokens from your public wallet into an encrypted balance   |
| `umbra eta balance`                         | Check your encrypted token balances                             |
| `umbra eta withdraw`                        | Move tokens from your encrypted balance back to a public wallet |
| `umbra utxo scan`                           | Scan the chain for unspent stealth UTXOs                        |
| `umbra utxo claim`                          | Claim found UTXOs to your wallet                                |
| `umbra utxo create`                         | Create a new stealth UTXO                                       |
| `umbra plugin add <name>`                   | Install a plugin from npm                                       |
| `umbra plugin list`                         | List installed plugins                                          |
| `umbra plugin remove <name>`                | Uninstall a plugin                                              |
| `umbra plugin use <plugin> <name>`          | Set the active user for a plugin                                |

## Before you start

Add a user before running any other command:

```bash theme={null}
umbra user add <name> --backend local
```

This links a signer to the CLI and sets it as the active user. Then run `umbra register` once to create your on-chain Umbra account.

All network settings (`rpcUrl`, `network`, `indexerApiEndpoint`, etc.) can be configured with `umbra config set`. Run `umbra config get` to see current values.
