Thank you for contributing to The Mempool Open Source Project! This guide will help you understand the contribution process and requirements.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/mempool/mempool/llms.txt
Use this file to discover all available pages before exploring further.
The Mempool Open Source Project is managed by Mempool Holdings S.A. de C.V. in El Salvador.
Before You Start
All contributors must agree to the Contributor License Agreement (CLA) before their contributions can be merged.Quick Start
Make Your Changes
Make your changes following the code standards below.
Contributor License Agreement
First-Time Contributors
When submitting your first pull request, you must create a CLA agreement file:CLA Terms Summary
Copyright License
Copyright License
You grant Mempool and software recipients a perpetual, worldwide, non-exclusive, royalty-free, irrevocable copyright license to:
- Reproduce your contributions
- Prepare derivative works
- Publicly display and perform
- Sublicense and distribute
Patent License
Patent License
You grant a perpetual, worldwide, non-exclusive, royalty-free, irrevocable patent license for any patent claims necessarily infringed by your contributions.
Originality
Originality
You represent that:
- Each contribution is your original creation
- You have permission to contribute (if employed)
- You’ve disclosed any third-party licenses or restrictions
No Support Required
No Support Required
You are not expected to provide support for your contributions, except to the extent you desire.
The full CLA text is available in the CONTRIBUTING.md file in the repository.
Code Standards
TypeScript Style
Both frontend and backend use TypeScript with ESLint for code quality.- Backend
- Frontend
Commit Message Convention
Use conventional commit messages:feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
GPG Signing
Generate GPG Key
If you don’t have a GPG key:Choose:
- Key type: RSA and RSA
- Key size: 4096 bits
- Expiration: Your preference
Add Key to GitHub
Export your public key:Add it to GitHub: Settings → SSH and GPG keys → New GPG key
Testing Requirements
All contributions must include appropriate tests.Backend Tests
- Unit Tests
- Integration Tests
- Coverage
Use Jest for unit tests:Run tests:
Frontend Tests
- Unit Tests
- E2E Tests
Angular unit tests:
See the Testing Guide for detailed testing information.
Pull Request Process
Before Submitting
PR Description Template
Include in your pull request:Review Process
Automated Checks
CI/CD runs automatically:
- Linting
- Type checking
- Unit tests
- Integration tests
- E2E tests (frontend)
Code Review
Team members review your code:
- Code quality
- Test coverage
- Design decisions
- Documentation
Common Contribution Areas
Bug Fixes
Find bugs in GitHub Issues labeled
bugFeature Development
Check issues labeled
enhancement or feature-requestDocumentation
Improve docs, add examples, fix typos
Translations
Contribute translations via Transifex
Testing
Add test coverage for untested code
Performance
Identify and fix performance bottlenecks
Getting Help
- GitHub Issues
- Development Questions
- Mempool Enterprise
Code of Conduct
Expected Behavior
- Be respectful and inclusive
- Welcome newcomers
- Accept constructive criticism
- Focus on what’s best for the community
- Show empathy towards others
Unacceptable Behavior
- Harassment or discrimination
- Trolling or insulting comments
- Personal or political attacks
- Publishing others’ private information
- Other unprofessional conduct
Attribution
Contributors are recognized in several ways:- Listed in the
/contributors/directory - Mentioned in release notes
- Displayed on the About page
- Git commit history
Next Steps
Setup Development Environment
Get your local environment ready
Architecture Overview
Understand the codebase structure
Testing Guide
Learn about testing practices
View Issues
Find something to work on