Bounty xxB-2024-004: Privacy-Preserving Notifications Service Implementation
Overview
This bounty rewards developers for implementing a privacy-preserving notifications service similar to ntfy.sh, leveraging xx network’s ID collision-based privacy system. The service will allow users to send and receive notifications through topics while maintaining privacy through the xx network’s unique ephemeral ID system, as described in the xx network documentation.
Development will be done in collaboration with xx foundation engineers, building upon the existing notifications-bot implementation.
Prize Pool
Total Prize: 1,650,000 xx (~$82,500 USD)
Breakdown:
- Milestone 1 - Specifications Document: 150,000 xx
- Must be completed and approved before subsequent milestones
- Milestone 2 - Core Server Implementation: 400,000 xx
- Must be completed before remaining milestones
- Milestone 3 - Client Library & CLI: 300,000 xx
- Milestone 4 - Provider Integration: 300,000 xx
- Milestone 5 - Web Interface: 100,000 xx
- Milestone 6 - Mobile Apps Integration: 400,000 xx
Requirements
Eligibility
- Participants will need to complete KYC verification before award
- Participants on OFAC and otherwise sanctioned countries are not eligible
- Multiple contributors may collaborate on submissions
- Existing xx network contractors are eligible for this grant. They will not be permitted to participate as a trustee to disburse funds for this grant, however.
Technical Requirements
-
Milestone 1 - Specifications Document
- Detailed technical specification including:
- Architecture overview
- Privacy model and analysis
- API specifications
- Data flow diagrams
- Security considerations
- Integration approach with existing systems
- Must be reviewed and approved by xx foundation engineers
- Should address all privacy and security implications
- Include proposed modifications to or rewrite of existing notifications-bot
- Detailed technical specification including:
-
Milestone 2 - Client Library & CLI
- Go-based client library implementing the notification protocol
- Command-line interface for sending/receiving notifications
- Support for all notification features:
- Topic subscription/unsubscription
- Message sending with priorities
- Attachment support
- Message filtering
- Documentation and examples
- Cross-platform support
-
Milestone 3 - Provider Integration
- Integration with notification providers:
- Firebase Cloud Messaging
- Apple Push Notification Service
- Web Push Notifications
- Provider-specific payload formatting
- Delivery status tracking
- Error handling and retry logic
- Provider fallback mechanisms
- Integration with notification providers:
-
Milestone 4 - Web Interface
- Modern web interface for managing notifications
- Real-time notification display
- Topic management
- User preferences
- Authentication integration
- Mobile-responsive design
- Progressive Web App support
-
Milestone 5 - Mobile Apps Integration
- Integration with xx messenger
- Integration with Haven
- Native push notification support
- Background message processing
- Battery optimization
Implementation Requirements
-
Technology Stack:
- Go programming language
- xx network client libraries
- Existing notifications-bot codebase
- PostgreSQL for persistence
- Modern web technologies for interface
-
Privacy Requirements:
- Maintain ID collision privacy system
- Prevent topic enumeration
- Protect subscriber privacy
- Secure message delivery
- No data correlation possible
Submission Requirements
-
Source code must be:
- Open source (same license as xxDK)
- Submitted via merge request to appropriate repository
- Well-documented
- Passing all tests
- Following project coding standards
-
Documentation must include:
- Architecture overview
- API reference
- Integration guide
- Privacy analysis
- Deployment guide
- User guide
Judging Criteria
Submissions will be evaluated on:
- Privacy preservation
- Completeness of implementation
- Code quality and maintainability
- Documentation quality
- Test coverage
- Performance and scalability
- User experience
- Integration quality
Timeline
- Submissions accepted until completed or program ends
- Reviews will occur within 2 weeks of submission
- Prizes paid within 30 days of approval
Payment Terms
- Prizes paid in XX tokens
- Multiple submissions may split prize pool
- Major awards (>50,000 XX) subject to 6-12 month linear vesting
- All payments subject to KYC approval
- Partial payments may be made at discretion
- Payments may be locked in a linear vesting schedule for up to 1 year
Contact
Submit questions and proposals through:
- Repository issues
- Developer forum
- Developer chat channels
Please respond in the forum if you are pursuing this bounty.
Legal
- xx network reserves right to modify bounty terms
- All submissions must comply with applicable laws
- Participants retain rights to submitted code under project license
- xx network not responsible for lost or invalid submissions