### Terms and Conditions
- [x] I agree to the [Grant Agreement](https://9ba4718…c-5c73-47c3-a024-4fc4e5278803.usrfiles.com/ugd/9ba471_f81ef4e4b5f040038350270590eb2e42.pdf) terms if funded
- [x] I agree to [Provide KYC information](https://9ba4718c-5c73-47c3-a024-4fc4e5278803.usrfiles.com/ugd/9ba471_7d9e73d16b584a61bae92282b208efc4.pdf) if funded above $50,000 USD
- [x] I agree to disclose conflicts of interest
- [x] I agree to adhere to the [Code of Conduct](https://forum.zcashcommunity.com/t/zcg-code-of-conduct/41787) and [Communication Guidelines](https://forum.zcashcommunity.com/t/zcg-communication-guidelines/44284)
- [x] I understand all milestone deliverables will be validated and accepted by their intended users or their representatives, who will confirm that the deliverables meet the required quality, functionality, and usability for each user story.
- [x] I agree that for any new open-source software, I will create a `CONTRIBUTING.md` file that reflects the high standards of Zcash development, using the [`librustzcash` style guides](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#styleguides) as a primary reference.
- [x] I understand when contributing to existing Zcash code, I am required to adhere to the project specific contribution guidelines, paying close attention to any [merge](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#merge-workflow), [branch](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#branch-history), [pull request](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#pull-request-review), and [commit](https://github.com/zcash/librustzcash/blob/main/CONTRIBUTING.md#commit-messages) guidelines as exemplified in the `librustzcash` repository.
- [x] I agree to post request details on the [Community Forum](https://forum.zcashcommunity.com/c/grants/33)
- [x] I understand it is my responsibility to post a link to this issue on the [Zcash Community Forums](https://forum.zcashcommunity.com/c/grants/33) after this application has been submitted so the community can give input. I understand this is required in order for ZCG to discuss and vote on this grant application.
### Application Owners (@Octocat, @Octocat1)
gnosisguild, 0xkeygen
### Organization Name
Gnosis Guild
### How did you learn about Zcash Community Grants
I've been a friend to the zcash community for several years. I first applied for the webzjs grant several years ago whilst in a previous role.
### Requested Grant Amount (USD)
130,000
### Category
Infrastructure
### Project Lead
```project-lead.yaml
Name: Auryn Macmillan
Role: Gnosis Guild Founder, The Interfold Product Lead
Background: Gnosis Guild (Founder), Clr.fund (Founder), DAOhub (Co-founder), Gnosis (Product Manager, DAO Lead, Solidity Developer)
```
### Additional Team Members
```team-members.yaml
The Interfold team is comprised of;
- Name: Bryant Soorkia
Role: Partnerships Manager
Background: ChainSafe Systems, zkVerify, Sygma Labs, Horizen Labs
- Name: Alessandro Cara
Role: Applied Cryptographer
Background: Ethereum Foundation (PSE), Halborn
- Name: Rudi Yardley
Role: Full Stack Engineer & Applied Cryptographer
Background: Blockhackers, Hydraswap, Thorchain, ETHGlobal Finalist
- Name: Giacomo Corrias
Role: Applied Cryptographer
Background: Web3privacy now, Ethereum Foundation (PSE)
- Name: Hamza Khalid
Role: Applied Cryptographer
Background: Permission.io, Antematter, Codora
- Name: Younes Talibi Alaoui
Role: Research & Applied Cryptographer
Background: PhD Cryptography Research
- Name: Zara Javar
Role: Research & Applied Cryptographer
Background: Nethermind, Professor at New York Institute of Technology, Navaco
- Name: Olga Kohut
Role: Growth and Marketing Manager
Background: Soundcloud, Fluence, Cloudless Labs
- Name: Tiago Santos
Role: UI/UX Design Lead
Background: DesignPractice, LiveSurface
- Name: Alex Espinosa
Role: Ops Lead
Background: Gnosis
- Name: Marvin Lin
Role: CMO
Background: Tiny Mix Tapes
- Name: Omar Desogus
Role: Full Stack Engineer
Background: Ethereum Foundation (PSE)
```
### Project Summary
The Interfold is a distributed network that enables confidential coordination between independent parties.
Confidential coordination is not privacy as isolation. It is privacy in relation. Many parties. Many operators. No vantage point from which the entire system can be seen or controlled. Multiplayer privacy.
Confidential coordination means independent parties can produce shared computational outcomes together without custody, exposure, or trusted hardware. This enables everything from secret ballots and sealed-bid auctions to cross-institutional analytics.
This Project is called **Zecret Ballots.**
### Project Description
Secret Ballots is a coercion-resistant secret voting application built on top of The Interfold that enables DAO token holders and community members to participate in governance decisions through verifiable secret ballots. We propose the implementation of Zecret Ballots, an application with the same features, but specifically for Zcash token holders.
Zecret Ballots will extend The Interfold’s CRISP voting framework to Zcash governance, enabling coercion and bribery-resistant secret ballots for $ZEC holders. Votes are encrypted end-to-end, are tallied fully-homomorphically, and the aggregate total decrypted via threshold cryptography. No single party can decrypt the results themselves, preventing malicious actors. Our goal for this project is to deploy an end-to-end working application to be used by the ZecHub team for governance related decisions.
The Gnosis Guild team recently presented a live interactive demonstration of the application during a Zcash Community call on the 18th of March, 2026. The results can be found here: https://dao.theinterfold.com/plugins/crisp-token-voting/#/proposals/5279253622616716040438085367773834220098331227476449461096751838734625857724
### Proposed Problem
Effective governance requires participation, but participation often over exposes participants. This can lead to some participants feeling disincentivised to participate at all.
Existing solutions to this problem face trade-offs. They sacrifice decentralisation for privacy, decentralisation for verifiability, or verifiability for privacy. Once a blockchain trilemma, now also a privacy trilemma. These solutions often introduce trusted coordinators, or rely on specialized hardware such as TEEs, that make them vulnerable to side-channel attacks. All of which can ultimately compromise the effectiveness and legitimacy of outcomes.
### Proposed Solution
Our proposed solution, **Zecret Ballots**, eliminates these trade-offs and consists of the following properties:
- vote masking enabled receipt-freeness
- verifiability
- distributed trust via a network of ciphernodes
- cryptographic security guarantees (threshold enc/decryption, zero-knowledge proofs & fully homomorphic computation)
- crypto-economic security guarantees (ciphernode bonding & slashing)
- zcash chain balance snapshots w/ merkle tree proofs posted on Ethereum
**Zecret Ballots** will include the following features:
- gasless transactions on Ethereum mainnet to ensure a clean UX for zcash end-users
- support for zcash transparent wallets (ECDSA)
- support for zcash shielded wallets (EdDSA)
- multiple choice ballots
- abstain option/s
- customisable quorum thresholds
- constant-credits option
- custom credits option
### Solution Format
Open-source code base delivered the form of a github repository
- solidity smart contracts
- noir/rust zk circuits
- relayer service
- snapshot and merkle reconstruction tooling
- typescript/react frontend ui/ux
Documentation:
- developer documentation
- explainer for end-users
Maintenance:
- six months of maintenance support including bug fixes, protocol updates, and security patches, as required to sustain acceptable uptime
### Dependencies
- The Interfold Protocol
- CRISP SDK
### Technical Approach
This grant proposal builds upon three layers: The Interfold protocol, the CRISP voting framework, and Zcash-specific extensions. ​
Layer 1: The Interfold Protocol
- The Interfold provides Encrypted Execution Environments (E3) for computation over encrypted data using:
- FHE (BFV scheme via fhe.rs): Operations on encrypted data
- ZKPs (Noir circuits): Verifies computation correctness
- DKG & Threshold decryption: Ciphernode Committee FHE pubkey generation, and FHE result decryption
- For further information on The Interfold’s implementation, please refer to this link: https://docs.theinterfold.com/architecture-overview
- The flow of an encrypted execution environment (E3) is as follows:
- Request submitted to The Interfold contracts with specified computation parameters
- Verifiable sortition process selects Ciphernode Committee, performs DKG, publishes shared public key
- Data providers encrypt inputs, generate ZK proofs, submit to smart contract (validated and stored in a Merkle tree)
- Compute Provider (currently Risc Zero ZKVM) executes computation over the encrypted inputs and produces an encrypted output + a proof of correct computation
- Ciphernode Committee performs threshold decryption/s, and then publishes the plaintext result/s
Layer 2: The CRISP Voting Framework
- CRISP (Coercion Resistant Impartial Selection Protocol) is an E3 voting framework that provides coercion-resistant secret ballots on top of The Interfold. It is comprised of the following:
- An FHE Program that homomorphically tallies the encrypted votes
- Noir circuits for proving that votes are valid
- CRISP Smart Contracts that validate proofs, store encrypted votes
- A TypeScript SDK for CRISP programs
- A relayer service that monitors events, triggers off-chain zk-computation, relays votes, and publishes results
​
Layer 3: Crisp <> Zcash Extension
- Dual Signature Support:
- Transparent wallets that use ECDSA
- Shielded wallets that use EdDSA
- Implementation of EdDSA signature verification in Noir circuit for voter authentication
- Cross-Chain Snapshot:
- Snapshot eligible wallet balances on Zcash chain at specific block height
- Generate merkle tree from snapshot, post merkle root to Sepolia/Ethereum contracts
- CRISP validates voter eligibility against posted root
- Governance Features:
- Bribery resistant multiple choice voting
- Abstain option
- Balance-weighted (token-based) or constant (1 person = 1 vote) option
- Definable quorum setting
### Upstream Merge Opportunities
NA
### Hardware/Software Costs (USD)
NA
### Hardware/Software Justification
NA
### Service Costs (USD)
The majority of the costs associated with this proposal are labor based, and are detailed below.
### Service Costs Justification
Please see attached budget breakdown
### Compensation Costs (USD)
Please see attached budget breakdown
### Compensation Costs Justification
NA
### Total Budget (USD)
130000
### Previous Funding
Yes
### Previous Funding Details
Pre-seed round: $1m - April 2024
Seed round: $1.25m March 2025
### Other Funding Sources
No
### Other Funding Sources Details
NA
### Implementation Risks
NA
### Potential Side Effects
NA
### Success Metrics
Included in milestones
### Startup Funding (USD)
50000
### Startup Funding Justification
Gnosis Guild has spent approximately two years to building The Interfold in order to reach the point of being able to deliver a live demo of CRISP. As such, Gnosis Guild is applying for part retro-active and part pro-active grant funding to continue working on Zecret Ballots for ZecHub.
As a small, specialized team focused on low-level privacy preserving infrastructure, this funding will enable us to allocate the necessary human capital toward a sustained focus, and successful delivery of Zecret Ballots.
Our overarching objective is to build a closer relationship with the Zcash community, a deeply important ecosystem, and we view this initial engagement as a stepping stone in that direction.
As such, 'Startup Funding' is the same (and not additional) as milestone 0 detailed below.
### Milestone Details
```milestones.yaml
Retroactive Milestones:
Milestone 0: - All Prior Major Milestones [This is the start up funding detailed above]
Amount (USD): $50,000
Expected Completion Date: Completed
Weeks: 104 weeks @ approximately 4-7 FTE
[Please note: This milestone is completed and constitutes as start up funding]
Ciphernode Client
Rust implementation of ciphernode DKG, threshold decryption, key share management, libp2p networking, encrypted local storage, operator CLI tooling, Docker / DappNode packaging, and multi-node supervision
Noir ZK Circuits
Complete circuit suites for dkg, share encryption & decryption, threshold PVSS (publically verifiable secret sharing), recursive proof aggregation and automated Solidity verifier export
Smart Contracts
TheInterfold coordinator contract managing the full E3 lifecycle state
CiphernodeRegistry for operator registration and on-chain committee sortition
Modular E3Program and DecryptionVerifier plugin interfaces for custom computation logic
Protocol Crypto-economics
Non-fungible Bonding Registry and stablecoin-backed ticket system; deterministic sortition-based committee selection; Slashing Manager with two-lane penalties and appeal windows; E3 Refund Manager for proportional failure compensation and reward distribution to committee members mechanism
FHE Integration
BFV fully homomorphic encryption via fhe.rs, supporting development and production parameter sets; encrypted computation pipeline where data providers encrypt inputs under committee keys and compute providers execute homomorphic operations without decryption
CRISP Reference Application
Full-stack coercion-resistant private voting primitive: Noir circuits for vote validity and eligibility proofs (including vote masking for anti-coercion), RISC Zero zkVM program for homomorphic vote tallying, on-chain round management, React frontend, Rust coordination server, and dedicated TypeScript SDK.
TypeScript SDK & React Hooks
@enclave-e3/sdk for E3 lifecycle management, on-chain event subscriptions, FHE encryption/proof generation via WASM, and @enclave-e3/react hook layer with wagmi integration
Developer Tooling & Infrastructure
Project template generator (enclave init), comprehensive documentation site, cross-platform CI/CD with automated crates.io/npm publishing, integration test suite, and one-command installer (enclaveup)
Proactive Milestones - Zecret Ballots
Milestone: 1 - Core Implementation
Amount (USD): $39,234
Expected Completion Date: 6 weeks from commencement
User Stories:
As a transparent ZEC wallet holder, I want to connect my wallet and vote on proposals privately and without risk of coercion or bribery (vote buying) when participating in Zcash governance.
As a shielded ZEC wallet holder, I want to connect my wallet and vote on proposals without risk of coercion or bribery (vote buying) when participating in Zcash governance.
As a proposal creator, I want to include both transparent, and shielded addresses that meet the threshold balance requirement.
Deliverables:
EdDSA signature verification circuit for shielded wallets integrated into The Interfold’s FHE computation flow
Zcash balance snapshot tooling for both transparent and shielded addresses
Smart contracts to accept Zcash merkle roots on Sepolia testnet, and subsequently Ethereum mainnet
Wallet connector supporting both transparent (ECDSA) and shielded (EdDSA) Zcash wallets
Backend relayer service for gasless transactions voting enabling no ethereum balance requirement for zec holders
Success Criteria:
Transparent wallet address can authenticate and submit encrypted vote
Shielded wallet addresses can authenticate and submit encrypted vote
Snapshot successfully captures balances from Zcash mainnet block and generates valid merkle root
Smart contract verifies voter eligibility against posted merkle root
Vote is encrypted, submitted to The Interfold protocol, and decrypted only after poll closes
Milestone: 2 - Frontend & Governance Features
Amount (USD): $13,078
Expected Completion Date: 2 weeks from commencement
User Stories:
As a voter, I want to choose from multiple voting options or abstain, so that I can express my preference, without the risk of coercion or bribery (vote buying)
As a proposal creator, I want proposals accepted only if the quorum is met
As a proposal creator, I want to be able to choose between token-weighted voting and constant voting (ie 1 eligible wallet = 1 vote)
As a voter, I want to be able to verify that my vote was actually encrypted and tallied using FHE
As a ZEC community member, I want a clean Zcash branded UI/UX, so that the experience feels native to our ecosystem
As a voter, I want to be able to spread my vote across different options if token-weighted voting is enabled
Deliverables:
Multiple choice voting UI (extending binary yes/no to N options)
Abstain option in voting interface
A global quorum percentage setting
Links to all verifiable actions (vote submission status, E3 request ID, tx confirmation/s)
A Zcash-branded frontend (if required)
Token-weighted voting and constant voting options baked in
Multiple token-weighted voting option
Milestone: 3 - Testing, Documentation, & Deployment
Amount (USD): $13,078
Expected Completion Date: 2 weeks from commencement
User Stories:
As an administrator, I want comprehensive setup documentation, so that I can deploy and operate the system independently
As a developer, I want to understand the architecture, so that I can contribute to the codebase if I choose
As a voter, I want confidence the system is secure and tested, so that I trust the voting results
Deliverables:
End-to-end working application in testnet environment inclusive of both transparent and shielded wallet support, multiple choice ballots, and quorum
Deployment guide for Zechub
User documentation (how to connect wallet, vote, view results)
Developer documentation (snapshot process, circuit specifications, smart contract interfaces)
A to-be-defined period of testing to ensure confidence in the application prior to a full deployment
Full delivery of an end-to-end working application in both testnet and mainnet environment/s
Success Criteria:
10-20 test ballots (including edge cases such as tied votes, low turnout below quorum, etc)
Successful deployment
All critical user flows documented with screenshots as required
Milestone: 4 - Maintenance
Amount (USD): $17,001
Expected Completion Date: 26 weeks from commencement
User Stories:
As a user, developer or governance committee, I want to have an on-going working product so that it can be used for governance related purposes
Deliverables:
6 months post-launch maintenance support (bug fixes, protocol updates, security patches)
All compatibility changes to The Interfold / CRISP as required to ensure on-going functionality of Zecret Ballots
Success Criteria:
Critical issues resolved promptly without delay
Zecret Ballots remains operational and accessible for governance activities as required
Full compatibility maintained with regular updates throughout the 6-month period
Complete budget breakdown can be found in the next section 'Supporting Documents'
```
### Supporting Documents
```files.yaml
Please see the complete budget break down with the link below:
https://docs.google.com/spreadsheets/d/19Ch5sglLBZv4WJVeaSr2_QZJGLT7WVYSRdq4kU2tPUs/edit?usp=sharing
```