Grant Application: Zk-CosmWasm: A Programmable Selective Disclosure WebAssembly Smart Contract Virtual Machine

ZM!

My name is Austin, and I am stoked to have this opportunity to share the details regarding my grant application for a smart contract VM that will extend the application layer of the primitives coming from the ZCash ecosystem.

The Problem in One Sentence

Lack of choice for simple, programmable, selective disclosure smart contract virtual machines.

Our Proposed Solution In One Sentence

Providing CosmWasm, A WebAssembly smart contract language and VM, with native support of uploading circuit proving and verification keys for distribution and use by smart-contracts, to the ZCash community for application-specific L2’s.

Specification

To review our full specification, please refer to the grant issue opened here: Grant Application - Zk-Cosmwasm: A Programmable Selective Disclosure WebAssembly Smart Contract Virtual Machine Ā· Issue #182 Ā· ZcashCommunityGrants/zcashcommunitygrants Ā· GitHub

Focal Points

Team Building

Currently we have three confirmed team members ready to prioritize implementations. This includes myself, the project scope curator, a team member dedicated to implementation of examples and demos making use of this VM, and a team member who specializes in use of LLMs for code-reviews and audits. We have open positions for 2 more team members, and want to prioritize including new team members able and eager to contribute to iterating from the existing state of the application. This will give us the best chance of long term success with multiple independent parties with vested interest in collaboration. We expect to onboard team members during this initial stage of submission and sharing our grant proposal:

  • Front End Specialist: This team member position is expected to have a dedicated focus on front-end specific library tuning, for wallets,UI’s & auxiliary tooling interacting with the zk-wasmvm.

  • Zk-Circuit Implementation Advisor: This role serves to provide a source of wisdom for our team to in regards to applications and implementations of the zk-proof circuits. This will enhance our team by having a neutral, trustworthy source of feedback, so that our implementation will be able to be usable to the largest potential consumer base possible.

  • Cosmos-SDK integrator: The team member dedicated to this role will focus on implementing useful application (and consensus) level experiments and demos with the zk-wasmvm. This will expedient sources of inspiration and data points for how others could make use of this VM layer. (I (the author of this post) am qualified from experience to participate in this role, however this project scope will benefit with more brains involved!) UPDATE (1/13/26): We have onboarded a team member for this role.

Efficient Circuit Storage, De/Serialization

A large effort of this specification goes into defining how the Virtual Machine parses circuits verifying keys from its raw bytes during proof verification. We make use of existing storage optimization techniques available in the VM to pin circuits to cache, reducing redundant and overall on-chain gas cost for accessing circuits repeated use.

Benchmarking, Audits, and Testing Suites

This grant, if approved will set the expectation that a substantial amount of the energy dedicated to further iterating what exist will go to ensuring functionality and soundness of the implementation. This includes making sure it is as easy as possible for anyone to review, and more importantly verify that our claims on benchmarking and functionality are accurate.

This will include:

  • A formal specification testing suite (via * Quint)
  • Known exploit sanity tests (via * Wycheproof)
  • Code Coverage tests
  • Unit,Integration,E2E, and property tests
  • Deterministic Nix environment

Cost Analysis & Review

our requested grant is totaled at 500,000, which we are proposing to be distributed across a timespan of at minimum 6 months to maximum 12 months. We are requesting an initial startup funding of 50,000, and within 2 weeks we expect to accomplish our first milestone, which will provide:

  • A complete technical architecture documentation
  • Basic tests and demonstration of the functional application layer module for storage and access of circuit verification keys
  • Basic tests and demonstration of the functional FFI binary that powers plonkish circuit key deserialization and use for verifying proofs
  • Gas benchmarking and reports for verification operations
  • CONTRIBUTING.md guidelines

By reaching these goals set, we are requesting from our grant to have 50,000 distributed for reaching this milestone.

Our second milestone for funding will request 100,000 after we complete the following goals set:

  • Full SDK integration and documentation
  • Rust library for proof generation and contract interaction
  • Typescript + Wasm-bindgen library for proof generation
  • Circuit versioning and depreciation mechanism
  • Example application demonstrating end-to-end flow

Following our second milestone, we project a timeline of 2-6 months to accomplish our next set of goals, which are:

  • multi-circuit type integration (binius64, noir, groth16 verifier integration)
  • reference circuits/contract pairs for demonstrating application implementations
  • a complete, comprehensive product and API documentation
  • an internal audit/review post-mortem

Upon reaching this goal verifiably, we are requesting in this grant 200,000 to be released for compensation of our team.

Our final set of goals we are proposing will include the following:

  • 3rd party audit process post mortem & remediation of any issues discovered
  • Production deployment on existing CosmWasm chain
  • Deployment of a bug bounty program
  • Mainnet deployment & existing cosmwasm migration guide
  • Project retrospective and future roadmap documentation.

We will upon verification of reaching our final set of goals request in this grant to receive the remaining 100,000.

Request for Feedback

