Welcome! Incredibly excited you are interested in contributing to HorizonCover. This is an open source project and contributions are welcome.
We manage all our work through the GitHub Issues board. Issues are pre-scoped and tagged with difficulty and area labels.
To ensure fair attribution for the Wave program:
- Find an Issue: Browse the open issues. If it is unassigned, comment "I would like to work on this."
- Wait for Assignment: A maintainer will formally assign the issue to you. Do not start work until you are assigned.
- Submit a PR: Once assigned, link your PR to the issue.
- Merge: Once reviewed and merged, your contribution becomes part of the open source project!
HorizonCover is a monorepo built with pnpm.
- Rust (latest stable)
- Stellar CLI
- Node.js (v20+) and pnpm
Add the WASM compilation target (one time only):
rustup target add wasm32-unknown-unknownGet a funded testnet account:
stellar keys generate --global contributor-key --network testnet
stellar keys fund contributor-key --network testnet- Fork and clone the repository.
- Install dependencies:
pnpm install
- Build the smart contracts:
pnpm build:contracts
- Run the frontend:
cd frontend pnpm dev
Please branch off main using the following convention:
feat/issue-number-short-desc(e.g.,feat/12-payout-formula)fix/issue-number-short-desc(e.g.,fix/14-vault-balance-bug)docs/issue-number-short-desc
We follow Conventional Commits. Your commit messages should look like:
feat(core): implement solvency checkfix(frontend): resolve wallet disconnect errortest(monitor): add mock protocol exploit simulation
- Use the provided PR template.
- Reference the issue you are solving (
Closes #12). - Ensure all local tests pass (
cargo test). - Keep your PRs highly focused. If you are doing a large refactor, please open an issue to discuss it first.
Thank you for helping us build the future of parametric DeFi insurance on Stellar!