Wallet Competition
The Neptune Cash ecosystem is evolving at an incredible pace. The requests for features are stacking up across the board, and the neptune-core
developers can barely keep up. Among all feature requests, one category stands out for its large tally: a graphical user interface wallet.
Meanwhile, the code base is evolving into a stabler and more modular state, to the point where it is possible to contribute meaningfully without intricate knowledge of the rest of the system.
In response to this market demand, in order to release some of the pressure on the neptune-core
team, and since it is possible, we have decided to outsource the development of GUI wallets. Not to some well-defined firm or individual contractor, but to the community at large. Specifically, we are launching a competition to solicit contributions from anyone who pleases. And there is a bounty for the winner(s).
Scope
The competition focuses on graphical user interfaces for managing the user’s Neptune Cash wallet. In particular, we are looking for programs that present users with a smooth user experience as they import and export Neptune Cash wallet seeds, and send and receive Neptune Cash transactions.
One of the side-objective of this competition is to initiate a dialogue for scrutinizing, improving, and eventually solidifying the RPC API through which the Wallet speaks with the node. This API should be understood to change in response to this dialogue. In light of this flux, participants are advised to avoid feature-abundance and instead focus on delivering essential features robustly.
Bounty
The total prize money amounts to 11’000 Neptune coins, of which at least 6’000 will go to the winner. The remaining 5’000 coins will be distributed among the runners-up according to a distribution at the discretion of the judges.
For each winning submission, the entire reward will be disbursed as one Neptune Cash transaction to an address supplied by the winning teams. Further distribution is the responsibility of the winning teams.
Eligibility
The minimum requirements for the GUI Wallet program are as follows.
- The GUI Wallet must be capable of standalone operation, meaning that it must participate in the Neptune peer-to-peer protocol itself or manage a process that does it.
- By default, no secrets (cryptographic or other) leave the device. Functionality for exporting secrets must be expressly selected.
- The GUI Wallet must be capable of importing and exporting seed phrases; these seed phrases must be compatible with the
neptune-cli
commandsimport-seed-phrase
andexport-seed-phrase
. - The GUI Wallet must be capable of sending and receiving Neptune coins.
- The GUI Wallet must be capable of tolerating reorganizations.
- The entire software package must be licensed under the MIT license or similar. Moreover, it must have an up-to-date GitHub repository.
- The GUI Wallet must run on Linux.
About the last bullet point (mandatory Linux support): the intention is to streamline the judging process by using the same benchmark for all submissions; not to dissuade participants from supporting alternative platforms. In fact, support for multiple platforms, though not a requirement, is a good thing and will be judged as such.
The following features are optional.
- A mode of use whereby the GUI Wallet communicates with a separate process or server without managing it, such as an instance of
neptune-core
running on the same machine or even another machine over the internet. - A mode of use whereby the GUI Wallet interacts with an external party to outsource the production of proofs or other work-intensive tasks.
- Support for other operating systems besides Linux, or even platforms like web or smartphone.
Judgment
Judgment is reserved for the neptune-core
team who may at their discretion elect judges to outsource judgment to. The neptune-core
team and any elected judges are barred from receiving bounties.
The judges will evaluate the eligible submissions according to the following criteria, listed in order of importance.
- User experience.
- Ease of installation.
- Code quality, git discipline, test coverage, release build distribution.
- Community response.
- Resource requirements.
Projects will not be penalized for reusing code that was developed by other teams, provided that such code is duly attributed. However, the judges will take into special consideration and rate highly the original sources of such code reuse instances.
The judges will base their judgments on the snapshot of the repository taken at the deadline for submission and will not take into account later commits. The judges’ evaluations and scores will be published when the winners are announced.
Timeline
- 2025-04-16: Competition Announcement Draft Published
- 2025-05-01: Competition Announcement Finalized
- 2025-9-01: Deadline for Submissions
- 2025-10-01: Judges’ Report on Eligibility
- 2025-12-01: Winner(s) Announced & Payout(s) Arranged
How To Submit
- Create a GitHub repository.
- Develop a GUI Wallet.
- Mark the repository “public”.
- Announce the submission here before the deadline.
Changes Relative to Draft
- Timeline was shrunk by one month. The objective of this competition includes solidifying the RPC interface for wallets, which should be understood to be somewhat in flux. Submissions aiming to achieve an abundance of features risk breaking as the interface is upgraded. Consequently, the call for submissions is targeting GUI Wallet prototypes – functional, but prioritizing robustness of feature-completeness. The timeline was shrunk by one month in line with this reduced scope.
- Clarify the requirement about supporting Linux.
- (Considered, but not adopted:) Extend scope to web wallets. Web wallets are absolutely nice to have, but for Neptune Cash they pose significant engineering challenges. The issue is compounded by the poor present separation between wallet and node, which would mean that the web wallet either runs the entire node on the browser (including proving, to initiate transactions), or that the secret key materials would be managed by whichever server the work is outsourced to. At a later date, when the software is more conducive to separating the functions of wallet management and of blockchain state management, we may consider launching another competition. All the previous notwithstanding, participants or even non-participants are obviously welcome to work on a web wallet for Neptune Cash – just be warned that it is an ambitious project.