# 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


---

# 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.armchain.org/tools/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.
