Running the project locally
Directories have their own dependencies. Use the repository lockfiles and keep contract, ABI, manifest and client versions aligned.
The following commands build or check components locally. They are not a production deployment procedure.
Prerequisites
The project uses recent Node.js, pnpm for the dapp and services, Foundry for Solidity, and npm for this GitBook. Services require Node 22 or newer; the GitBook was prepared with Node 24.
Contracts specify Solidity 0.8.26, the Cancun EVM, via IR, an optimizer with 10 runs, and no CBOR metadata. These settings are part of the bytecode identity to verify.
After cloning, the repository’s Solidity dependencies must be present:
git submodule update --init --recursive
Compiling and testing contracts
From contracts/:
forge build --sizes
forge test
The configuration contains several fuzzing and invariant levels:
FOUNDRY_PROFILE=ci forge test
FOUNDRY_PROFILE=gate forge test
The gate profile is intentionally long. Test results must be attached to the exact revision, parameters and compiled sources. The new multiple-wall implementation is still being validated; an old log is not a result of these commands on this version.
Starting the dapp
From dapp/:
pnpm install --frozen-lockfile
pnpm typecheck
pnpm test
pnpm build
pnpm dev
Vite displays the development URL. Configuration distinguishes simulation mode from data for the configured deployment. Use the repository examples and instructions to configure a local RPC, without copying access credentials into sources or the public bundle.
Successful frontend compilation does not prove that its manifest matches the contract on the network.
Maintaining ABIs
From contracts/, export follows compilation:
bash scripts/export-abi.sh
python3 scripts/check-abi.py
The dapp provides pnpm gen-abi and services provide pnpm gen:abi. Inspect the resulting changes for affected interfaces, events and types. The new wall library and views by ID must be included in release synchronization.
The dapp’s pnpm sync-deployment command rereads a deployment manifest: run it only with metadata for the version actually verified.
Checking services
From services/:
pnpm install --frozen-lockfile
pnpm gen:abi
pnpm typecheck
pnpm test
Keeper dry-run mode is configured with the local parameters documented in its README. Operations and transaction recovery have a dedicated page.
Starting this GitBook
From gitbook/:
npm ci
npm run dev
The site is served at http://localhost:4000 with page rebuilding. To produce the static _book/ directory and check links:
npm run build
npm run preview
The local preview uses http://localhost:4001. Fonts are bundled; search runs in the browser on the book’s index.
To check documentation browser workflows:
npm run test:install
npm run test:browser
The gitbook/ README describes the HonKit choice, directory structure, checks and editorial maintenance.
Sources: contracts/foundry.toml, repository scripts, dapp/package.json, services/package.json and gitbook/package.json. Building this documentation requires no key or authenticated RPC URL.