Orchard and UA for YWallet

Seems like a no-brainer for me.

@hanh is there a place you’d prefer for user feedback? I’d been using Ywallet earlier for z2z messaging and noted down a few suggestions.

5 Likes

If you have a github account, the best place would be Issues · hhanh00/zwallet · GitHub
Maybe we could have a Ywallet category on the forum?

2 Likes

Github is fine for me. Testing and dev feedback provided by users, combined with a dev willing and able to take suggestions, is essential for a product to improve. I didn’t participate in the initial beta testing but I know others definitely did and likely helped Ywallet a lot. I’d encourage all users of Ywallet who have the time to help @hanh make the best app possible by leaving feedback for him.

There’s nothing more that I would like than for Ywallet to be a trustworthy wallet for Zcash for years to come. Having working and consistent wallets is mission-critical for Zcash. And without Ywallet, 99% of Zcashers would have been literally unable to use Zcash for a(n) (ongoing) portion of this year.

In order for a currency to ever become acceptable, it has to be trustworthy. It has to be available whenever you need it. We need to avoid fits and starts, and I see supporting the continued development and maintenance of Ywallet as a way to do this.

4 Likes

Maybe there should be a feedback section on the forums.

1 Like

Hello @hanh , on behalf of the @ZcashGrants committee please allow me to extend our thanks for your application. We are currently in the process of reviewing your latest grant and hope to reach a decision soon. We have the following questions that need clarifying for the committee members:

First, please explain how ZecWallet development, with its Full Node and Desktop Lite clients (for Mac, Windows, and Linux) and Mobile Apps (for Android and iOS) is comparable with the development hours required for Ywallet, which is built with a single cross-platform framework (Flutter)?

Additionally, when we discussed your previous Ywallet grant, the funding was based off of the historic average developer benchmark of ~$100 /hr. Since the grant was retroactive we had no way of tracking hours spent in development and testing; therefore it was convenient to map it to other wallet applications we had funded since the work was delivered as a completed project. The top down estimates from the previous grant were assumed to be based on the standard developer rate. The grants committee was paying past development hours, not purchasing a software product. As such, Ywallet itself (licensing, distribution, roadmap, etc) remains free and open as intended and no profit was made on top of raw development hours billed. Since we are a grants organization, all funds go to the greater good of the Zcash ecosystem and any profit on one project comes at the expense of another.

Since the new grant is new development, the work is presented as time and material. Being new work on a bespoke product, there is no way to compare Ywallet feature development to other wallets outside of dev-to-dev hours and this is in line with other grants which bill on dev hours. From our previous conversations, I respect your preference for working alone and understand you will be completing this code as a sole developer with your time being charged now at $220/hr. This is 2.2x the average rate normally applied to grants, which is too high. Please provide an explanation that justifies the high cost of this grant or bring the cost down to rate more in line with the market.

1 Like

ZecWallet Lite is also built on a cross-platform framework: React Native. The difference is with ZecWallet full node, is a separate code base that relies on zcashd for its wallet. I substituted the time needed for this part with an implementation of multi-recipient UA. Note that at this point, UA in ZW is only for Orchard. I think the vision for UA is to offer a hassle-free address for every user and for that, we need to combine transparent, sapling and orchard addresses together. IMO smart note management is harder.

  1. With all due respect, may I point out that for Add Orchard to Zecwallet Mobile and Desktop Apps
  • 1 person working full time for 13 weeks (@ $200 / hr) = 200 * 8 * 5 * 13 = $104000
  • 1 person working part time (10%) for 13 weeks (@ $200 / hr) = 200 * 4 * 13 = $10400
    Total = $114,400

So I’m asking 10% more than a developer than the committee approved without past track record.
He remained anonymous.

  1. I believe projects should be evaluated based on their value provided and difficulty.
    If they are priced based on the time by developer, I can “hire” a few people.
    More seriously, I believe applying a flat 100$/h is detrimental to attracting people of high caliber. I am sorry but with my skill and experience, I will not work for 100$/h.

