Developers

Break things here, not in production

Run a private copy of the network on your own machine, with the same RPC, the same receipts and the same tooling as mainnet.

Nothing leaves your laptop and nothing costs anything. When the tests pass, moving to chain 125 is a change of URL.

Money software earns trust by being boring in production, and that means being adventurous somewhere else first. Paxeer X gives you two places to be adventurous: a multi-node cluster that runs in Docker and behaves like the network's EVM, and an emulator that runs agent payment flows and signs receipts exactly the way the network does. Both come from the open repository, both run offline, and both are free to break.

A contract developer runs a Foundry suite against the cluster. An agent developer watches budgets refuse an overspend and receipts verify on the emulator, before a single real PAX is involved.

Two ways to run it

The Docker cluster
Four nodes on your machine, with standard JSON-RPC on localhost:8545. Deploy with Foundry or Hardhat, watch the logs, and add Prometheus and Grafana with one extra target if you want to see what the network sees.
The emulator
Part of the layerx CLI. It embeds a sequencer and an EVM test node, listens only on localhost, and returns signed receipts you can verify against its own published keys. Agent flows, budgets, grants and programs all run here.
terminaltextReady
1# contracts: a four-node cluster on localhost:85452make docker-cluster-start34# agents: the emulator5layerx emulator provision6layerx emulator up

From laptop to mainnet in one config change

  1. 01

    Write against localhost

    Point Hardhat or Foundry at http://127.0.0.1:8545. The repository ships a Foundry profile with the right compiler and OpenZeppelin remappings, and a Hardhat network entry that reads the local URL from an environment variable.

  2. 02

    Run your tests as usual

    Deploy, call, read logs, assert. The cluster is a real chain, so gas estimates, events and reverts match what you will see on the network.

  3. 03

    Swap the URL and chain ID

    Change the RPC URL to https://api-mainnet-beta.paxeer.network/rpc and the chain ID to 125. Nothing else in your project changes.

  4. 04

    Keep both

    Leave the local network in your config as a named environment. Your CI runs against it on every commit; your release pipeline targets mainnet.

hardhat.config.jstextReady
1networks: {2  paxlocal: {3    url: process.env.PAXEER_LOCAL_EVM_RPC_URL || "http://127.0.0.1:8545",4  },5  paxeer: {6    url: "https://api-mainnet-beta.paxeer.network/rpc",7    chainId: 125,8  },9},

Receipts you can trust before you trust us

If your verifier accepts an emulator receipt, it will accept a mainnet receipt, and refuse a forged one, for the same reasons.

The emulator signs with its own receipt key and publishes that key the way the network publishes its keys. That means the verification code in your SDK runs unchanged: fetch the receipt, check the signature, compare the transaction hash, confirm the position in sequence. The reference-app runner ties it together, spinning up a scratch profile, running a buyer payment, a merchant checkout and a program marketplace end to end, then tearing everything down, even when a step fails.

Related

Follow the terminal tutorial

Every command on this page in order, with the output you should expect at each step.