Developer Guide — Getting started

This guide is for engineers working on AXON. It assumes you've read Architecture → Overview.

What you'll find here

Page Contents
Repository layout The monorepo tree — every app and package and what it does.
Backend services Each NestJS service: endpoints, responsibilities, owned tables, integrations, workers.
Data model The Prisma models and enums, grouped by domain.
Frontend (web app) Routes, auth wiring (Privy + wagmi + SIWE), state, and the mobile‑screen reuse.
Smart contracts AXONEscrow.sol and MockUSDC.sol — functions, events, build/test.
Conventions & patterns The recurring patterns you must follow when changing the system.
Local development Run the whole stack on your machine.

Then see Deployment for the production runbook.

Prerequisites

  • Node.js 20 and pnpm 8.15 (corepack enable && corepack prepare [email protected] --activate).
  • Docker + Docker Compose (the whole stack runs in containers).
  • A Base Sepolia RPC URL (e.g. https://sepolia.base.org).
  • Partner credentials as needed: Privy app ID/secret, Sumsub app token/secret, OpenAI API key, MoonPay/Onramper keys. Most have sandbox defaults or fail closed when unset.

Mental model in 60 seconds

  • It's a Turborepo + pnpm monorepo: apps/* are deployable apps (frontends + NestJS services), packages/* are shared libraries.
  • All backend services compile against one Prisma schema (@axon/db) and one shared config (@axon/shared-config); external vendors are wrapped in @axon/integration-layer.
  • The web app reuses screens/hooks from apps/mobile-version as a workspace dependency, so the core flows have one implementation.
  • Nothing talks to a service directly except the API gateway; locally and in prod, you go through it.

Build & checks

pnpm install                 # install the workspace
pnpm build                   # turbo build (packages first, then apps)
pnpm --filter web typecheck  # type-check a single app
pnpm lint                    # turbo lint
pnpm test                    # turbo test (jest)

CI (.github/workflows/ci.yml) runs install → Prisma generate → build packages → typecheck packages + backend services → jest → contract tests → secret scanning on every push to main.

results matching ""

    No results matching ""