Haveno App (Cross Platform)
What
A cross-platform Haveno application that supports Windows, macOS, Linux, iOS, Android, and web browsers, all within the same codebase. As the milestones mention, all basic functionality of Haveno will be supported through the app. Market statistics are not mentioned in the milestones but can be added in a later proposal. In accordance with CCS rules, all software will be MIT licensed. All payouts are value for value; no payouts without the delivery of the agreed-upon software.
Technology
The Flutter SDK is used to support the 6 different platforms uniformly. Flutter SDK is supported on all major operating systems, enabling other developers to download, build, run, and contribute from their system of choice.
The proposed Haveno app leverages Haveno daemon as a node into the Haveno network of your choice. This proposal includes changes to Haveno daemon that enable easy setup and background execution for compatibility with this app. Once running, the app UX is mobile and responsive.
Connectivity
Secure connectivity to the daemon is key, as it hosts money and trade actions. TLS is currently implemented. Tor implementation is in progress. Password authorization is present. Daemon certificates are completed, but validation depends on client platform support (validation may vary by platform). Client certificate work is in progress.
For those wishing to host a web interface, scripts will be provided that automate the process as much as possible (cert generation, server setup and teardown, etc.).
Testing
As people know, testing involves running as many permutations of user input as possible. To give an idea, there are 6 supported platforms, 2 connection types, 2 primary offer types, 2 sides to a trade, and tons of options available on each trade (different types of exchange rate settings, triggers, security deposit options), 56 different supported payment methods, etc.
Code coverage will be as extensive as possible. All permutations do not need to be touched, but the ones where there can be obvious problems will be addressed (e.g., Fiat trades are rounded to the nearest whole fiat number, whereas cryptocurrencies are not).
Why
We all know about the Monero delistings. We all see the question constantly: "Where can I buy Monero?"
Haveno is the best exchange that we have that is censorship-resistant, supports on and off ramps, and is relatively private. The better Haveno gets, the easier it will be for everyone to acquire Monero in a private manner that cannot be turned off.
Currently, Haveno is desktop-only. One of the top most-requested features of Haveno is mobile device support. The work in this proposal will decouple Haveno users from desktop computers and allow trading on the go. The increase in ease of use should increase liquidity greatly and satisfy the desire people have to use their mobile devices. Lastly, an alternative UI will be provided for desktop and web interfaces.
Who
- Built Linux ARM64 support for Haveno.
- Built static library support for Monero-Java.
- Built universal libraries for Monero-Java and Monero-CPP.
- Top 1% commenter on r/monero.
- I've been in this community since 2019 and now have the free time to contribute code. I'm NorrinRadd, aka Aremor, aka Blario.
- I've been writing software for 20 years now. I've independently published to the App Store before and shipped mobile games with large publishers, just to name a few.
Milestones
View & Take Offers, Complete a Trade (All Platforms Excluding Web)
- Included in this milestone is the necessary scaffolding for establishing a secure connection to Haveno (encryption and authorization). This will be made as easy as possible, and documentation will be provided where necessary.
- Lock funds, display payment details, release Monero to the buyer, mark as paid, and confirm receipt.
- Technically, this can be hosted as a web interface as well, but authorization will not be added until later.
- Not to exceed 2 months.
- funds: 125
Standard Wallet Operations
- View balance, send, and receive transactions.
- Not to exceed 2 months after the completion of the previous milestone.
- funds: 50
Ability to Create Offers
- Standard offers, cloned offers, and no-deposit offers.
- Allows market making across various currencies and payment mediums.
- Settings such as deposit percentage, minimum, maximum, and the locking of funds are supported.
- Not to exceed 2 months after the completion of the previous milestone.
- funds: 100
Account Management and Dispute Resolution
- Create and delete accounts.
- Ability to start the dispute of a trade.
- Message capabilities to and from the trade counterparty and the arbitrator.
- Not to exceed 1 month after the completion of the previous milestone.
- funds: 50
Add Authorization Screen for Web Interface
- In order to host this app as a web service, a login screen is necessary.
- Account recovery will be necessary as well.
- Not to exceed 2 months after the completion of the previous milestone.
- funds: 50
Timeframe
Total project completion not to exceed 9 months.
Future Roadmap
- Marketplace statistics can be added to a future version.
- Features for arbitrators, such as managing others' disputes, have not been mentioned. These can be explored at a later time.