Core Packages
@repo/noir
TypeScript bindings for Noir ZK circuits.
Key services:
NoirService— Proof generation using BarretenbergNoteService— Note encryption, decryption, commitment, nullifier computationShieldingService— 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 swapsNoteTreeService— Manages the commitment tree for membership proofsNotesScanner— Scans blockchain for incoming notesNotesStorage/KeyStorageService— Per-user state managementFallbackProxy— Forwards unhandled methods to blockchain node
Key types:
NoteOwner—{ accessToken, address }— Isolated storage keyNoteNullifiers—readonly [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