Thank you for considering contributing to OrionPay! This document outlines the process and guidelines.
- Fork and clone the repository.
- Install dependencies:
npm install cd ai && pip install -r requirements.txt
- Set up your environment — copy
.env.exampleto.envand fill in the values. - Start the stack locally:
Or run the API and DB separately if you prefer.
docker compose up
- Branch from
mainfor every change. Name branches descriptively:feat/stellar-anchors,fix/balance-sync,docs/api-examples. - Write tests for new features and bug fixes. Run
npm testbefore committing. - Lint and format before pushing:
npm run lint npm run format
- Commit messages should be clear and imperative:
Add Stellar anchor support,Fix wallet balance race condition.
- Keep PRs focused — one feature or fix per PR.
- Describe what changed and why in the PR body.
- Reference any related issues.
- Ensure all tests pass and lint is clean.
- PRs are reviewed by maintainers and may require changes before merging.
- Style: Follow the existing Prettier and ESLint config.
- TypeScript: Prefer explicit types over
anywhere practical, but the codebase intentionally allowsanyfor third-party SDKs andreq.user. - Tests: Use Jest with mocked dependencies for unit tests; real network calls go in separate integration tests.
- Blockchain: Always test on testnet before mainnet.
- Stellar testnet is the default (
STELLAR_TESTNET=true). - All Stellar changes should work with both Horizon testnet and public.
- Remember that Stellar uses public/secret key pairs, not mnemonic seeds by default.
- Search existing issues first.
- Include clear steps to reproduce, expected vs. actual behavior, and logs or screenshots if relevant.
- For security issues, email the maintainers directly rather than opening a public issue.
Open a discussion or issue, or reach out to the maintainers.