> 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/resources/faq.md).

# FAQ

Quick answers to the most common questions about Armchain. If your question isn't here, check the [Glossary](/resources/glossary.md) for terminology or visit the community Discord.

## General

### What is Armchain?

Armchain is a Layer 1 blockchain combining **EVM compatibility** with **post-quantum cryptography**. It uses Lachesis aBFT consensus for instant finality and ML-DSA44 (FIPS 204) for quantum-resistant signing.

### How is Armchain different from Ethereum?

| Feature          | Ethereum                | Armchain                    |
| ---------------- | ----------------------- | --------------------------- |
| Consensus        | Proof of Stake (Gasper) | Lachesis aBFT (DAG-based)   |
| Finality         | \~12 minutes            | **Instant**                 |
| Cryptography     | ECDSA (secp256k1)       | **ML-DSA44** (post-quantum) |
| Transaction Type | 0, 1, 2                 | **3** (PQC only)            |
| EVM              | Yes                     | Yes (London)                |

### Is Armchain EVM compatible?

Yes. Standard Solidity and Vyper contracts deploy on Armchain without modification. All EVM opcodes, precompiles, and ABI encoding work identically.

### What is the native token?

**ARM** is used for gas fees, validator staking, and governance.

***

## Post-Quantum Cryptography

### Why does Armchain use post-quantum cryptography?

Current blockchains use ECDSA, which can be broken by a sufficiently powerful quantum computer using Shor's algorithm. Armchain uses ML-DSA44 (a NIST-standardized post-quantum algorithm) to ensure that transactions and keys remain secure even in a post-quantum world.

### What is ML-DSA44?

ML-DSA44 (Module-Lattice Digital Signature Algorithm, Level 2) is a digital signature scheme standardized by NIST in FIPS 204. It provides \~128-bit security against both classical and quantum computers.

### Are quantum computers a real threat today?

Not yet for breaking cryptography. However, the **"harvest now, decrypt later"** attack is a current concern: adversaries store signed data today for later decryption when quantum computers become available. Armchain provides protection from day one.

### Why are transactions larger on Armchain?

ML-DSA44 signatures are inherently larger than ECDSA (3,732 bytes vs 65 bytes). The public key must also be included in every transaction (1,312 bytes) because ML-DSA44 does not support public key recovery. This results in \~3,930-byte simple transfers vs \~110 bytes with ECDSA.

### Can I use my Ethereum private key on Armchain?

No. ECDSA private keys are incompatible with Armchain. Generate ML-DSA44 keys using the Armchain Wallet or `@armchain-ethersv6/ethers`.

***

## Development

### Can I use Hardhat with Armchain?

Yes. Install `@armchain-ethersv6/ethers` and configure Hardhat with Armchain's RPC URL and chain ID. See [Quickstart](/get-started/quickstart.md).

### Can I use Foundry with Armchain?

Foundry can be used for compilation and read-only interactions (`cast call`). Deployment and write transactions require ML-DSA44 signing, which Foundry does not natively support. Use Hardhat or the Ethers SDK instead. See [Smart Contracts Overview](/developers/overview.md).

### What Solidity version should I use?

Armchain supports Solidity `^0.8.x`. Recommended: `0.8.24` or later.

### How do I verify contracts on the explorer?

Use the Armchain Explorer's contract verification tool. Submit source code, compiler version, and constructor arguments. See [Explorer](/tools/explorer.md).

### What is the gas limit for blocks?

The maximum block gas is **20,500,000**. Minimum gas price is **1 Gwei**.

***

## Wallet

### How do I create a wallet?

Install the Armchain Wallet browser extension, or create a wallet programmatically:

```javascript
import { ethers } from "@armchain-ethersv6/ethers";
const wallet = ethers.Wallet.createRandom();
console.log(wallet.address);
```

### What derivation path does Armchain use?

```
m/44'/65536'/account'/0/address'
```

All indices are hardened. Coin type is `65536`.

### How do I back up my wallet?

Write down your **12-word recovery phrase** and store it offline in a secure location. This phrase recovers all derived accounts.

***

## Node Operations

### How do I run a validator?

