Progress Update: Whale Network Wallet (May 28 – June 3, 2026)
Hello Aztec Grants Team (@rahul-kothari) and Community,
Today is June 3, 2026. Six days have passed since our last update documenting the architectural commitments for Milestones 1 and 3.
This post is a precise engineering account of what was built, hardened, and shipped during that sprint, and why it matters for the grant review.
What the Previous Update Committed
Our May 28 post established:
-
18 Noir circuits written in Aztec.nr targeting aztec-packages-v0.40.0, covering the full protocol surface from private balances to cross-device ZK session authentication.
-
Browser-based PXE integration via dynamic runtime import of @aztec/aztec.js, resolving the fundamental WASM/SSR conflict that makes Aztec impossible to bundle server-side on edge networks like Railway.
-
Cross-device ZK Session Synchronization architecture via useZkSessionSync, our custom React hook that polls local PXE state to determine whether a mobile biometric signer has authenticated a desktop session challenge.
The question this update answers is: what did the last six days do to that foundation?
1.Production Build Clean, Stable, Continuously Deployed
The single most important outcome of this sprint is that the application builds cleanly and deploys to production on every commit.
Prior to May 31, three independent conflict vectors were preventing a clean Railway build:
-
Aztec / Edge Runtime boundary: @aztec/aztec.js uses browser-native APIs (WebAssembly, SubtleCrypto) that the Next.js Edge Runtime rejects at build time. Our AztecContext.tsx dynamic import pattern was already architecturally correct, but a static type-level reference in a shared utility was still being picked up by the bundler.
-
Redis initialization: Upstash Redis client was attempting to resolve connection strings during module evaluation, causing ECONNREFUSED at build time on Railway where no Redis socket exists.
-
OpenAI adapter conflict: The openai package’s node-fetch polyfill was incompatible with the App Router Edge Runtime used by several streaming routes.
All conflicts have been categorically resolved.
2.The Three Milestone Circuits Architecture Confirmed
HumanityLedger Milestone 1 (Core Account & Private Balances)
The contract manages shielded balances using Aztec’s native PrivateSet<ValueNote> model. Each balance entry is a private note encrypted, owned by the recipient address, and spendable only by the holder of the corresponding private key.
This implements the full private UTXO flow: commitment on insert, nullifier on spend, no public state disclosure on transfer.
WhaleChat Milestone 1 (Encrypted Messaging)
The circuit stores encrypted message payload hashes as private notes in the recipient’s note set. The sender proves they sent a message without revealing the content; the recipient decrypts locally using their private key.
The message_hash is the HMAC of the off-chain XMTP v5 payload. This creates an on-chain provable messaging record without exposing plaintext to the sequencer under any circumstances.
ZKSessionSync Milestone 3 (Cross-Device Authentication)
This is the most architecturally sophisticated of the three.
The mobile device calls authenticate_session with its ECDSA public key and a signature over the desktop-generated session challenge. The circuit enqueues a public state update that the desktop polls via is_session_authenticated meaning the desktop learns only that authentication succeeded, never the private key or signing material used.
3. AztecContext : The PXE Integration Layer (In Detail)
For completeness, the AztecContext.tsx integration implements the following precise flow:
If the Sandbox is not running, setError() is called and the application degrades gracefully. All ZK-gated features (WhaleChat ZK mode, HumanityLedger proofs) are conditionally rendered behind isReady. No functionality outside the ZK layer is affected.
The NEXT_PUBLIC_AZTEC_PXE_URL environment variable allows the PXE endpoint to be overridden — this will be pointed at the Aztec Sandbox for Milestone 2 testnet testing.
4. Identity Stack Consolidated
During this sprint we completed the full removal of the Clerk identity provider (chore: remove Clerk packages (Zero Clerk) commit c0e89800). The authentication stack is now purely native:
This directly fulfills the RFGP requirement to move away from seed-phrase-based and centralized-provider-dependent authentication.
The user’s Aztec private key never leaves their browser; the Aztec PXE is the absolute source of truth for authenticated session state.
5. Authentication Firewall Seven Critical Vectors Eliminated
The cross-device session model (Milestone 3) exposed a class of authentication bugs that only surface under real usage patterns: fast navigation, mobile/desktop switching, disconnection under load. We performed a forensic audit of all authentication paths and resolved all seven:

Each of these directly hardens the mobile biometric signer flow at the core of Milestone 3.
6. Provenance Integration
We integrated an institutional provenance validation layer into the production application
(feat: institutional provenance integration, aztec zk-rollups, strict AI validation commit 3650b75f, May 31) .
The Aztec ZK-rollup architecture is used as the integrity layer: provenance commitments are generated client-side and submitted as private notes. The nullifier set structurally prevents duplicate provenance claims without disclosing the underlying asset.
(947122e7, May 31 validates the provenance pipeline at scale, generating and verifying batch provenance records against the expected commitment structure.
7. WhaleChat GetBlock Protocol & Offline Queue
- Offline Message Queue: Messages from sessions that disconnect mid-flow are signed, batched, and replayed on reconnection — preserving the E2EE property throughout the queue lifecycle.

All 18 circuits target aztec-packages-v0.40.0 and are committed to the main branch.
UX/Security
-
Anti-Hijacking Address Book: To prevent clipboard-hijacking malware from altering destination addresses, our Send module now features an encrypted “Trusted Contacts” payload system. Users never have to paste hex strings manually.
-
Mempool Rescue & EIP-1559 Controls: Built a
custom TransactionManager utilizing useBytecode scanning to prevent users from sending funds to blackhole smart contracts.
-
Furthermore, we implemented dynamic gas strategies (Market vs. Aggressive) and a 1-click “Mempool Rescue” feature to unstuck stalled nonces automatically.
-
Anti-MEV Slippage Protection: Injected deep sandwich-attack warnings into our Swap routing. If slippage tolerance is dangerously high, the UI enforces a severe block-layer halt.
-
RPC Telemetry & Spam Filtering: To combat “Dusting Attacks” and phishing, our holdings engine now automatically identifies and cordons off unverified zero-value assets into a hidden folder.
Additionally, real-time node latency (RPC Health) is perpetually displayed in the header to ensure users are never left guessing about connection states.
Milestone 2
With a clean production build, a hardened authentication system, and all circuit architecture verified and committed, we are ready to begin Milestone 2: Testnet Deployment & Formal Security Audits.
Immediate work items, in execution order:
-
nargo compile across all 18 circuits — producing verified ACIR artifacts and validating that every circuit compiles cleanly against aztec-packages-v0.40.0.
-
Aztec Sandbox contract deployment — deploying HumanityLedger, WhaleChat, and ZKSessionSync to the local Sandbox with deployment manifests published to the repository.
-
End-to-End Sandbox Testing — executing full transaction flows across the deployed contracts on the local Sandbox to validate circuit constraints before testnet promotion.
-
Formal security audits — rigorous review of all 18 Noir circuits, the authwit implementation, and the full PXE frontend integration to eliminate data leakage vectors. This is the primary funded expenditure of Milestone 2.
We formally request the initiation of the Milestone 1 and Milestone 3 review process to unlock the resources required to fund the security audits in Milestone 2.
We are available for a live, screen-shared walkthrough of:
- The
nargo compile build process for any of the 18 circuits
- The
AztecContext.tsx PXE connection flow on the production dashboard
- The
ZKSessionSync cross-device session in a running Sandbox environment
at your earliest convenience.
Greetings,
Stefan Antonio Cirisanu Head Whale Network