Parallax for Ethereum Developers

Your stack works — Solidity, Hardhat, Foundry, MetaMask — with a chain ID change and one compiler flag. What changes is the ground under your contract: monetary rules and consensus that cannot be governance-voted out from under it.

Network facts

Chain ID
2110 (0x83E)
Currency
LAX (18 decimals)
RPC endpoint
https://rpc.parallaxprotocol.org
Block explorer
https://explorer.parallaxprotocol.org
EVM version
Complete through Paris
Target block time
600 seconds
Block gas limit
600M at launch (~1M gas/s), ±0.1% per block
Fee model
First-price gas auction — no base fee, no burn

Compiler and network config

The one thing that will bite you: Solidity 0.8.20+ targets Shanghai by default and emits PUSH0, which Paris does not have. Pin the EVM version and everything else is ordinary.

hardhat.config.ts
import { HardhatUserConfig } from "hardhat/config";

const config: HardhatUserConfig = {
  solidity: {
    version: "0.8.24",
    settings: { evmVersion: "paris" },
  },
  networks: {
    parallax: {
      url: "https://rpc.parallaxprotocol.org",
      chainId: 2110,
    },
  },
};

export default config;
foundry.toml
[profile.default]
evm_version = "paris"

[rpc_endpoints]
parallax = "https://rpc.parallaxprotocol.org"

What is different from Ethereum mainnet

Five differences that change how you design, none that change how you write Solidity.

Probabilistic finality
Proof-of-work has no finality checkpoints. Treat six confirmations (~1 hour) as settlement for high-value flows, fewer for small ones — and design your UX around pending states.
Ten-minute blocks
Inclusion takes minutes, not seconds. Batch operations, precompute what you can, and lean on events with optimistic UI. Sub-second UX belongs in layers built above settlement — which the EVM makes possible here.
Legacy fee market
A first-price gas auction: set gasPrice directly. There is no base fee and no EIP-1559 estimation — fee logic written for mainnet's fee market needs a legacy pricing path.
Paris-level EVM
No PUSH0, no transient storage (EIP-1153), no MCOPY, no blobs (EIP-4844). Everything through Paris behaves exactly as on mainnet — the semantics your audited dependencies were originally written against.
No scheduled forks
There is no upgrade cadence and no deprecation treadmill. The execution environment you deploy against is intended to stay — ossification is the feature, and your contract's assumptions age well because the ground does not move.

Why build on a proof-of-work base layer

Every instrument historically built atop scarce money — credit, exchange, custody, derivatives — settles somewhere. On Parallax it settles against a base asset with a fixed supply, secured by physical work, on a chain with no foundation, no token vote, and no mechanism by which a transaction can be privileged or refused. Your contract inherits that neutrality: no one can be stopped from deploying, and nothing deployed can be stopped.