Build the `opera` binary, generate ML-DSA44 validator keys, stake ARM, and register. See [Running a Validator](https://github.com/khizarbakhtiar1/dev-docs/blob/main/node-operators/running-a-validator.md).

### What ports need to be open?

| Port  | Protocol | Purpose                                  |
| ----- | -------- | ---------------------------------------- |
| 5050  | TCP/UDP  | P2P networking                           |
| 18545 | TCP      | HTTP JSON-RPC (optional, for API access) |
| 18546 | TCP      | WebSocket JSON-RPC (optional)            |

### How do I set up a local development network?

Use fakenet mode:

```bash
armnode --fakenet 1/1
```

See [Fakenet Guide](/node-operators/fakenet.md).

***

## Account Abstraction

### Does Armchain support Account Abstraction?

Yes. Armchain implements **native Account Abstraction** at the protocol level. This is not an application-layer standard like ERC-4337. AA transactions go through a dedicated mempool and gossip layer in the consensus client, and are validated by system contracts deployed at genesis.

### What signing schemes can AA accounts use?

AA accounts support multiple validation schemes:

* **MLDSA**: ML-DSA44 (post-quantum, same as standard transactions)
* **Passkey (P-256)**: WebAuthn-compatible biometric devices and hardware keys (Touch ID, Face ID, YubiKey)
* **SLH-DSA**: SPHINCS+ hash-based post-quantum (FIPS 205)
* **MPC for ECDSA**: Guardian accounts with multi-party key management
* **Custom**: Any logic conforming to the system contract interface (written in Yul)

Falcon (lattice-based PQC) is planned but not yet available.

### What is the Foundation Paymaster?

The Foundation Paymaster is a protocol-level contract deployed at genesis. It sponsors contract deployments and initial transactions for new users who do not hold ARM, solving the gas bootstrapping problem for onboarding. It operates under a staking-based economic policy that deters DDoS attacks.

### Can I use a passkey (biometric) to control an Armchain account?

Yes. The Passkey validation scheme supports WebAuthn / FIDO2 credentials. Users can sign AA transactions using Touch ID, Face ID, fingerprint readers, or hardware security keys. No seed phrase management is required for Passkey accounts. Wallet UI support for this is in active development.

### Can third parties run their own paymaster on Armchain?

Yes. Any entity can deploy and operate a paymaster. The paymaster must stake ARM and maintain a deposit covering expected gas costs. Common models include free sponsorship for dApp users, token paymasters, and subscription-based paymasters.

### Does Armchain have social login?

Social login (using OAuth providers like Google or Apple as an account recovery mechanism) is not currently available. It would require operating MPC infrastructure on top of the existing Guardian account framework. This is an attractive feature under consideration for a future release.

### Do I need to write Yul to use Account Abstraction?

If you are a **user** of an AA account (Passkey, Guardian, MLDSA wallet), no Yul is required. You interact through a wallet UI or the SDK.

If you are a **developer building a custom validation scheme or paymaster** that uses AA-specific EVM opcodes, you must write that contract in Yul. The standard Solidity compiler does not recognize the new opcodes introduced for native AA. The Armchain team is evaluating a fork of the Solidity compiler to address this.

***

## Troubleshooting

### My transaction is failing with "transaction type not supported"

Ensure you're using `type: 3` in all transactions. Armchain only supports Type 3 (PQC) transactions.

### My transaction is failing with "invalid signature"

Ensure you're using ML-DSA44 keys (not ECDSA). Generate new keys with `ethers.Wallet.createRandom()` from `@armchain-ethersv6/ethers`.

### I can't connect to the node

* Check that the node is running and fully synced
* Verify the RPC URL and port (default: 18545 for HTTP)
* Ensure the RPC endpoint is enabled (`--http --http.addr 0.0.0.0 --http.port 18545`)
* Check firewall rules

### My dApp doesn't detect the Armchain Wallet

* Ensure the extension is installed and enabled
* Refresh the page
* Check that your code listens for `window.ethereum`

### The explorer shows "pending" for my transaction

Armchain has instant finality; transactions confirm in seconds. If a transaction stays pending:

* Verify the gas price is at least 1 Gwei
* Check that the nonce is correct
* Ensure the sender has sufficient ARM balance


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.armchain.org/resources/faq.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