I am eager to see what you guys think about this implementation. Is this something you see being actually useful with respect to the current roadmap of ZCash? I am most excited about this implementation powering frameworks like private DAOs, interoperable e-cash vouchers, and private NFT-FI, however I’m certain theres even more useful implementations with this design that could ultimately directly benefit the Zcash ecosystem.

THANK YOU for your time reviewing our proposal and most imporantly the opportunity for support and feedback, I’m looking forward to providing as much clarity as needed ::slight_smile:

3 Likes

Hello Austin, glad you made it to the forum,

This is an excellent proposal that addresses a critical gap in the Zcash ecosystem. As the founder of Nozy Wallet (a privacy-first Orchard wallet), I’m excited about the potential this has for the entire Zcash community, and I’d like to share how Nozy Wallet can help bring this vision to life.

Why This Matters for Zcash

The Zcash ecosystem has been missing a key piece: programmable privacy. While we have excellent shielded transaction capabilities with Orchard, the lack of a smart contract VM with native ZK support has limited our ability to build:

  • Private DeFi applications on Zcash L2s

  • Selective disclosure protocols for compliance without surveillance

  • Privacy-preserving dApps that leverage Zcash’s strong privacy guarantees

  • Cross-chain privacy bridges connecting Zcash to other privacy-focused chains

Zk-Cosmwasm fills this gap perfectly by providing a WebAssembly-based smart contract platform with native support for zero-knowledge circuit proving and verification. This is exactly what Zcash needs to compete with other privacy-focused ecosystems while maintaining our cryptographic privacy advantages.

Nozy Wallet’s Role in This Vision

Nozy Wallet is positioned to be the first Zcash wallet with native Zk-Cosmwasm integration, which would enable several critical use cases:

1. Secret Network Integration

One of our key missions is bringing Secret Network and other privacy tokens to the Zcash ecosystem. Zk-Cosmwasm makes this possible:

  • Privacy-Preserving Token Bridges: Users can bridge SNIP-20 tokens (Secret’s privacy tokens) to Zcash L2s while maintaining privacy throughout the process

  • Cross-Chain Privacy: Enable private transfers between Secret Network and Zcash L2s using selective disclosure proofs

  • Unified Privacy Wallet: Nozy could become a unified wallet for both Zcash and Secret Network, with seamless cross-chain privacy

Example Use Case:


User wants to use Secret Network's private stablecoins on a Zcash L2:

1. Bridge sUSDC from Secret Network to Zcash L2 (using Zk-Cosmwasm)

2. Use sUSDC in private DeFi on Zcash L2

3. All transactions remain private via zero-knowledge proofs

4. Nozy Wallet provides seamless UX for both chains

2. Selective Disclosure for Compliance

Zk-Cosmwasm enables Nozy to offer compliance without surveillance:

  • KYC/AML Proofs: Users can prove they’ve completed KYC without revealing identity

  • Regulatory Compliance: Prove transaction compliance without exposing transaction history

  • Exchange Integration: Enable exchanges to verify compliance while users maintain privacy

This is crucial for Zcash adoption, as it addresses regulatory concerns while preserving user privacy.

3. Private DeFi on Zcash L2s

With Zk-Cosmwasm, Nozy can enable:

  • Private Lending: Borrow/lend ZEC with privacy-preserving collateral proofs

  • Private DEX: Trade tokens without revealing amounts or identities

  • Private Yield Farming: Earn yield while maintaining transaction privacy

  • Private Stablecoins: Use privacy-preserving stablecoins on Zcash L2s

This would make Zcash competitive with other DeFi ecosystems while maintaining our privacy advantage.

4. Developer Ecosystem Growth

By integrating Zk-Cosmwasm into Nozy, we create a complete developer toolkit:

  • Wallet Infrastructure: Nozy provides the wallet layer

  • Smart Contract Platform: Zk-Cosmwasm provides the execution layer

  • Privacy Circuits: Developers can upload custom ZK circuits

  • End-to-End Privacy: From wallet to smart contract, everything is private

This combination would attract developers building privacy-preserving applications, growing the Zcash ecosystem significantly.

Technical Integration Plan

We’re already planning integration work that aligns perfectly with your milestones:

Milestone 1 (Your First 2 Weeks):

  • We can begin prototyping CosmWasm client integration in Nozy

  • Test with your initial architecture documentation

  • Provide feedback from wallet integration perspective

Milestone 2 (Your 100k Milestone):

  • Integrate Rust library for proof generation

  • Add TypeScript/Wasm-bindgen support for desktop client

  • Create example applications demonstrating end-to-end flow

Milestone 3 (Your 200k Milestone):

  • Full multi-circuit support (Binius64, Noir, Groth16)

  • Reference circuits/contract pairs

  • Production-ready integration

Milestone 4 (Your Final Milestone):

  • Mainnet deployment support

  • Migration guide for existing CosmWasm contracts

  • Complete Nozy Wallet integration

Community Impact

This proposal, combined with Nozy Wallet integration, would:

  1. Attract New Users: Privacy-preserving smart contracts would bring DeFi users to Zcash

  2. Retain Existing Users: Advanced privacy features would keep current users engaged

  3. Developer Growth: Smart contract platform would attract developers

  4. Ecosystem Maturity: Move Zcash from ā€œprivacy coinā€ to ā€œprivacy platformā€

