### 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)
kruzzz-rhea
### Organization Name
Noir Wallet
### How did you learn about Zcash Community Grants
Through Zcash community
### Requested Grant Amount (USD)
50000
### Category
Infrastructure
### Project Lead
```project-lead.yaml
Name:Zero
Role:CEO (https://www.linkedin.com/in/hongli-chen-125514361/)
Background:8+ years in crypto. Former core developer at BIHU. Contributed to:
a. SocialFi (BIHU)
b. Smart Wallet (MYKEY)
c. DEX (DeGate)
Extensive experience in product architecture, DeFi systems, and protocol design.
Responsibilities:
- Define and drive the overall vision, strategy, and growth of Rhea Finance
- Lead business development, partnerships, and ecosystem expansion
- Oversee product direction and go-to-market strategy
- Manage relationships with investors, stakeholders, and key partners
- Ensure alignment across team, product, and community initiatives
```
### Additional Team Members
```team-members.yaml
- Name: Aescobar
Role: Operational Lead (https://www.linkedin.com/in/aescobar-mike-85208b285/)
Background: Full-time NEAR builder.
- Managed BTC bridge with $300M volume
- Achieved $70M TVL within 6 months
- Former NEAR Governance Council member
Responsibilities:
- Oversee day-to-day operations and execution across all teams
- Coordinate between product, marketing, BD, and community
- Manage campaigns, timelines, and deliverables to ensure smooth execution
- Track KPIs, performance metrics, and growth initiatives
10 other developers for frontend and backend.
```
### Project Summary
Noir is a privacy-first browser wallet for Zcash that lets users store and send shielded ZEC while connecting directly to DeFi, cross-chain swaps and Web3 applications.
### Project Description
Noir Wallet is a privacy-first browser wallet built for Zcash, designed to connect shielded ZEC with the wider Web3 and DeFi ecosystem. Its main goal is to make Zcash easier to use not only for private payments, but also for DeFi and Web3 applications directly from the browser. A key part of the Noir ecosystem is Zcash lending, allowing users to access lending and borrowing opportunities.
### Proposed Problem
The Zcash ecosystem currently lacks a standardized way for wallets to connect seamlessly with third-party Web3 applications. This limits wallet discoverability, creates user friction, and makes it harder for developers to integrate Zcash.
WalletConnect integration would provide a familiar and secure connection standard, making Zcash wallets more accessible across the broader Web3 ecosystem.
### Proposed Solution
We aim to establish comprehensive WalletConnect integration capabilities for the Zcash ecosystem, enabling Zcash wallets to be discovered by WalletConnect applications and securely connected to third-party applications through WalletConnect QR codes or connection links.
### Solution Format
1. Zcash Wallet Discovery
Integrate Zcash and Zcash-compatible wallets into the WalletConnect wallet directory system, enabling applications to:
- Retrieve a list of wallets that support Zcash
- Display wallet names, logos, supported platforms, and installation links
- Filter compatible wallets based on the Zcash mainnet or testnet
- Guide users to open or install the appropriate wallet
2. WalletConnect QR Code Connection
Integrate WalletConnect into Zcash wallets, enabling users to:
- Scan WalletConnect QR codes
- Open WalletConnect connection links
- View information about the application initiating the connection
- Review the accounts and permissions requested by the application
- Approve or reject connection requests
- Receive Zcash payment or transaction requests
- Confirm, sign, and broadcast transactions within the wallet
The will place particular emphasis on Zcash’s privacy features, including Unified Addresses, shielded transactions, address disclosure controls, transaction information display, and local private-key signing.
### Dependencies
The project depends on the following:
* WalletConnect Wallet SDK / WalletKit
* WalletConnect Relay, WalletGuide, and Explorer API
* Zcash wallet libraries and infrastructure, including Unified Addresses, ZIP-321, transaction construction, and shielded transaction support
* Zcash mainnet and testnet access
* Test wallets and a reference dApp
We may also coordinate with the WalletConnect team for chain onboarding and WalletGuide support, and with Zcash wallet developers for integration testing.
The project will provide a reference implementation, so development will not depend on any single external wallet integration.
### Technical Approach
The project will build a lightweight WalletConnect integration layer for Zcash without modifying Zcash consensus rules.
The implementation will include:
* Define Zcash chain identifiers, accounts, methods, and permissions for WalletConnect
* Integrate Zcash wallet discovery through WalletGuide / Explorer
* Integrate WalletConnect QR code scanning and URI pairing
* Support session approval, rejection, recovery, and disconnection
* Support Zcash payment and transaction requests
* Display transaction details before user approval
* Build and sign transactions locally inside the wallet
* Support Unified Addresses and shielded transactions
* Return transaction results to the connected application
Private keys and viewing keys will remain inside the wallet and will never be shared through WalletConnect.
### Upstream Merge Opportunities
The project does not plan to fork or modify Zcash consensus software.
We expect to reuse existing Zcash libraries, especially `librustzcash`, for address handling, ZIP-321, wallet logic, and transaction construction.
If we identify improvements that are useful beyond WalletConnect, such as reusable transaction helpers or wallet APIs, we may submit them upstream.
WalletConnect-specific code will remain in a separate integration layer.
Any upstream merge will be coordinated with the relevant Zcash maintainers and will not be a dependency for completing the grant
### Hardware/Software Costs (USD)
0
### Hardware/Software Justification
No additional hardware purchases required. Development will use existing equipment and open-source tooling.
### Service Costs (USD)
8000
### Service Costs Justification
RPC/infrastructure hosting, testing infrastructure, deployment services, monitoring, and external security/technical review where required.
### Compensation Costs (USD)
42000
### Compensation Costs Justification
Developer compensation covering architecture, WalletConnect integration, wallet development, transaction support, reference implementation, testing, documentation, and project management.
### Total Budget (USD)
50000
### Previous Funding
Yes
### Previous Funding Details
Noir wallet completed our previous Zcash Wallet proposal and all planned milestones. The project delivered the core wallet infrastructure, shielded transaction support, testing, security work, documentation, and mainnet deployment.
https://github.com/ZcashCommunityGrants/zcashcommunitygrants/issues/239
### Other Funding Sources
No
### Other Funding Sources Details
We do not have any plans to get any other funding from other sources.
### Implementation Risks
**WalletConnect onboarding delays**
Chain registration or wallet approval may depend on external WalletConnect review timelines.
**Zcash-specific protocol design**
Zcash has a different account and privacy model from EVM chains, so some WalletConnect methods may require custom design.
**Privacy risks**
Connecting wallets to applications may expose addresses or other metadata if permissions are not carefully designed.
**Wallet compatibility**
Different Zcash wallets may use different architectures and may require different integration work.
**Shielded transaction complexity**
Shielded transaction generation may have higher performance and implementation requirements.
### Potential Side Effects
Potential side effects include:
* Applications may learn which wallet a user is using
* Address reuse may create privacy correlations
* Malicious applications may attempt to request misleading transactions
* WalletConnect introduces an additional external service dependency
To reduce these risks, the wallet will clearly display connection permissions and transaction details before approval.
WalletConnect availability will not affect normal Zcash wallet functionality.
### Success Metrics
The project will be considered successful when:
* Zcash WalletConnect chain and method specifications are completed
* Applications can discover supported Zcash wallets
* Users can connect by scanning a WalletConnect QR code
* Wallets can approve, restore, and disconnect sessions
* Applications can send Zcash payment requests
* Wallets can review, approve, sign, and broadcast Zcash transactions
* Shielded transactions work in the supported test environment
* Private keys remain inside the wallet
* At least one open-source reference wallet integration and one reference dApp are published
* At least two Zcash wallets begin the WalletGuide onboarding or submission process
### Startup Funding (USD)
5000
### Startup Funding Justification
The initial funding will support the technical planning and foundation of the Zcash WalletConnect integration, including product requirements, system architecture, WalletConnect method definitions, permission models, and wallet/application interaction flows.
### Milestone Details
```milestones.yaml
Budget: USD 5,500
Estimated Completion Date: August 31, 2026
User Stories
- As a Zcash wallet developer, I want a clear WalletConnect technical architecture so that I can complete the integration according to a unified standard.
- As a Zcash application developer, I want standardized chain identifiers, account formats, and request methods so that applications can communicate with Zcash wallets.
- As a Zcash user, I want the WalletConnect connection flow to comply with Zcash’s privacy and security requirements.
Deliverables
- Zcash WalletConnect Product Requirements Document
- Zcash WalletConnect system architecture design
- Wallet-side and application-side interaction flow design
- Definitions for WalletConnect methods, events, and permissions
- Connection, signing, disconnection, and exception-handling flows
Acceptance Criteria
- A complete Product Requirements Document is delivered
- The WalletConnect technical architecture document is completed
- The WalletConnect connection and transaction flow designs are completed
2. Milestone 2
Budget: USD 7,000
Estimated Completion Date: September 15, 2026
User Stories
- As a Zcash user, I want to see a list of wallets that support Zcash within an application so that I can select a compatible wallet.
- As an application developer, I want to retrieve Zcash wallet information through a standardized interface so that I can display a wallet selection page.
- As a Zcash wallet developer, I want my wallet to be discoverable by applications within the WalletConnect ecosystem.
Deliverables
- WalletConnect registration materials for Zcash chain information
- Zcash WalletGuide and Explorer metadata
- Zcash wallet-list query functionality
- WalletConnect Explorer API integration
- Wallet filtering based on the Zcash mainnet and testnet
- Wallet metadata display functionality, including:
- Wallet name
- Wallet description
- Wallet logo
- Official website
- Supported platforms
- Installation links
- Deep Link
- Universal Link
- Web wallet address
- Supported Zcash networks
- Zcash wallet integration and submission guidelines
- Initial collection and organization of Zcash wallet information
Acceptance Criteria
- Zcash chain registration and submission materials are completed
- Applications can retrieve a list of wallets that support Zcash
- Applications can filter wallets based on the Zcash network
- Wallet names, logos, platforms, and links are displayed correctly
- Wallet-opening and installation links function correctly
- At least one Zcash wallet is prepared for WalletGuide submission
3. Milestone 3
Budget: USD 9,000
Estimated Completion Date: September 30, 2026
User Stories
- As a Zcash user, I want to scan a WalletConnect QR code so that I can quickly connect to an application.
- As a mobile wallet user, I want the wallet to open automatically when I click a WalletConnect connection link.
- As a user, I want to review application information and requested permissions before connecting.
Deliverables
- WalletConnect SDK integration on the Zcash wallet side
- WalletConnect Project ID and Relay configuration
- QR code scanning functionality
- WalletConnect wc: URI parsing and validation
- WalletConnect pairing flow
- Deep Link and Universal Link support
- WalletConnect Session Proposal handling
- Connection-request confirmation page
- Application information display, including:
- Application name
- Application domain
- Application logo
- Requested Zcash accounts
- Requested methods
- Requested permissions
- Connection approval functionality
- Connection rejection functionality
- Active Session storage
- Session recovery after wallet restart
- Session disconnection and expiration handling
Acceptance Criteria
- The wallet can scan valid WalletConnect QR codes
- The wallet can recognize valid WalletConnect URIs
- Clicking a connection link opens the corresponding wallet
- The wallet displays the name and domain of the connecting application
- Users can approve or reject connection requests
- Approved Sessions can be restored after the wallet restarts
- Invalid or expired URIs are securely rejected
- Wallet private keys and viewing keys are never transmitted through WalletConnect
4. Milestone 4
Budget: USD 5,000
Estimated Completion Date: October 15, 2026
User Stories
- As a Zcash user, I want applications to send ZEC payment requests to my wallet so that I can review and confirm transactions within the wallet.
- As a privacy-conscious user, I want to understand what information a transaction may disclose before I authorize it.
- As an application developer, I want to request Zcash transactions through standardized methods.
Deliverables
- Zcash account-selection functionality
- Zcash address-selection functionality
- Unified Address support
- Zcash payment-request handling
- Support for the following transaction parameters:
- Recipient address
- Payment amount
- Network fee
- Memo
- Zcash network
- Request expiration time
- ZIP-321 payment-request mapping where applicable
- Transaction review and confirmation page
- Local Zcash transaction construction
- Shielded transaction support
- Local transaction signing within the wallet
- Signed transaction broadcasting
- WalletConnect Session Request handling
- Successful transaction result responses
- Rejected transaction result responses
- Failed transaction result responses
- Request timeout and expiration handling
- Transparent Address risk warnings
- Warnings for transactions that may expose private information
Acceptance Criteria
- Applications can initiate Zcash payment requests through WalletConnect
- The wallet correctly parses payment requests
- The wallet displays the recipient address, amount, fee, Memo, and network
- Users can approve or reject transactions
- All transactions are signed locally within the wallet
- Private keys never leave the wallet
- Zcash transactions can be successfully broadcast in the test environment
- Shielded ZEC transactions can be completed in the test environment
-mThe wallet can return transaction results or error information to the application
5. Milestone 5
Budget: USD 8,000
Estimated Completion Date: October 30, 2026
User Stories
- As a Zcash developer, I want a reference application so that I can test WalletConnect wallet integrations.
- As a wallet developer, I want reusable code and examples so that I can quickly add WalletConnect support.
- As an application developer, I want a complete end-to-end example so that I can understand how Zcash WalletConnect integration should be implemented.
Deliverables
- Open-source Zcash WalletConnect reference implementation
- Zcash reference wallet integration
- WalletConnect reference web application
- Zcash wallet-selection component
- Wallet list with Zcash wallet filtering support
- WalletConnect QR code generation
- WalletConnect URI copying and sharing functionality
- WalletConnect Session management page
- Zcash payment-request examples
- Transaction status display
- Zcash namespace and method definitions
- TypeScript type definitions
- WalletConnect integration utilities
- Mainnet and testnet configuration examples
- Automated test cases
- Test data and mock data
Acceptance Criteria
- The reference application can display wallets that support Zcash
- The reference application can generate WalletConnect QR codes
- The Zcash reference wallet can scan QR codes and connect to applications
- Applications can initiate Zcash payment requests
- The wallet can approve, sign, and broadcast transactions
- Applications can receive transaction results
- The wallet and application can properly disconnect the Session
- The reference code is published in a public code repository
6. Milestone 6
Budget: USD 5,500
Estimated Completion Date: November 15, 2027
User Stories
- As a user, I want WalletConnect connections to be stable and reliable so that they do not disconnect unexpectedly during transactions.
- As a wallet developer, I want compatibility testing so that I can verify the implementation before the official release.
- As a Zcash user, I want the wallet to provide clear security warnings so that malicious applications cannot mislead me into signing transactions.
Deliverables
- WalletConnect end-to-end testing
- Zcash mainnet and testnet compatibility testing
- QR code scanning tests
- Deep Link and Universal Link tests
- Mobile wallet testing
- Browser-extension wallet testing
- Desktop wallet testing
- Web wallet testing
- Session recovery and reconnection testing
- Session expiration and disconnection testing
- User transaction-rejection testing
- User transaction-cancellation testing
- Network-failure testing
- Invalid-request testing
- Unsupported-method testing
- Session permission security review
- Transaction authorization security review
- Address and account disclosure privacy review
- Performance optimization
- Bug fixes
- WalletGuide review and submission support
- Acceptance Criteria
- Critical connection issues are resolved
- Critical transaction-signing issues are resolved
- Sessions can be properly restored after a temporary network disconnection
- Expired Sessions are handled securely
- Unsupported methods return standardized errors
- All transaction requests require explicit user confirmation
- The wallet never signs transactions automatically in the background
- Testing is successfully completed on major devices and platforms
- At least one Zcash wallet is submitted for formal WalletGuide review
7. Milestone 7
Budget: USD 5,000
Estimated Completion Date: November 30, 2027
User Stories
- As a Zcash wallet developer, I want clear integration documentation so that I can add WalletConnect support to my wallet.
- As an application developer, I want API and example documentation so that I can support Zcash wallet connections.
- As a Zcash user, I want more wallets and applications to support WalletConnect.
Deliverables
- Zcash WalletConnect developer documentation
- Wallet-side integration guide
- Application-side integration guide
- Zcash namespace specification
- Zcash RPC method documentation
- Session and permission documentation
- QR code integration guide
- Deep Link and Universal Link integration guide
- WalletGuide wallet-submission guide
- Testing and debugging guide
- Common error troubleshooting documentation
- Security best-practices documentation
- Privacy best-practices documentation
- User guide
- Community introduction materials
- Outreach to Zcash wallet developers
- Outreach to Zcash application developers
- Community feedback collection
- Future maintenance and feature roadmap
Acceptance Criteria
- Developer documentation is publicly released
- New wallet developers can complete a basic integration by following the documentation
- New application developers can connect to the reference Zcash wallet
- The WalletConnect wallet-list functionality is publicly available
- A WalletConnect QR code connection demonstration is publicly available
- At least two Zcash wallets have completed or entered the WalletGuide submission process
- A community feedback report is completed
- The next-stage feature roadmap is published
```
### Supporting Documents
```files.yaml
We plan to provide:
* Product requirements
* Technical architecture
* Zcash WalletConnect namespace specification
* UX and user flow designs
* Reference implementation repository
* Developer integration documentation
These documents will be published or linked as they become available during the project.
```