Thesettlementlayerforthemachineeconomy.

Developers

One command set builds the whole network

Repo build system and developer tooling

A Make-driven monorepo with a sanitizer matrix, invariant gate scripts and ordered npm workspace builds.

Build the C17 and Rust LayerX core from the root Makefile and the Go Paxeer chain through forwarded chain targets, with one target vocabulary. Run address, undefined-behavior and thread sanitizer suites, or build twice and compare the static libraries byte for byte. The CI gates fail a float literal in core sources, a second writer of an account balance, or an LNI version that drifts from its consumers. There is no make help, so read the file.

What it does

Paxeer X is built from one public monorepo whose root Makefile drives the C17 and Rust LayerX core while chain.mk drives the Go Paxeer chain, with the chain target names forwarded from the root so the same make <target> calls work from one place. A topological Node builder orders the twenty declared npm workspaces, and a set of gate scripts in tools/ci/ assert static invariants on every build. A Bash dashboard at the repository root shows module dependencies, builds and tests without needing any project dependency installed first.

Key capabilities

  • Root Makefile with more than 600 targets covering core, agent, human, platform and chain builds.
  • Forwarded chain targets; paxeer-build, paxeer-test, paxeer-lint and paxeer-ci reach the Go chain.
  • Address, undefined-behavior and thread sanitizer builds and test runs, plus one aggregate target.
  • make reproducible builds twice and compares the two static libraries byte for byte.
  • CI gate scripts enforce no floating point, a single balance writer and LNI version parity.
  • ./layerx dashboard drives dependency, build and test control across nine repository modules.

Who it's for

Contributors and operators who build Paxeer X and the LayerX agent domain from source.

Why it matters

One command set builds every part of the network, so a contributor does not have to learn a different toolchain layout per directory. The gates catch a class of consensus-breaking change at build time rather than in review: a float literal in core sources, a second writer of an account balance, or an LNI version that drifts between the schema and its nine consumers all fail the build.

Differentiators

The gates check real invariants rather than style. tools/ci/no-float-scan.sh scans include/layerx and src for float, double, math.h and float literals, then disassembles the built objects for floating-point instructions and checks for libm imports. tools/lxp_check_sole_writer.sh fails unless src/ledger/lxp_apply.c is the only file in src that assigns ->balance. tools/ci/lni-version-parity.sh requires one LNI version across the agent/schema/lni/v1.kvx schema, the daemon, the Rust client and six native consumers. make reproducible builds liblayerx.a into two directories and cmps them.

Outcomes

  • Build every module with one target set, not per-directory toolchains.
  • Catch consensus-breaking changes at build time rather than in review.
  • Compare two builds of the static library byte for byte.

Technical notes

  • Core C builds with -std=c17 -pedantic -Werror -Wall -Wextra -Wconversion -Wshadow -Wvla and -ffp-contract=off; consensus objects add -mgeneral-regs-only on x86 and Arm targets.
  • make ci runs public-audit, test, reproducible, scan-consensus and test-sanitizers. make workspace-ci adds the workspace inventory checks, build, test and lint.
  • all, build, ci, clean and test exist in both makefiles and keep their LayerX meaning at the root; the chain versions are reached with make -f chain.mk <target>.
  • There is no make help, and no fmt, proto or swagger target. Target discovery rests on make list-tests and reading the file.
  • tools/build/npm-workspace-build.mjs refuses glob workspace patterns, duplicate package names and dependency cycles; --print-order prints the order without building. It is run by the root npm run build, not by the Makefile.
  • Runtime floors are Node.js 22 or newer and Python 3.11 or newer. Five gate scripts call ripgrep with no fallback, so CI installs it before the gates run.
  • tools/codebase-map needs the external cg tool and a .codegraph/graph.db index before it can generate; tools/jev runs five report-only checks (deps, docs, failures, ledger, pr) against a model endpoint and has a --dry-run mode.
  • The ./layerx dashboard needs Bash 4.0 or newer and an interactive terminal; it refuses subcommands, refuses a non-terminal stdin or stdout, and refuses to run outside the repository root. It shares its name with the Rust layerx CLI.
make build test                  # core library and the LayerX test suite
make reproducible                # two builds, byte-identical comparison
make scan-consensus              # no-float and symbol allowlist gates
make test-sanitizers             # ASan, UBSan and TSan suites
make paxeer-build paxeer-test    # the Go Paxeer chain via chain.mk
npm run build                    # topological npm workspace build
node tools/build/npm-workspace-build.mjs --print-order
./layerx                         # interactive workspace dashboard

More in Developers

Build on Paxeer.

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