I think it is giving a bad message because every developer is not worth the same.

  1. Regarding YWallet price. IMO, if you had to build it again, you would spend much more.

  2. Regarding the price of Orchard integration. Trezor grant for Orchard is 130k, ZW grant for Orchard is 110k, and you have a full team at the ECC working on their wallet, I don’t know the cost but I think it’s higher than 100k.

In conclusion,

The great Jim Rohn once said, “You don’t get paid by the hour. You get paid for the value you bring to the hour.”

5 Likes

$200-220/hr does not seem high for the work that @hanh is doing imho. Some folks doing more mundane data engineering work are charging close to that nowadays… but here we have one of the few folks in the world who can do this orchard integration and that rate is “too high”? Doesn’t makes sense to me.

Do the other apps even have features like note management? (I don’t think so). Point being, the features seem richer in YWallet so compensation to the dev for that richness and value-add make sense to me.

2 Likes

Appreciate the work you are doing on YWallet @hanh. It has held up well through the recent spam challenges and I enjoy using it.

4 Likes

I appreciate the diligence @dontpanicburns and @ZcashGrants are doing in working with @hanh.

I’m not an expert whatsoever on being able to price software development. However, I do have this feeling in my gut that the value brought by a wallet that actually uses a single user facing UA across pools, can survive spam attacks, has lots of other features, and consistently works will more likely than not be worth as much or more than the current price tag.

In addition, I have a feeling that alienating or discouraging the developer of the best working mobile wallet would be much more detrimental in the long run than paying the ~$50,000 difference between $100 or $220 per hour rate for the grant in question. Furthermore, in general, I don’t necessarily see how a $100 flat rate for all developers (or a flat fee for any type of skill) is the best way to go. Some people are just more efficient or valuable per unit time than others, not much other way to reflect that than in the dollar per unit time figure…

I know the job of evaluating all the grants and trying to fairly allocate resources is not an easy one, but I really hope that we can continue on our way to improving Ywallet to become more and more user-friendly (which is of the utmost priority for all Zcash products in general) and certainly simplified UA/Orchard support is a way to get to this important goal.

2 Likes

Commenting as myself and not on behalf of the rest of zcg committee:

To be clear, all development of Ywallet to date has been funded at the average developer rate of $100/hr. This was the purpose of the retroactive funding. The 100/hr rate is an average and different projects and roles can be higher or lower. A few projects have been highlighted in this thread that are higher, and each was evaluated at the time it was presented. It is entirely possible Ywallet can be funded at a higher rate with good justification. Ywallet is a great application, prior to the retroactive funding all of its features were developed at $0/hr. Now as new features come, the rate is 2.2x higher than was funded last month. On the $114,400 grant; the amount asked is $62,400 higher than the $52,000 it would have been if included with the retroactive; this is non-trivial. Why was the previous rate acceptable in September and not now?

ZCG is currently funding 4 wallet implementations and ZCG funding will very likely disappear at the end of zip-1014. It would be a tragic end to Zcash if all projects funded by ZCG turn out to be unsustainable and couldn’t benefit the ecosystem on their own. It is my expectation these projects find a way to either: self-monetize, find additional sources of funding (grants & donations), or transition to all volunteer development efforts (which Ywallet has historically done).

Are any efforts being made to find other sources of funding for Ywallet or is it correct to assume development will be abandoned if it is not funded by ZCG?

1 Like

Because I didn’t base the pricing of YWallet retroactive grant on an hourly rate. As a matter of fact, my grant proposal does not mention an hourly rate. In my opinion, it should have been higher but I also wanted to give a package “discount”. Orchard/UA was not included because it represents a lot of new code development that is specific to Zcash.

I expect the best wallet to continue to exist through donations, DAO, grants, etc. And I hope this wallet is YWallet.

4 Likes

I’m confused here - why is extending the fastest wallet being nickel & dimed?

It’s not that much money, its going to someone with an excellent track record of delivering, and the whole point of these grants is to encourage external developers.

Is it still politically inconvenient that Ywallet is fast & survived the spam when all others died…or have we got over that?

A fast reliable wallet is vital, just fund it.

3 Likes

