Bounty xxB-2024-002: Matrix<>XX Network Chat Bridge Implementation
Overview
This bounty rewards developers for implementing a bridge between Matrix and the xx network chat protocol, enabling seamless communication between the two networks. The implementation will be done in Go, utilizing the xxDK client library and gomatrix or equivalent library.
Prize Pool
Total Prize: 750,000 xx (~$37,500 USD)
Breakdown:
- Milestone 1 - XX Network Chat Recording: 200,000 xx
- Milestone 2 - Matrix Proof of Concept: 250,000 xx
- Milestone 3 - Full Matrix Relay: 300,000 xx
Requirements
Eligibility
- Participants must complete KYC verification
- Participants from OFAC-sanctioned countries are not eligible
- Multiple contributors may collaborate on submissions
- Existing xx network contractors are eligible, but will not be permitted to be part of the curator process.
Technical Requirements
- Milestone 1 - XX Network Chat Recording
- Implementation of chat message capture using xxDK
- Message storage and indexing system
- Support for group and direct messages
- Message format conversion preparation
- Complete documentation and test coverage
- Milestone 2 - Matrix Proof of Concept
- Basic Matrix server integration using gomatrix
- One-way message relay (xx network → Matrix)
- Basic user mapping system
- Simple room/channel mapping
- Proof of concept documentation
- Milestone 3 - Full Matrix Relay
- Bidirectional message relay
- Complete user identity bridging
- Full room/channel synchronization
- Media file handling
- Message formatting compatibility
- High availability deployment support
- Production-ready documentation
Implementation Requirements
- Technology Stack:
- Go programming language
- xxDK client library from git.xx.network/elixxir/client
- gomatrix library
- PostgreSQL or similar for message storage
- Features:
- User identity copying that makes sense for our use case
- Room/channel mapping
- Message format conversion
- Media file handling (mark it or link it)
- Error handling and recovery
Submission Requirements
- Source code must be:
- Open source (same license as xxDK preferred, BSD 2 Clause)
- Submitted via merge request to appropriate repository or as a new repo
- Well-documented
- Include tests, Passing all tests
- Following Go best practices and project standards
- Documentation must include:
- API reference
- Deployment guide
- Configuration guide
- Example deployment
- Build/installation instructions
- Operation manual
Judging Criteria
Submissions will be evaluated on:
- Completeness of implementation
- Code quality and maintainability
- Documentation quality
- Test coverage
- Performance and scalability
- Security considerations
- Ease of deployment
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