Our Commitment

We’re committed to:

  • Active Integration: Begin prototyping as soon as your first milestone is complete

  • Community Support: Help promote and test Zk-Cosmwasm in the Zcash community

  • Documentation: Create comprehensive guides for Nozy + Zk-Cosmwasm integration

  • Developer Outreach: Help onboard developers building on Zk-Cosmwasm

We fully support this grant and are ready to integrate Zk-Cosmwasm into Nozy Wallet as soon as it’s available.

Let’s build the future of private cryptocurrency together!

2 Likes

Hey @Lowo88, thanks for sharing your perspective.

While reviewing this, I came across zk-cosmwasm repo, which already demonstrates ZK proof verification in CosmWasm at the contract level (e.g. Groth16). I’m trying to understand what you see as the main limitations of that approach, and why you think it’s insufficient compared to what this proposal aims to build.

Also, from your perspective, does the focus of this proposal feel more aligned with the broader Cosmos ecosystem than with concrete Zcash-specific needs? I’m curious how you see the Zcash side of the value being realized here.

Would appreciate your thoughts.

2 Likes

yo! Thank you for the public feedback here, it is amazing to see you already preparing for integration of this feature within your personal project.

Will use this response to provide some clarity on the vision and intention:

ZCASH CHAIN INTEGRATION

I do not see this VM being upstreaming into the ZCash L1 chain directly, as some private feedback ive received has made it clear that this is transparently not where the holders are trying to go, given ZSA, which have far more limited functionality is under massive contention right now.

This would much more fit suite into a format compatible with the zcash ecosystem similar to the TZE proposal for integration with Starknet, as a programmable L2 settlement system.

We would be able to unlock and explore integration even with the upcoming crosslink integration, which is the consensus layer derived from Tendermint (CometBFT). I think this best suites ZCash ecosystem because Cosmwasm has tested and stable integration with chains using CometBFT, such ass access light client information from chain state, IBC packet lifecycles, and things like staking data coming from the consensus layer, giving the Zcash community a headstart on the tooling available for permissionless building of application logic interfacing with crosslink, without rebuilding from scratch.

Secret Network scares me as they rely solely on TEE attestation for securing the privacy of the app-state, which seams like in a post-quantum world this data aggregated from full nodes can be retroactively broken (though this is pure paranoia and not based on any of my quantitative experience).

There are a handful of chains compatible with cosmwasm that would directly benefit a world where Zcash L2’s have native support with a zk-flavored cosmwasm VM, such as ThorChain, Fairblock, and others that are not on the top of my head (though I have not done my due diligence for these projects either).

1 Like

Hey Artkor!

Will jump the gun here and provide some feedback, @Lowo88 please don’t hesitate to build from or contrast any of these points:

From my perspective the Cosmos Ecosystem is the decentralized group of communities making use of one or more parts of the software stack, allowing flexibility in trust-minimizing frameworks. In this framing, with the upcoming integration of cross-link, Zcash is a part of the ā€˜Cosmos Ecosystem’ (the same way Berachain is but they pleaded they were not).

This implementation can reveal the underlying cryptographic primitives as being the properties of a true modular, interoperable and verifiable ecosystem, and is what motivated this proposal. With support from this grant proposal, it will allow this design to be a part of this stack, for the benefit of both ZCash and the internet of blockchains.

BENEFITS FROM VM LEVEL INTEGRATION (In Contrast To Contact Level Integration)

  • Flexibility: The most prevalent difference is malleability in how contracts are able to access verification keys. In the DoraVotes example, 1 contract has 1 verification key per account issuer, and must define the constraint system upon each use the verifying keys. Our design allows contracts to access verification keys from its api natively, no redundant storage bloat or admin actions needed, warm in the cache for efficiency. Simply define the zk-id of the circuit, and then pass in the generic encoded byte arrays of the proof & instances. This levels up the developer experience when there is canonical circuits with defined serialization formats for instances.

I have yet to explore the compiled binary sizes and gas cost for computing proofs with contract-native approach, this would be an amazing benchmark opportunity for the proposal.

2 Likes

Thanks @hard-nett well said I wasn’t aware it was a ZK-cosmwasm repo into now 3 years old is wild. This new concept it’s way better than the original ZK-cosmwasm repo flexibility and low gas cost is good. Zcash is a part of Cosmo ecosystem recent news make me think, but I’m land my plane here.

1 Like

Right! I remember first hearing about this during the devmos event hosted by Osmosis (I was able to attend), heres a video of the Dorahacks team member demo on anonymous MACI voting using these proofs: https://www.youtube.com/watch?v=RGXcLVNs6s8

2 Likes

Let me check this out hope other view as well.

Thank you for submitting your proposal. After careful consideration by the ZCG and a period for community comments on the forum, the committee has decided not to advance this proposal.

We genuinely appreciate the work and dedication you put into your application and hope you’ll continue to participate and contribute to the Zcash community.