FAQ

Quick answers to the most common questions about Armchain. If your question isn't here, check the Glossary 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.

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.

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.

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:

What derivation path does Armchain use?

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 Validatorarrow-up-right.

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:

See Fakenet Guide.


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

Last updated