---
# System prepended metadata

title: Aaadhar Noir Circuits Cleanup

---

# Aaadhar Noir Circuits Cleanup

## Todos

1. Folder structure
2. Selective Disclosure Impl
3. testing env 
4. benchmarks

### Improvements

1. Removal of unwanted (e.g., `rsa-sha256`) 
2. Migration to latest Noir version
4. Using Offical RSA Precomplie.
5. Monorepo implementation inspired by zkEmail.nr repo
7. js testing environment 
8. `scripts` -- for bench marking and sample data
9. remove hardcoded in the circuits
10. Selective Disclosure Implementation
11. Benchmarks. we will use react-native-noir for benchmarking in mobile (andriod and ios) as well.
12. go through timestamp circuit.

### Folder Structure

```
├── tests/
└── scripts/
├── circuits
│   └── src
│       ├── verifier/
│       │   └── signature_verifier.nr
│       ├── core/
│       │   ├── extractor.nr
│       │   └── qr_verifier.nr
│       │   └── nullifier.nr
│       ├── utils/
│       │   ├── utils.nr
│       │   └── constants.nr
│       └── main.nr
```

### Potential Problems with Monorepo


1. **Version Dependencies with noir-rsa Package**
  - Our implementation is tightly coupled with specific noir-rsa package versions
  - Possible Solutions:
    - Extract signature_verifier as a separate module
    - Keep core logic independent of RSA implementation
    - Use version-specific branches for RSA-dependent components

  - **Option 2: Split Architecture**
    ```
    /projects
      ├── core-circuits/     # Main implementation
      └── verifier/          # RSA Noir Separate Signature Verifier Circuits
    ```
    
**it's not a significant issue since noir team is updating packages with latest noir version.**

### Testing

we will be using `@noir-lang/noir_js`


### Benchmarking Stuff

i have tested `react-native-noir` with andriod device which surprising ran very smooth. i think we can experiment our mobile stack with noir.

- have to do standard benchmarks and also mobile benchmarks.


