---
# System prepended metadata

title: Circom Set Non-Membership Circuit

---

# Circom Set Non-Membership Circuit
* **Estimated Duration:** 2 weeks
* **FTE:**  1
* **Costs:** $5000
* **Estimated delivery date**: 30-Dec-22

| Number | Deliverable | Specification |
| ------------- | ------------- | ------------- |
| 1 | Circuit | Write circuit that shows an address would fit between two adjacent elements in a sorted list. Verifies a signature; runs two merkle proofs; makes sure the two indices are adjacent; makes sure the signer's address would have been between the two found. |
| 2 | Helper Functions | Sort a list of addresses outside the circuit using a compare function that's equivalent to the circuit's comparison. Find the appropriate index.
| 3 | Test Suite | Test a basic valid case. Should fail for indices outside the list. Should fail when the signer is not between the two advice addresses. Should fail when the signer is one of the advice addresses.