Origin DeFi is an entirely open-source project and we welcome contributions of all sorts. There are many ways to help, from reporting issues, contributing code, and helping us improve our community.
We work in public and our company Discord is open to all. If you have questions or need help getting started, our Discord OUSD channels are the best place to get assistance from our team and community.
Our internal developer dashboard is available at analytics.ousd.com. The dashboard shows the current circulating supply, the assets under management in the vault, and the current allocations between each of the stablecoins and strategies. Various other developer tools can be found at ousd.com/dashboard. This dashboard will soon be deprecated.
Your development flow should look like:
- 3.Add a comment to the issue or self-assign so we don’t have multiple contributors unintentionally working on the same task.
- 4.Start with the
masterbranch and check out a new feature branch unless you’re contributing to an existing feature.
- 5.Write some awesome code.
- 6.Pull the latest commits from
masterand confirm that your code works with any other work that has been merged since you started.
- 7.Push your branch to the upstream repository (i.e. https://github.com/OriginProtocol/[repo]) so that other contributors can easily work off of it if necessary.
- 8.Please request a review in the PR by clicking on the gear icon next to “Reviewers” in the right column.
For critical smart contract code to be merged it must pass the following checklist:
- Code reviewed by 2 reviewers
- Unit tests pass
- Slither tests pass with no warning
- Echidna tests pass
masterbranch is locked so that only members of the core team are able to merge your pull requests. Pull requests that are peer-reviewed by other trusted contributors will be fast-tracked and merged faster! Check in the
#defi-engineeringDiscord channel for appropriate reviewers.
We use a variety of programming languages in our repositories. When contributing, please follow existing coding conventions and refer to the CONTRIBUTING.md file in the repository, if one exists.
For Solidity, we use two-space indents.
When considering protocol or implementation design proposals, we are looking for:
- A description of the problem this design proposal solves
- Discussion of the trade-offs involved
- Review of other existing solutions
- Links to relevant literature (RFCs, papers, etc)
- Discussion of the proposed solution
Please note that protocol design is hard and meticulous work. You may need to review existing literature and think through generalized use cases.
We want to keep the Origin community awesome, growing and collaborative. We need your help to keep it that way. To help with this we’ve come up with some general guidelines for the community as a whole:
- Be nice: Be courteous, respectful and polite to fellow community members: no regional, racial, gender, or other abuse will be tolerated. We like nice people way better than mean ones!
- Encourage diversity and participation: Make everyone in our community feel welcome, regardless of their background and the extent of their contributions, and do everything possible to encourage participation in our community.
- Keep it legal: Basically, don’t get anybody in trouble. Share only content that you own, do not share private or sensitive information, and don’t break laws.
- Stay on topic: Make sure that you are posting to the correct channel and avoid off-topic discussions. Remember when you update an issue or respond to an email you are potentially sending to a large number of people. Please consider this before you update. Also remember that nobody likes spam.
If you find bugs, mistakes or inconsistencies in Origin’s code or documents, please let us know by filing a GitHub issue. No issue is too small. Help us fix our tpyos!
We take security vulnerabilities very seriously. If you discover a security issue, please bring it to our attention right away!
Origin is just as much about community as it is about our technology.
We need constant help in improving our documentation, building new tools to interface with our platform, spreading the word to new users, helping new users getting setup and much more.
Origin occasionally hires developers for part-time or full-time positions.
We have a strong preference for hiring people who have already started contributing to the project. If you want a full-time position on our team, your best shot is to engage with our team and start contributing code. It is very unlikely that we would offer you a full-time position on our engineering team unless you’ve had at least a few pull requests merged.