Thank you for your interest in contributing to Vidulum App! This project is built by the people, for the people, and we welcome contributions from developers of all skill levels.
- Code of Conduct
- Getting Started
- Development Workflow
- Testing
- Code Style
- Pull Request Process
- Issue Reporting
- Adding New Networks
- Documentation
- Security
- License
We are committed to providing a welcoming and inclusive environment for all contributors. Please be respectful and professional in all interactions.
- Be respectful and considerate
- Accept constructive criticism gracefully
- Focus on what is best for the community and the project
- Show empathy towards other contributors
- Node.js (v22 or higher)
- npm (comes with Node.js)
- Git
- A Chromium-based browser (Chrome, Edge, Brave, etc.) for testing
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/vidulum-app.git cd vidulum-app -
Add the upstream repository:
git remote add upstream https://github.com/corey-code/vidulum-app.git
npm install# Development build with watch mode
npm run dev
# Production build
npm run build- Navigate to
chrome://extensions(or equivalent in your browser) - Enable "Developer mode"
- Click "Load unpacked"
- Select the
distfolder from the project
-
Keep your fork up to date:
git fetch upstream git checkout main git merge upstream/main
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes and commit them:
git add . git commit -m "Add validation for EVM chain configuration" # Or: git commit -m "Fix balance calculation for Cosmos staking rewards"
-
Push to your fork:
git push origin feature/your-feature-name
# Start development server with hot reload
npm run dev
# Build all components
npm run build
# Run tests
npm test
# Lint code
npm run lint
# Sync Cosmos chain registry
npm run sync:chains
# Sync EVM chain registry
npm run sync:evmWe use Jest for testing. Please ensure all tests pass before submitting a pull request.
# Run all tests
npm test
# Run tests in watch mode
npm test -- --watch- Write tests for new features and bug fixes
- Follow existing test patterns in the
tests/directory - Aim for good test coverage, especially for critical functionality like cryptographic operations
This project uses ESLint and Prettier to maintain consistent code style.
- Code is automatically formatted using Prettier
- ESLint checks should be run locally before submitting pull requests
- Use TypeScript for all new code
- Follow existing patterns and conventions (see
src/for examples)- Component structure: see
src/popup/components/ - Network configurations: see
src/lib/networks/ - Crypto operations: see
src/lib/crypto/
- Component structure: see
- Write clear, self-documenting code
- Add comments for complex logic
- Use meaningful variable and function names
# Check for linting errors
npm run lint-
Ensure your code builds and tests pass:
npm run build npm test npm run lint -
Update documentation if you're adding or changing functionality
-
Create a Pull Request with:
- Clear title describing the change
- Description of what was changed and why
- Reference to any related issues (e.g., "Fixes #123")
- Screenshots if UI changes are involved
-
Wait for review:
- A maintainer will review your PR
- Address any feedback or requested changes
- Once approved, a maintainer will merge your PR
- Keep PRs focused on a single change or feature
- Break large changes into smaller, reviewable PRs
- Ensure commit messages are clear and descriptive
- Keep commits atomic and logical
When reporting bugs, please include:
- Browser version and operating system
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Screenshots or error messages if applicable
- Network affected (if applicable)
When requesting features, please include:
- Clear description of the feature
- Use case and why it would be beneficial
- Any relevant examples or mockups
Do not report security vulnerabilities through public GitHub issues. See the Security section below.
We welcome contributions to add support for new blockchain networks!
Detailed guides are available for adding different types of networks:
- Adding a Cosmos Chain - For Cosmos SDK-based networks
- Adding a UTXO Chain - For Bitcoin-like networks
- Adding an EVM Chain - For Ethereum-compatible networks
- Read the appropriate documentation above
- Add network configuration to the relevant file in
src/lib/networks/ - Test thoroughly with testnet first
- Update README.md with the new network
- Submit a pull request with detailed testing information
Good documentation is crucial for an open-source project.
- Update README.md if you add features or change setup instructions
- Update relevant docs in
docs/folder for technical changes - Use clear, concise language
- Include code examples where appropriate
- Use Markdown format
- Follow existing documentation structure
- Keep it up to date with code changes
If you discover a security vulnerability, please DO NOT open a public issue.
Instead, please report it responsibly by:
- Opening a private security advisory on GitHub:
- Go to the repository's Security tab
- Click "Report a vulnerability"
- Provide detailed information about the vulnerability
- Or create a draft security advisory if you have discovered a CVE
- Allow time for the issue to be addressed before public disclosure
Alternatively, you can reach out to the maintainers through GitHub by opening a private discussion or checking the repository for contact information.
This is a cryptocurrency wallet dealing with private keys and user funds. When contributing:
- Never commit secrets, private keys, or mnemonics
- Be extra careful with cryptographic operations
- Follow secure coding practices
- Test security-critical changes thoroughly
- Review the Data Storage documentation
By contributing to Vidulum App, you agree that your contributions will be licensed under the MIT License.
This means your code will be:
- Free to use, modify, and distribute
- Open source and publicly available
- Part of a community-driven project
If you have questions or need help:
- Open a GitHub issue for bugs or feature requests
- Check existing issues and documentation first
- Be patient - maintainers are volunteers
Your contributions help make Vidulum App better for everyone. Whether you're fixing bugs, adding features, improving documentation, or helping other users, your efforts are appreciated!
Remember: This wallet is built by the people, for the people. Together, we're building a trustworthy, transparent tool for managing cryptocurrency assets.