Get Involved

There are several ways to contribute to the NavCoin protocol, not all of which require a high level of programming skills. If you’d like to support the NavCoin project, here’s some of the best ways to get involved.

Translations

NavCoin Core has been translated into over two dozen languages, with dozens more languages partially translated — but more help is always needed. NavCoin uses Transifex for translation, so you’ll need to setup an account.

To contribute a translation, go to the NavCoin project on Transifex:
https://www.transifex.com/navcoin/navcoin-core

Click on the 'Join Team' button, let us know which languages you’re able to translate, and start translating!

Set up a Transifex account

Documentation

We are currently working to bring online an open source developer documentation resource for NavCoin Core. If you want to help get this up and running please head over to GitHub and see how you can help out. Just make sure you follow the GitHub conventions outlined on this page and submit an issue about what documentation you’re writing to reduce duplication of effort.

Contribute to developer docs

Submit an issue

For all non-critical problems with NavCoin Core please search for similar issues and if you don’t find any, submit a new issue providing the information below.

  • A clear description of the problem and steps to reproduce the problem.
  • What version of NavCoin Core you use or what commit you built using.
  • Any relevant entries from your debug.log file. Please ensure to strip out any sensitive information before publishing your debug.log entries.

The best strategy to get your issue fixed quickly is to make it as easy as possible for the development team to track down the problem and write a fix. Providing more information and organizing it well helps significantly.

Submit an issue

Resolve an issue

The issue tracker is the best place to find a useful way to contribute to NavCoin Core. Before starting to write any patches for issues you find, you may want to comment on the issue to make sure nobody else is already working on it. Remember that even if you’re resolving an issue you’ve found you will need to first create an issue in the issue tracker.

To resolve an issue follow this process:

  • Fork NavCoin/navcoin-core to your own GitHub account.
  • Create a branch to work in to resolve the issue then get to work.
  • Write or update unit and integration tests to cover any changes you’ve made.
  • Make a pull request from your branch back into the main NavCoin Core repository with the issue type and number in the title (eg. Trivial: fixes spelling mistake #145).
  • Talk with other NavCoin Core contributors on Discord or through GitHub to alert them to the pending Pull Request and they will review it as soon as possible.

For the full contribution workflow details, please see the readme on GitHub.

See the readme

Write tests

NavCoin Core is covered by many tests, but patches that improve test coverage are always welcome and are a great way to build familiarity with the codebase.

Developers are strongly encouraged to write unit tests for new code, and to submit new unit tests for old code. Unit tests can be compiled and run (assuming they weren't disabled in configure) with: make check.

There are also regression and integration tests, written in Python, that are run automatically on the build server.

Review the code

NavCoin Core is security software that helps protect assets worth millions of dollars, so every code change needs to be reviewed by experienced developers.

It can take a long time for other developers to review your pull requests. Remember that all reviewers are taking time away from their own projects to review your pull requests, so be patient and respectful of their time.

Please also consider helping to review other people’s pull requests. You don’t need to be an expert in NavCoin, the NavCoin Core codebase, or C++ (although all these things help). There are almost always open pull requests that any programmer can review.

Review pull requests

Suggest a protocol improvement

NavCoin Core strives to continually improve the underlying protocol of NavCoin. Our aim is always to improve security, privacy and efficiency while encouraging decentralisation, uptake and usability. If you want to help us improve the NavCoin protocol, the best place to document your suggestion is on the NPIPs (NavCoin Protocol Improvement Proposals) GitHub repository.

People wishing to submit NPIPs, first should propose their idea or document to the NavCoin Core development community through Discord or IRC (irc.freenode.net #navcoin). After discussion, please open a PR to the NPIPs repository. After copy-editing and acceptance, it will be published there.

We are fairly liberal with approving NPIPs, and try not to be too involved in decision making on behalf of the community. The exception is in very rare cases of dispute resolution when a decision is contentious and cannot be agreed upon. In those cases, the conservative option will always be preferred.

Having a NPIP here does not make it a formally accepted standard until its status becomes Final or Active.

Those proposing changes should consider that ultimately consent may rest with the consensus of the NavCoin users.

View NPIP's

Disclose a security vulnerability

NavCoin is experimental technology and sometimes critical bugs are found. If you’re a researcher and you’ve found a security vulnerability head over to the Responsible Disclosure page to see how you can report it.

Responsible disclosure