
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
Makefilewith more than 600 targets covering core, agent, human, platform and chain builds. - Forwarded chain targets;
paxeer-build,paxeer-test,paxeer-lintandpaxeer-cireach the Go chain. - Address, undefined-behavior and thread sanitizer builds and test runs, plus one aggregate target.
make reproduciblebuilds 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.
./layerxdashboard 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 -Wvlaand-ffp-contract=off; consensus objects add-mgeneral-regs-onlyon x86 and Arm targets. make cirunspublic-audit,test,reproducible,scan-consensusandtest-sanitizers.make workspace-ciadds the workspace inventory checks, build, test and lint.all,build,ci,cleanandtestexist in both makefiles and keep their LayerX meaning at the root; the chain versions are reached withmake -f chain.mk <target>.- There is no
make help, and nofmt,protoorswaggertarget. Target discovery rests onmake list-testsand reading the file. tools/build/npm-workspace-build.mjsrefuses glob workspace patterns, duplicate package names and dependency cycles;--print-orderprints the order without building. It is run by the rootnpm 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-mapneeds the externalcgtool and a.codegraph/graph.dbindex before it can generate;tools/jevruns five report-only checks (deps,docs,failures,ledger,pr) against a model endpoint and has a--dry-runmode.- The
./layerxdashboard 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 RustlayerxCLI.
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 dashboardMore in Developers
Public JSON-RPC gateway and OpenRPC schema
One endpoint for chain and agent reads
ExploreRunnable samples and reference apps
Samples that cannot go stale
ExploreTest, conformance, load and benchmark runners
See exactly what Paxeer X exercises
ExploreClient SDKs in seven languages
Call the network from seven languages
ExploreBuild on Paxeer.
Give your agent a wallet, set its policy, and settle your first call on LayerX.