# Grant Proposal: Dark Forest on Aztec, Nyx team

**URL:** <https://forum.aztec.network/t/grant-proposal-dark-forest-on-aztec-nyx-team/8313>\
**Category:** Aztec\
**Tags:** noir, rfgp\
**Created:** [January 13, 2026, 10:01am UTC](https://forum.aztec.network/t/grant-proposal-dark-forest-on-aztec-nyx-team/8313 "2026-01-13T10:01:51Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![0xKarl98](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.aztec.network/0xkarl98/32/2790_2.png) [@0xKarl98](https://forum.aztec.network/u/0xKarl98)\
**Post date:** [January 13, 2026, 10:01am UTC](https://forum.aztec.network/t/grant-proposal-dark-forest-on-aztec-nyx-team/8313/1 "2026-01-13T10:01:51Z")

</div>

# Dark Forest v0.6 on Aztec - Nagu Proposal

### Title / Team

Team: Nyx

Leads: Nagu Thogiti & Karl Yu (co-leads)

Contact: [0xnagu@gmail.com] - [Telegram](https://t.me/OxNagu2)

GitHub/Portfolio: [https://thogiti.github.io/](https://thogiti.github.io/), [https://X.com/0xnagu](https://X.com/0xnagu), [0xKarl98 (Karl Yu) · GitHub](https://github.com/0xKarl98)

### Start and End Date

Start: ASAP

Functional MVP on Aztec: Mar 22, 2026 (aligned with alpha launch)

### Summary

We will ship Dark Forest v0.6 on the Aztec Network, bringing hidden-information play to mainnet with Aztec’s private/public model. The original v0.6 split trustless validation (Circom proofs + Solidity) from rendering. On Aztec, we refactor that complexity into Noir private execution plus minimal public commitments, avoiding per-turn application-level EVM verifier patterns while keeping player maps and route intel private by default. Goal: a Dark Forest that runs on mainnet with lower operational cost and faster iteration.

We start with a spec-first rewrite of all v0.6 circuits (init, move, reveal, biomebase, whitelist) into Noir, preserving mechanics: planet discovery/ownership, energy/silver economy, ship movement/capture, artifact minting via foundries, and spacetime rips for Aztec-native NFTs. We implement DF-parity primitives in Noir (hashing, fixed-point math, deterministic seeding, and deterministic world-claim verification aligned with v0.6 semantics) with explicit boundaries on what is constrained versus unconstrained, validated by golden vectors and scenario tests. Exploration remains client-side; on-chain checks validate claims/transitions. Public functions store only hashed world state and move commitments; private functions validate full moves, keeping exploration and route intel off-chain.

On the frontend, we reuse the proven DF client/renderer and swap in an Aztec adapter built on aztec.js + PXE. The adapter handles session keys (AuthWit), tx lifecycle, indexer sync, and an optional non-custodial lightweight relay for constrained devices; players can always submit directly. We ship comprehensive tests (unit + scenario + property) and devnet rehearsals with load/latency instrumentation. Stretch: plugin-ready API and an “Aztec Hidden-Info Game” template for future builders.

### About the Team

- **Nagu Thogiti - Independent Researcher (ex-Ethereum Foundation PSE)**  
Strengths:

- **Karl Yu - Engineer & Security Researcher (Reth contributor; Noir/Aztec ecosystem; ex-yAudit)**  
Strengths:

Why this team is sufficient:  
This grant is two hard problems:

- (1) circuit/contract parity under hidden information
- (2) a production-grade client + indexing + performance harness.  
Karl leads Noir/circuit parity and the proving pipeline; Nagu leads architecture, invariants, adversarial review, and frontend integration quality. We will ship a measured MVP by Mar 22.

### Technical Approach

- **Smart contracts & circuits** : Rewrite v0.6 Circom circuits into Noir private functions; expose minimal public functions for hashed planet state, move commitments, world params. Preserve mechanics: energy transfer, silver mining/upgrades, ship movement/capture zones, artifact minting, spacetime rip exits → Aztec-native NFTs.
- **Privacy model** : Private functions validate un-hashed claims; public state stores commitments. Maintain client-side private maps; add replay protection and deterministic seeds for reproducibility.
- **Core primitives** : Noir implementations for DF hashing (Poseidon/Blake2s as needed), fixed-point math, deterministic seeding, and deterministic world-claim verification aligned with v0.6 semantics, plus radius/capture math, cooldowns, artifact entropy. Benchmark with Noir stdlib + ACVM optimizations.
- **Performance (\<60s/turn)**: Multithreaded client proving via workers; profiling-driven constraint reduction and proof-size tuning; transaction construction optimized with aztec.js and AuthWit session keys to reduce UX friction and overhead.
- **Frontend integration** : Adapter layer for aztec.js/PXE replacing Solidity RPCs; event indexing + optimistic UI sync; maintain DF renderer and plugin hooks. Add UX for artifact NFT mint/withdrawals and resource dashboards.
- **Testing & verification** : Unit tests for every mechanic; property tests for invariants (energy/silver conservation, capture rules); golden-vector parity vs v0.6 circuits; scenario tests for discovery/move/reveal/artifact flows; load tests for mempool/turn latency.
- **Documentation** : Dev setup, deploy/runbook, contract/API docs, and a migration guide “from Circom/Solidity to Noir/Aztec” as ecosystem reference.
- **Repo layout (at a glance)**:

```auto
dark-forest-aztec/
├── src/ # Noir smart contracts
│ └── game_logic/
│ ├── move.nr # private logic (energy/range checks)
│ ├── capture.nr # public state transitions
│ └── perlin.nr # procedural helper
├── client/ # modified frontend
│ └── src/api/
│ ├── AztecAdapter.ts # PXE / AuthWit manager
│ └── MinerWorker.ts # background thread map miner
└── tests/ # integration/perf
    └── perlin_bench.test.nr # constraint/bench harness

```

### Deliverables (Non-negotiable)

- Deployed Aztec contracts implementing a faithful Dark Forest v0.6 port (core mechanics + NFT mint from spacetime rips).
- A playable web client that syncs state from Aztec and submits player turns as Aztec transactions.
- Open-source repo with reproducible setup, unit + scenario tests, and developer documentation.
- v0.6 parity checklist (function-by-function invariants and edge cases) with golden test vectors comparing Noir outputs to original v0.6 circuits/contracts for key actions.
- Reusable Noir procedural claim-verification helpers (hashing/fixed-point/procedural modules) documented for ecosystem reuse.

### Open Source & Licensing

- Final codebase will be released under MIT (or similarly permissive).
- We may reuse components from the original Dark Forest repository where helpful; any LGPL-licensed reuse will remain LGPL with clear attribution and separation.

### Turn-Time Performance and Proof Strategy (\<60s to mempool dispatch)

We design around the RFP KPI that a player turn must be generated and dispatched to the Aztec mempool in \<60 seconds. This is dominated by client-side witness/proof generation and tx assembly. Our plan is benchmark-driven: we ship an automated “turn-time harness” early (CI + reproducible hardware profile) and iterate on three levers:

1. **Constraint minimization by architecture** : keep private functions scoped to security-critical invariants; push large, non-critical computation into bounded unconstrained regions with explicit checks.
2. **Parallel proving pipeline** : multithreaded witness/proof generation via workers with safe caching/reuse across turns.
3. **Proof composition where it helps** : use Aztec’s native proof composition/recursion patterns to keep per-turn overhead predictable.

Turn-time harness metrics: witness generation time, proving time, tx assembly time, and dispatch-to-mempool time; reported at milestones (p50/p90).  
Baseline profile: M2 MacBook Air (or similar) / 16GB RAM; turn time measured from user action to valid dispatch to Aztec mempool.

Our bottleneck is client proving + tx assembly; we optimize it directly via constraint budgeting, parallel proving, and benchmark-driven iteration. We will report turn-time measurements at each milestone and open-source the final implementation per grant requirements. We will not share constraint-level optimizations or pipeline micro-architecture pre-award; those land with the open-source delivery.

### Grant Milestones & Roadmap

1. **Weeks 1–2 (starting week of Jan 19):** Parity spec vs v0.6; world-state schema; primitives + tests; benchmark harness established.
2. **Weeks 3–4:** Noir init/move/reveal/biomebase/whitelist; public state transitions; unit + property tests.
3. **Weeks 5–6:** Energy/silver economy, movement/capture zones, foundry artifact minting, spacetime rip NFT flow; scenario suite.
4. **Weeks 7–8:** Aztec adapter in DF client; tx lifecycle + indexer sync; session-key UX; per-turn latency instrumentation; devnet playable build.
5. **Weeks 9–10:** Load/latency tests (\<60s/turn target); security review; docs/runbooks; open-source release; mainnet deployment window for Mar 22.  
**KPI Gate:** By Weeks 8–9, representative turns (move/capture, upgrade, artifact craft, rip→NFT) meet \<60s mempool dispatch on a documented baseline machine (e.g., M2 MacBook Air/16GB RAM or equivalent) with p50 target and p90 tracked.

### Stretch Goals

- Plugin-ready API and sample plugins (planet overview, leaderboard, artifact marketplace stubs).
- Renderer/UX polish (mobile-friendly controls, better resource HUD, tutorial/onboarding).
- “Aztec Hidden-Information Game” template repo derived from DF codebase.

### Risks & Mitigations

- **Proving latency variance (low-end devices):** workers + caching + optional non-custodial relay; track p90 turn times and profile hotspots.
- **Indexer/sync complexity:** build indexer early (Weeks 3–4); replay/scenario tests to catch desyncs; keep public state minimal.
- **Noir/toolchain stability:** pin toolchain versions; CI that fails on version drift.

### Grant Amount Requested

$75,000

### Grant Budget Rationale

- Noir/Aztec contract engineering + proving performance: $32k (Karl + Nagu, full-time ~8 weeks)
- Frontend + aztec.js/PXE integration + indexing/sync: $18k (Nagu lead, Karl support, full-time ~6 weeks)
- QA, testing infra, load/prover profiling: $12k
- Docs, deployment, community handoff: $6k
- Contingency (infra, audits, NFT mint pipeline): $7k

### Questions for the Foundation

- Confirm preferred Aztec test environment (devnet vs local sandbox) for milestone demos.
- Any constraints on NFT standard for Aztec-native artifacts?
- Preferred telemetry hooks for alpha showcase (e.g., anonymized usage/latency reporting)?
