Thank you for your interest in contributing. ILN is an open-source protocol and we welcome contributions of all kinds smart contract code, frontend, documentation, research, and testing.
- Ways to contribute
- Applying to work on an issue
- Development setup
- Submitting a pull request
- Code standards
- Getting help
To contribute. We welcome:
- Help wanted issues — labeled
help wanted, high priority - Good first issues — labeled
good first issue, scoped for newcomers to the codebase - Bug reports — open an issue using the bug report template
- Documentation — improvements to README, docs/, or inline code comments
- Security disclosures — see Responsible disclosure below
We use an application process to avoid duplicate work.
Browse open issues and filter by label:
| Label | Meaning |
|---|---|
help wanted |
High priority, no funding attached |
good first issue |
Well-scoped, good entry point |
in progress |
Already claimed, do not apply |
Leave a comment on the issue with the following:
**Applying to work on this issue**
- **What I plan to build:** [brief description of your approach]
- **Relevant experience:** [links to past work, GitHub repos, or context]
- **Estimated timeline:** [how many days you need]
- **Questions / blockers:** [anything you need clarified before starting]
A maintainer will review your application within 48 hours and either:
- Assign the issue to you and add the
in progresslabel, or - Ask follow-up questions, or
- Let you know the issue has already been assigned
Do not start building before you are assigned.
Once assigned, fork the repo, build your solution, and open a pull request referencing the issue (e.g. Closes #12). See Submitting a pull request below.
A maintainer will review your PR. Expect one or two rounds of feedback.
- Rust 1.74 or higher
- Stellar CLI
- A funded Stellar testnet wallet (see README quickstart)
- Node.js 18+ (for frontend contributions)
# Fork the repo on GitHub, then:
git clone https://github.com/YOUR_USERNAME/invoice-liquidity-network.git
cd invoice-liquidity-network
# Add upstream remote
git remote add upstream https://github.com/MAINTAINER_USERNAME/invoice-liquidity-network.gitcd contracts/invoice_liquidity
cargo build --target wasm32-unknown-unknown --releasecargo testAll tests must pass before you open a PR. If you are adding new functionality, include tests for it.
git fetch upstream
git checkout main
git merge upstream/main- Create a branch named after the issue:
git checkout -b fix/issue-12-payer-verification - Make your changes with clear, focused commits
- Run the test suite and confirm everything passes
- Open a PR against the
mainbranch of this repo - Fill in the PR template — describe what you changed, why, and how to test it
- Reference the issue in the PR description:
Closes #12
- Tests pass locally (
cargo test) - New functionality has test coverage
- No unnecessary dependencies added
- Code follows the style guidelines below
- Docs updated if the change affects public interfaces
- Follow standard Rust formatting: run
cargo fmtbefore committing - Run
cargo clippyand resolve warnings before opening a PR - All public functions must have doc comments (
///) - Avoid
unwrap()in contract code — use proper error handling withContractError - Keep functions small and focused; split logic into modules where appropriate
- Write in plain, clear English
- Use sentence case for headings
- Code examples must be tested and working
- Update the relevant section of
docs/for any interface changes
Use the following format:
type: short description (max 72 chars)
Optional longer explanation of why the change was made,
not just what was changed.
Types: feat, fix, docs, test, refactor, chore
Example: feat: add claim_default function for LP recourse
If you discover a security vulnerability in the smart contract or any part of ILN, please do not open a public issue.
Email us at: margretnursca@gmail.com (or open a GitHub Security Advisory)
Please include:
- A description of the vulnerability
- Steps to reproduce
- Your assessment of impact
- Any suggested fix if you have one
We will acknowledge your report within 48 hours and work with you on a responsible disclosure timeline.
- GitHub Discussions — for questions, ideas, and general conversation: Discussions tab
- Issues — for bug reports and feature requests only
- Discord — [invite link] (add your community link here)
If you are new to Soroban development, the Stellar Developer Docs are the best starting point. The Soroban examples repo is also very useful for understanding contract patterns.
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold it. Maintainers reserve the right to remove anyone who violates these standards.
Questions about the contribution process? Open a Discussion and we'll help.