Ben Evanoff's summer coding proposal
I'd like to spend my summer working part-time on Monero, primarily on the core GUI wallet with a focus on multisig.
Major feaure additions:
Easy to use 2/2 Multisig: I've already begun work on adding 2/2 Multisig support to the GUI wallet; code and discussion can be found here I'd like to spend about 75 hours (3 x 25hr weeks) making sure this is all more or less idiot-proofed. To achieve this I want to add support for exchange of the required secret data via QR code and raw text, in supplement to the current file storage/transfer scheme.
2/3 Multisig support: Once the 2/2 scheme is finished I'd like to move on to extending it to 2/3. I'd also like to investigate N-1/N and M/N but I will only promise 2/3 as it is the most popular and still only requires a fairly small amount of data to exchange, which is ideal for user-experience. I'd like to allocate a month of work to this.
Reserve Proofs: In Monero it's possible to construct a cryptographic proof that you own at least some value of Monero without disclosing your private view key. Reference I personally think this is a very useful feature of Monero, especially if Monero is to be used more widely, as in life there are situations where one may be required to prove they have some amount of funds (eg applying for an appartment or visa), so offering this functionality to non-cli users is useful especially in dispelling the myth that Monero isn't auditable. This should only take about a week and a half.
API Documentation: A lovely collection of C++ interfaces exist within the reference code with some of the most important wallet functionality implemented already. The core GUI wallet depends on this API as well as many other popular wallets like Monerujo and Cake Wallet. While working on the GUI wallet I've worked quite a bit with this so called wallet api and made a handful of modifications and unfortunetly there exists very little documentation for this code. Fortunately it's actually one of the most documented pieces of code in the reference client database but it's still less than complete. I'd like to spend about 2 weeks thoroughly documenting the most vital pieces of this API (wallet and wallet_manager) on getmonero.org. My hope is that this documentation reduces some learning curve for new developers who wish to build applications on top of the Monero protocol without re-inventing the wheel with wallet/key management.
My name is Ben Evanoff (sorry I'm not creative enough for a fun username). I'm currently a student at the University of Illinois studying linguistics and computer science. I first began contributing to Monero over winter break 2020-21 when I took my first stab at a GUI multisig POC and some other little bug fixes/improvements. You can view my history of Monero PR history here (GUI) and here(core).
I'd like to be able to spend my summer in an intern/junior-developer type role with Monero, dedicating 25 hours per week for $20/hour = 0.0666 XMR/hour (300USD = 1XMR. I think this is fair given the absolutely insane conversion volatility that we've seen recently, I'm essentially betting that 1 XMR will be worth at least $300 in 3 months when the last milestone is to be paid out. The 50 day moving average for Monero is $255 and $203 for 100 days).
What's in it for me? I get to spend my summer working on a project that deeply interests me instead of working some other random job and in doing so I get to learn more about Monero, recieving reviews from other developers, while getting paid in Monero!
What's in it for the community? Everything outlined in WHAT + code reviews :)
This proposal will take roughly 3 months to complete (11 weeks of work + a couple weeks vacation buffer). Ideally I would start May 24th and finish around September 1st.
(75 * 0.0666) + (100 * 0.0666) + (37.5 * 0.0666) + (50 * 0.0666) = 5 + 6.66 + 2.5 + 3.33 = 17.49 XMR total