> For the complete documentation index, see [llms.txt](https://docs.armchain.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.armchain.org/tools/wallet.md).

# Wallet

The **Armchain Wallet** is the official browser extension wallet for the Armchain network, providing post-quantum secure key management and transaction signing.

## Download

The Armchain Wallet is available as a browser extension for Chrome-based browsers.

## Features

| Feature                 | Description                                               |
| ----------------------- | --------------------------------------------------------- |
| **ML-DSA44 Keys**       | Post-quantum secure key generation and storage            |
| **HD Wallet**           | BIP-39 mnemonic with Armchain-specific derivation paths   |
| **Multi-Account**       | Derive multiple accounts from a single seed phrase        |
| **Token Support**       | View and manage ARM, ERC-20, ERC-721, and ERC-1155 tokens |
| **dApp Connector**      | Connect to web3 dApps (EIP-1193 compatible)               |
| **Transaction Signing** | Sign Type 3 PQC transactions                              |
| **Message Signing**     | Sign personal messages and EIP-712 typed data             |
| **Network Management**  | Switch between devnet and custom networks                 |

## Getting Started

### Create a New Wallet

1. Install the extension
2. Click "Create New Wallet"
3. Set a strong password
4. **Write down your 12-word recovery phrase** and store it offline and securely
5. Confirm the recovery phrase
6. Wallet is ready

### Import an Existing Wallet

**From Seed Phrase:**

1. Click "Import Wallet"
2. Select "Seed Phrase"
3. Enter your 12 or 24-word recovery phrase
4. Set a password
5. Your accounts will be recovered

**From Private Key:**

1. Click "Import Wallet"
2. Select "Private Key"
3. Enter your ML-DSA44 private key
4. Set a password

> **Important**: Only import ML-DSA44 private keys (2,560 bytes). Standard ECDSA keys are not compatible.

## Account Management

### Creating Additional Accounts

The wallet supports deriving multiple accounts from a single seed phrase:

1. Click the account selector
2. Click "Create Account"
3. A new account is derived using the next hardened index

**Derivation path**: `m/44'/65536'/n'/0/0'` where `n` is the account index.

### Viewing Account Details

* **Address**: Your Armchain address (20 bytes, same format as Ethereum)
* **Balance**: ARM token balance
* **Tokens**: ERC-20 token balances
* **Activity**: Transaction history

## Sending Transactions

1. Click "Send"
2. Enter the recipient address
3. Enter the amount (in ARM)
4. Review gas fees (EIP-1559)
5. Click "Confirm"
6. The transaction is signed with ML-DSA44 and broadcast
7. Confirmation is immediate (instant finality)

## Connecting to dApps

The Armchain Wallet injects a standard EIP-1193 provider (`window.ethereum`), making it compatible with dApps that use:

* ethers.js / `@armchain-ethersv6/ethers`
* web3.js
* Any EIP-1193 compatible library

### Connect Flow

1. Visit a dApp
2. Click "Connect Wallet" on the dApp
3. Approve the connection in the wallet popup
4. Your address is now available to the dApp

## Network Configuration

### Pre-configured Networks

| Network         | Chain ID | RPC                               |
| --------------- | -------- | --------------------------------- |
| Armchain Devnet | 55       | <https://www.armchain.org/devnet> |
| Armchain Local  | 55       | <http://localhost:4000>           |

### Adding Custom Networks

1. Go to Settings → Networks
2. Click "Add Network"
3. Enter:
   * Network Name
   * RPC URL
   * Chain ID
   * Currency Symbol
   * Block Explorer URL (optional)

## Security

### Key Storage

* Private keys are encrypted with your wallet password using AES-256
* Keys never leave the extension. All signing happens locally
* No key material is sent to any server

### Recovery

* Your **seed phrase** is the only way to recover your wallet
* Store it offline, on paper or metal, in a secure location
* Never share your seed phrase
* Never enter it on a website; only enter it in the wallet extension

### Best Practices

1. Use a strong, unique password for the wallet
2. Back up your seed phrase immediately after creation
3. Test recovery on a separate device before funding the wallet
4. Keep the extension updated
5. Only connect to trusted dApps

## For Developers

See the [Wallet Integration Guide](/developers/overview-2.md) for details on:

* Connecting your dApp to the wallet
* Handling chain switching
* Signing messages and typed data
* Transaction management

## Troubleshooting

| Issue                       | Solution                                              |
| --------------------------- | ----------------------------------------------------- |
| Wallet not detected by dApp | Refresh the page, ensure extension is enabled         |
| Transaction pending forever | Check gas price, increase `maxFeePerGas`              |
| Wrong network               | Switch to the correct network in wallet settings      |
| Balance not updating        | Manually refresh or switch networks and back          |
| Import failed               | Ensure you're using an ML-DSA44 key or valid mnemonic |

## Further Reading

* [Wallet Integration (Developers)](/developers/overview-2.md) for building dApps with wallet support
* [PQC Overview](/pqc/overview.md) to understand the cryptography
* [Network Configuration](/get-started/network-configuration.md) for network details
