Bitcoin.org icon indicating copy to clipboard operation
Bitcoin.org copied to clipboard

A noob friendly desktop Segwit (BIP-49) Bitcoin Wallet

Open Cobra-Bitcoin opened this issue 3 years ago • 7 comments

Hey guys, I've been working on a new desktop Bitcoin wallet the past month that defaults to P2SH wrapped Segwit out of the box and is basically orientated to be very noob friendly. So far almost all of the code is complete, with the only things left being to add some tests, get the strings translated, and have a professional designer improve the look and feel (I'm not really good at design so it looks kind of... minimal?). The code is in Typescript and it uses Vue.js as the Javascript framework. It's built for Electron, so it'll be able to ship to Windows, Mac and Linux easily.

I've been pretty unhappy with the desktop wallet offerings for a while now, I feel like they all do "too much" in some way or another, or they're re-hashed versions of existing mobile wallets like the BitPay wallet. My goal with this wallet is to create something that doesn't support every feature under the sun, is well designed, built and aimed for desktop, and has a strong focus on internationalization (currently the Spanish translations are just Google translated, so don't judge too harshly, though I want to have support for at least 5 languages at launch, and keep adding as many as we can, luckily we already have a really good translation team that can help out).

The wallet backend is powered by our own ElectrumX servers. The user gets the standard 12 word seed phrase to keep secure, and it works like most HD wallets in that used external addresses are never shown again. There's no custom fee selection, because newbies shouldn't be setting their own fees, instead there's only 3 options for fee level that they can select from (low priority, standard, and important). It can also handle various international number formats, so a user in England can type in to send '£20.5' and a German user can type in '€20,5' and both will display the correct BTC amount when they're trying to send. There will never be support for Multi-sig, RBF, custom UTXO selection, watch-only addresses, and all that other stuff that most people don't actually need.

All the development is open source and you can follow along here: https://github.com/bitcoin-dot-org/Bitcoin-Wallet. Ultimately my philosophy with this wallet is removing features, or at worst, adding features but doing it invisibly. For example if we want to add Lightning in the future one day, it would have to be done in a way such that the user doesn't have to know anything about Lightning and can just keep using the wallet the same way without altering their behavior. Right now I'm the only one working on the wallet, but some outside contributions would be appreciated, especially in helping me write a good test suite.

Cobra-Bitcoin avatar Aug 23 '20 00:08 Cobra-Bitcoin

Good philosophy. I'll add Japanese translation later.

cryptohakka avatar Aug 23 '20 14:08 cryptohakka

@cryptohakka Awesome! Japanese translations would be really appreciated, the list of strings are here: https://github.com/bitcoin-dot-org/Bitcoin-Wallet/blob/master/src/lang/en.ts.

Just one question about Japanese: I've read that units of 10000 Yen are represented with the 万 character, so someone typing 10万 would equal 100000 Yen, is that correct? I'm wanting to handle that in the wallet, so if it sees that character when the user is in the Japanese language, it can convert the Yen into the correct BTC amount.

And yeah, the goal is to be a starter wallet for new users. Rather than doing everything, it does the basics, and if they want more (which most won't), they can use some of the more feature packed wallets. Doing it this way also lets us really kick ass with the design, since we won't have to design around so many features and a complex UX.

Cobra-Bitcoin avatar Aug 23 '20 15:08 Cobra-Bitcoin

@Cobra-Bitcoin Thanks! Beginners will need simple wallet as you say. They don't need complicated features. Your thought about Japanese currency symbol is almost correct. "万" means ten thousands. "円" means Yen and this is Japanese currency symbol. 10,000 Yen and 100,000 Yen are expressed in Japanese as follows.  10,000 Yen = 1万円  100,000 Yen = 10万円

cryptohakka avatar Aug 24 '20 16:08 cryptohakka

Good news, we're getting professional design work done to improve the wallet, which will start next week.

While that's being done, I'm going to set up some ElectrumX servers and put them behind a load balancer, since right now everything is running off of just one ElectrumX server.

Cobra-Bitcoin avatar Sep 04 '20 18:09 Cobra-Bitcoin

@Cobra-Bitcoin Do you plan to add the strings on Transifex? What's a preferred way to submit translated strings? A PR to src/lang/?

pavlenex avatar Oct 17 '20 15:10 pavlenex

@pavlenex Yeah, it will be added to Transifex.

For now it's easier to do it as a PR, but keep in mind that although 80% of the strings will stay the same, there will be some change in the next week of parts of the text, so it's better to wait after that, so the text can be translated correctly all at once.

Cobra-Bitcoin avatar Oct 17 '20 15:10 Cobra-Bitcoin

Just to update:

The mobile version will go into the app stores shortly. From there we need to verify it's actually safe, so unfortunately, before we have it up on bitcoin.org, the people who discover it on the app store by themselves are the guinea pigs. Once it's on the stores, let's keep it lowkey, we don't want too many people running this until it's rock solid. Since the desktop version uses the same wallet code, once the mobile wallet is confirmed solid, we'll know it's OK too.

It won't skip past the normal review process for a wallet that gets listed on bitcoin.org, and I'm looking forward to @crwatkins grilling it.

Cobra-Bitcoin avatar Jan 20 '21 08:01 Cobra-Bitcoin