Core Packages

@repo/noir

TypeScript bindings for Noir ZK circuits.

Key services:

  • NoirService — Proof generation using Barretenberg

  • NoteService — Note encryption, decryption, commitment, nullifier computation

  • ShieldingService — Building shielded transaction parameters

Generated code: src/generated/noir_ffi.ts — Auto-generated by build-circuits.sh. Do not edit manually.

Exported Poseidon2 functions: poseidon2_2, poseidon2_3, poseidon2_6, etc.

@repo/nullmask-rpc

Framework-agnostic core RPC proxy logic. Used by the rpc-proxy app.

Key services:

  • ShieldingService — Orchestrates shielded transfers, withdrawals, and swaps

  • NoteTreeService — Manages the commitment tree for membership proofs

  • NotesScanner — Scans blockchain for incoming notes

  • NotesStorage / KeyStorageService — Per-user state management

  • FallbackProxy — Forwards unhandled methods to blockchain node

Key types:

  • NoteOwner{ accessToken, address } — Isolated storage key

  • NoteNullifiersreadonly [Hex, Hex, Hex, Hex, Hex, Hex] — Fixed-length tuple

@repo/rpc-handler

JSON-RPC handler utilities shared by backend services. Provides:

  • Request/response parsing

  • Error handling

  • Method routing

@repo/design-system

shadcn/ui based component library. Provides the core UI primitives (buttons, inputs, modals, etc.) with Tailwind CSS 4.

@repo/core-ui

Nullmask-specific UI components built on top of the design system:

  • Onboarding stepper

  • Token selectors

  • Transaction history displays

  • Balance displays

@repo/wallet-management

Wallet connection management using Wagmi. Handles:

  • Wallet connection/disconnection

  • Network switching

  • Account change detection

@repo/api

tRPC API definitions for client-server communication.

@repo/interfaces

Shared TypeScript type definitions used across all packages and apps.

@repo/logger

Structured logging utilities. All backend code must use this instead of console.*.

@repo/utils

General shared utilities.

Last updated