AERE runs the Ethereum Virtual Machine and exposes the standard Ethereum JSON-RPC API. The design target is that a tool which works against Ethereum works against AERE with nothing changed but the chain ID and the RPC URL.
Works unchanged
| Tool | What you change |
|---|---|
| MetaMask and other injected wallets | Add the network once |
| ethers.js v6 | The provider URL and chainId: 2800 |
| viem | The chain object |
| Hardhat | One entry in networks |
| Foundry | --rpc-url and --chain 2800 |
| Solidity, any version targeting Osaka or earlier | Nothing |
| Vyper | Nothing |
| OpenZeppelin contracts | Nothing |
eth_call-based indexers and subgraph-style pipelines | The endpoint |
The things that are genuinely different
Three, and none of them break a standard tool. They change what an answer means.
A base fee floor. From block 10,141,734 the base fee cannot fall below 1 Gwei. EIP-1559 is otherwise unchanged. A tool that assumes the base fee decays toward zero on an empty chain will see it stop at the floor. See Fees and the base fee floor.
A 512-block state window on the public RPC. Beyond that window, state-reading calls answer from a pruned state and eth_getTransactionCount returns a false 0x0. Prove facts about accounts with eth_getProof, never with a nonce read against an old block. See Events and logs.
Anchor blocks carry a large extraData. Every 128th header carries a post-quantum certificate, which makes those headers tens of kilobytes rather than hundreds of bytes. A client that assumes a small fixed header size will be surprised; a client that reads the field length will not.
If you are writing a client
If you are implementing a node or a light client rather than an application, the normative document is the protocol specification, not this page. It states what a third-party client must implement to follow chain 2800, including the parts where our own tooling had to be corrected.