Because gathering community feedback and acknowledgement before funding a project asking for a higher than an average rate is a good practice imho. I appreciate all of the comments in this thread because it helps give voice to the community and makes the process feel more authentic than debating everything that comes through in private.

7 Likes

I think there is room for all forms of communication - public, private, semi-public. The main goal in regards to communication should be trying to reach understanding between applicant, grants committee, and community. Sometimes private talks are good for that, sometimes public talks are good for that, etc. Informed debate and decisions can only be made on a foundation of understanding/facts. So I am appreciative of @dontpanicburns effort to ask questions and @hanh’s honest answers, as well the efforts you all have made in other meetings.

From what I can tell, it seems that a strong wallet that works all the time is such a high priority in the community, combined with the fact that @hanh is not an “unknown” quantity and will very likely deliver exactly what is promised in regards to UA/Orchard implementation, that people are very comfortable with the rates he quotes. In addition, there are other features promised beside just UA/Orchard in Ywallet - getting the warp sync algorithm working for Orchard also seems like a big plus. DAG-sync from ECC may represent a boon to wallets that rely on ECC’s SDK, but there is also the possibility that warp sync may be better than DAG-sync (I haven’t seen a solid apples to apples comparison between the two). Or at the very least, it may be prudent to continue to support complementary syncing software development to increase diversity and resilience in case one falls behind or one team must be forced to pivot to other problems.

(As an aside, it seems reallyyy hard to be able to estimate how many hours it may take for any complicated project. Most budget estimates are exactly that - estimates. This is one of the reasons why many jobs are based on salary - at a certain point the job becomes too sprawling to be able to do on a per-project basis. Estimates are really hard to make accurately IMO and a lot of it comes down to trust. Trust that the applicant is making an honest effort to estimate their hours and trust that they have the competence to get the job done as best they can. Of course, there are also additional factors like competition - are there two bids to do the exact same thing with an equal likelihood of success? In that case a “bidding war” to get costs lower may occur. And while ZCG is funding 4 different wallets at the moment, I don’t think they are all promising the same thing, and I think seed funding different wallet teams is necessary to give people a chance to see different wallets in action, which would help make informed decisions about future funding for the different teams. Also, there is something to be said for diversity in perhaps the most critical product Zcash has to offer - user facing shielded wallets. What happens if one has a critical bug or one team gets pulled away for some reason? I applaud ZCG for funding these different wallet efforts, I don’t see it as wasteful.)

Lastly, I know how hard text-based, asynchronous, and public communication can be when trying to discuss something as personal as how “valuable” someone is. While we can all try to hold ourselves to a high standard of polite discourse, it is nonetheless a touchy subject that I would urge all involved to handle gracefully (in general, not saying anything is amiss here). It is also the sort of thing that I think could make use of private discussions between applicant and grants committee as text-based communication can leave out a lot of context and the asynchronous component can leave parties stewing about forum posts for hours or days whereas a phone call can consolidate the effort the discussion requires to a single event, while still allowing public review and input before final decisions are made.

Thanks for reading the long post, I hope some stuff in there is useful :sweat_smile:

5 Likes

One question, will this Orchard implementation exclusive for Zcash in Ywallet? Or is there any plan to also add Orchard for Ycash, assuming Ycash folks have intention to adopt Orchard. If so, what about Orchard licensing in regards to its use by an old Zcash fork?

Asking because I haven’t see any plan by @hanh to build a Zcash-specific wallet.

1 Like

Orchard/UA is exclusive specific to zcash. Ycash has no plans to add Orchard. @hloo, please correct me if I am wrong.

Edit: Specific may be a better word than exclusive.

1 Like

That is correct: Currently there are no plans to add Orchard to Ycash.

@hanh & Zcash Community members, I am pleased to announce that at the most recent meeting, the @ZcashGrants Committee has voted to approve the “Orchard + UA for YWallet” grant submission!

9 Likes

I can’t wait to have “one UA to rule them all”!

Thanks to @ZcashGrants and community for supporting this grant. I am looking forward to adding UA and Orchard to YWallet!

9 Likes