Thesettlementlayerforthemachineeconomy.

Developers

See exactly what Paxeer X exercises

Test, conformance, load and benchmark suites

Per-method RPC parity against a live geth, dApp suites, block tests, load and benchmark runners.

Run one Mocha spec per JSON-RPC method against a live Paxeer X node and a local geth dev node at the same time, then diff the two responses. Thirty-one eth_* methods carry happy path, schema parity and byte-for-byte error envelope assertions. Deploy real dApps, replay the Ethereum block-test corpus, compare five execution modes on identical transactions, and generate load across thirteen message types. Read the spec files and skip lists to see what is covered and what is excluded.

What it does

The repository carries several suites that exercise Paxeer X from the outside. integration_test/rpc_tests runs one Mocha spec per JSON-RPC method against a live Paxeer X node and a local geth --dev reference node at the same time, then diffs the two responses. integration_test/dapp_tests deploys real dApps (Uniswap V3, an ERC-721 marketplace and a CosmWasm liquid-staking set) and drives end-to-end flows through them. Alongside those, run_blocktests.sh replays the Ethereum blockchain test corpus through paxd blocktest, engine/tests compares execution modes on identical transactions, and loadtest/ and benchmark/ generate transaction load and report throughput.

Key capabilities

  • 31 eth_* methods, one spec each: happy path, schema parity with geth, empty forms, byte-for-byte error envelopes.
  • dApp suites cover Uniswap V3 swaps and pools, an ERC-721 marketplace, and CosmWasm liquid staking.
  • Ethereum block tests replay through paxd blocktest with name, path and non-Prague skip filters plus runner sharding.
  • A differential suite runs the same transactions through five execution modes and compares the results.
  • A Go load generator drives 13 Cosmos and EVM message types, including two deliberate failure injections.
  • Benchmark scripts run weighted scenarios, log TPS every five seconds, and compare two commits side by side.

Who it's for

Chain and application developers who need to know which Paxeer X behavior is actually exercised.

Why it matters

Ethereum tooling depends on geth's exact response shapes and error envelopes, including the ones geth never documented. These suites check that parity against a running geth rather than against a written specification, and the block tests, execution-mode comparison and load runners do the same for execution and for sustained traffic. A developer can read the spec files and skip lists to see exactly what is covered and what is excluded.

Differentiators

JSON-RPC error envelopes are asserted byte-for-byte against a live geth --dev node, not against recorded fixtures. The execution suite drives one workload through five modes (sequential and OCC variants of two executors, plus a regular-store mode) and compares outcomes. Two known interop gaps are kept as passing negative tests rather than deleted.

Outcomes

  • Diff every RPC response against a running geth, not a written spec.
  • Replay the Ethereum block-test corpus with skip filters and runner sharding.
  • Drive Uniswap V3, an NFT marketplace and CosmWasm liquid staking end to end.

Technical notes

  • The RPC suite needs a running Paxeer X node and geth --dev on 9547, plus PAX_EVM_RPC, PAX_EVM_WS, PAX_COSMOS_RPC, PAX_REST, RPC_ETH_GETH and PAX_ADMIN_MNEMONIC. Per-spec timeout is 600 s, and it runs in a single Mocha process because every spec shares one chain and a 96-account funded pool.
  • Filter and subscription specs assert Paxeer X behavior only and are not compared value-for-value against geth. No debug or txpool spec directory exists.
  • dApp tests target paxlocal, devnet (arctic-1) and testnet (atlantic-2) only, need DAPP_TESTS_MNEMONIC on live chains, and use ethers v5 where the RPC suite uses ethers v6, so the two suites share no utilities.
  • The Ethereum block-test corpus is not vendored (the caller passes its path) and engine/tests/data/skip_list.json excludes 101 state-test cases (60 result-code, 33 gas, 7 error-message and 1 fee-bound mismatches).
  • loadtest/config.json targets 500 transactions per second across 500 accounts against gRPC 127.0.0.1:9090, EVM :8545 and Tendermint :26657 on chain id pax-loadtest-testnet, but it hardcodes pax1… contract addresses and leaves pax_tester_address empty, so it will not run against a fresh chain unmodified.
  • benchmark/ scenarios are JSON files rather than a stable API, and the scripts set timeout_commit to 2000 ms for local runs. No result artifact is committed to the repository, so these files record what is exercised, not a measured outcome.
# RPC parity: start a Paxeer X node on :8545 first
cd integration_test/rpc_tests
npm install && npm run compile
npm run rpc:ci            # boots geth --dev, bootstraps, runs all 31 specs

# dApp end-to-end against a local chain
./integration_test/dapp_tests/dapp_tests.sh paxlocal uniswap

# then conformance and benchmark
./run_blocktests.sh /path/to/ethtests/BlockchainTests
BENCHMARK_CONFIG=benchmark/scenarios/erc20.json benchmark/benchmark.sh

More in Developers

Build on Paxeer.

Give your agent a wallet, set its policy, and settle your first call on LayerX.