• Forum has been upgraded, all links, images, etc are as they were. Please see Official Announcements for more information

Proposal: HD Wallet Project

Ryan Taylor

Well-known member
Foundation Member
This proposal is cross-posted to www.dashcentral.org/p/development-hd-wallet-201705

This proposal will provide DASH a fully-functional hierarchical deterministic (HD) wallet (https://en.bitcoin.it/wiki/Deterministic_wallet) based on the Copay platform for iOS, Android, Chrome Browser, OSX Desktop, Windows Desktop, and Linux Desktop within approximately 6-8 weeks, depending on start date.

During this project, DASH team members are expected to define, refine, and implement updates for compatibility with the HD wallet implementations. There will be additional effort required to validate and refine the product by our own in-house development team after the contractor completes its work, but this will significantly reduce the time to market without taking the team's time away from Evolution.

For those not familiar with the Copay wallet, it is a simple and easy-to-use wallet with widespread appeal in the market. The Dash version of the wallet will ensure we have a set of wallets with a consistent look and feel across various platforms with HD capabilities.

One of the main benefits of an HD wallet is described in the above link as follows... "Early clients such as the Satoshi client generate a buffer of fresh random private keys to be used as receiving and change addresses in the future. This has the effect of invalidating backups after a short period when the keypool buffer (typically 100 addresses) is exhausted. Deterministic wallets can generate an unlimited number of addresses on the fly and as such don't suffer from this issue. As the addresses are generated in a known fashion rather than randomly some clients can be used on multiple devices without the risk of losing funds. Users can conveniently create a single backup of the seed in a human readable format that will last the life of the wallet, without the worry of this backup becoming stale."

Copay wallet's main features include:
  • Multiple wallet creation and management in-app
  • Intuitive, multisignature security for personal or shared wallets
  • Easy spending proposal flow for shared wallets and group payments
  • BIP32 Hierarchical deterministic (HD) address generation and wallet backups
  • Device-based security: all private keys are stored locally, not in the cloud
  • Support for Bitcoin testnet wallets
  • Synchronous access across all major mobile and desktop platforms
  • Payment protocol (BIP70-BIP73) support: easily-identifiable payment requests and verifiable, secure bitcoin payments
  • Support for over 150 currency pricing options and unit denomination in BTC or bits
  • Mnemonic (BIP39) support for wallet backups
  • Paper wallet sweep support (BIP38)
  • Hardware wallet support (Trezor and Ledger) (only in Chrome App version)
  • Email notifications for payments and transfers
  • Push notifications (only available for ios and android versions)
  • Customizable wallet naming and background colors
  • Multiple languages supported
  • Available for iOS, Android, Windows Phone, Chrome App, Linux, Windows and OS X devices
DASH benefits by contracting with *this team*:
  • http://www.ideasbynature.com/ is an experienced team of blockchain-focused crypo-space developers
  • DASH representatives are geographically near IBN offices, and are committed to physically close interaction. We have verbal agreements for co-location of DASH full-time staff onsite to enhance collaborative efforts and speed resolution of roadblocks.
  • The deliverables will enable a single codebase of cross-platform wallet functionality based on familiar and popular front-end frameworks in a very short time-frame (much more quickly than is possible with current DASH team members, alone)
  • "Single code-base" means more features, more functionality, more stability, and less maintenance in less time on more screens by a factorial measure
  • Typical deliverables like this reduce front-end development and maintenance costs by a minimum of 4x over the life-span of the products.
  • Cross-platform testing is included in this engagement, but we are not expecting production-ready code at delivery time. DASH team members expect to fold-in and run the suite of applications through DASH QA rigor prior to release.
  • This effort is expected to provide a new "reference implementation" for our front-end Core wallet systems across all major devices, globally.
  • The Dash Core Team will also gain experience working with a new outsourcing supplier, which we can use for "flex capacity" and one-time efforts if we gain comfort with the provider.
Requested funding is as follows for the May 5th budget cycle:
  • 316.90 Dash for Copay wallet outsourcing ($25,000 USD @ $78.89 per Dash based on current rate at proposal submission)
  • 5.00 Dash proposal reimbursement
Total: 321.90 Dash

Note: Should any funding remain, we will apply it toward future development outsourcing efforts.

Manually vote YES on this proposal:
dash-cli gobject vote-many c553eba90e3cdac18a6a44f549e475032829417c811d749d37ed390be06a0518 funding yes
OR from the qt console:
gobject vote-many c553eba90e3cdac18a6a44f549e475032829417c811d749d37ed390be06a0518 funding yes

Manually vote NO on this proposal:
dash-cli gobject vote-many c553eba90e3cdac18a6a44f549e475032829417c811d749d37ed390be06a0518 funding no
OR from the qt console:
gobject vote-many c553eba90e3cdac18a6a44f549e475032829417c811d749d37ed390be06a0518 funding no
 
Statements

This is a great idea.

Please include hardware wallet support in the Android version.

I highly recommend keeping the many good attributes of Copay while eliminating the not-so-good ones.

A few weeks ago, the Copay wallet was completely redesigned, and the new user interface is quite poor. Please base your planned implementation on the older better design.

Please use a standard derivation path when interfacing with a hardware wallet. Copay does not, which has been reported to cause user confusion: https://github.com/bitpay/copay/issues/4987.

Question

Will this be an independent fork of Copay, such that future changes will cause this project and Copay to continue diverging? Or will some effort be made to keep both in sync so that each might continue to benefit from improvements in the other?
 
Excellent idea.

1)
Copay is a good multi-platforms wallet

2)
This wallet have multisignature

Is a good bridge for Dash earl-adopters
 
Oh dear, I think this is going to be a disaster.

The http://www.ideasbynature.com/ website listed concap.io as one of their projects.

So I downloaded the coincap.io Android app, and I was shocked at its many flaws. Briefly: app takes 4-5 seconds to start up; unreadable fonts; charts only linear not logarithmic; "All" charts has no time label so you have no idea how far back in time it goes; if you select "All" chart, then return to previous screen then return to chart, it resets to 1 day; no source specified for exchange rates; my test portfolio (1 BTC, 1 ETH, 1 DASH) has a chart that is identical whether I select the range as Today, 1W, 1M, 3M, 6M, 1Y, or All.
 
Oh dear, I think this is going to be a disaster.

The http://www.ideasbynature.com/ website listed concap.io as one of their projects.

So I downloaded the coincap.io Android app, and I was shocked at its many flaws. Briefly: app takes 4-5 seconds to start up; unreadable fonts; charts only linear not logarithmic; "All" charts has no time label so you have no idea how far back in time it goes; if you select "All" chart, then return to previous screen then return to chart, it resets to 1 day; no source specified for exchange rates; my test portfolio (1 BTC, 1 ETH, 1 DASH) has a chart that is identical whether I select the range as Today, 1W, 1M, 3M, 6M, 1Y, or All.

I haven't actually tried the coincap.io app and I don't intend to use it because they're owned by ShapeShit and I don't trust the slimmey gits; not least that they are underhanded and trying to create leverage from coinmarketcap. Just look at their website design to see how dirty they are. The first two apps they choose to list are both related to ShapeShit, and if the app is as bad as you say, then you're right, it doesn't bode well.

HD means there's no chance of coin mixing.

I've reversed my decision on this and voted no. I hope others come to their senses though I doubt it.
 
How does UdjinM6 github pull "HD wallet" fit into this ?

link : https://github.com/dashpay/dash/pull/1405
Should be fully compatible afaik.

HD means yet another wallet without mixing
Errr.. why? See pull request above. I would agree however that since this wallet talks to some backend and not to the network directly it's probably not feasible to implement complete PS mixing in the wallet. However with HD implemented in Core you should be able to mix in Core but you should be able to detect and spend mixed funds from any compatible HD wallet in a PS-complient way (i.e. 1. it has enough mixing rounds 2. should spend it with no change) after some (small?) additional development.
 
Should be fully compatible afaik.


Errr.. why? See pull request above. I would agree however that since this wallet talks to some backend and not to the network directly it's probably not feasible to implement complete PS mixing in the wallet. However with HD implemented in Core you should be able to mix in Core but you should be able to detect and spend mixed funds from any compatible HD wallet in a PS-complient way (i.e. 1. it has enough mixing rounds 2. should spend it with no change) after some (small?) additional development.
So, two wallets running the same seed? One mixes, the other just chases the chain up?

Interesting... Think the normies that Evolution is hunting can figure that out?

If core could share data directly to the mobile app to set this up...

I'm concerned for the utterly insecure nature of mobile OSes, and the equally untrustworthy people who create them.... I do not want my seed in my phone. Worst place to put it, ever... May as well tattoo it on my forehead.
 
Last edited:
So, two wallets running the same seed? One mixes, the other just chases the chain up?

Interesting... Think the normies that Evolution is hunting can figure that out?

If core could share data directly to the mobile app to set this up...

I'm concerned for the utterly insecure nature of mobile OSes, and the equally untrustworthy people who create them.... I do not want my seed in my phone. Worst place to put it, ever... May as well tattoo it on my forehead.
In Core you should be able to specify seed/phrase explicitly or the one will be created for you automatically. You don't have to use the same seed everywhere. You can use few wallets (i.e. few seeds): one would be your safe, HW wallet only (Electrum, apps from HW wallet manufacturer); the other one could be for relatively large transparent sums visible in multiple (open source or trusted/trustless) wallets (Core, Exodus, Jaxx, Electrum); and yet another one for small sums - mixing in Core, spending on mobile.
 
Who will be managing this project on the Core Team side?

How does this project relate to Electrum-Dash?

Is this a stop-gap HD wallet solution until Evolution launches?

we are not expecting production-ready code at delivery time
-- delivery time being 6-8 weeks.

Can you establish a delivery date for the finished product for the purpose of accountability?

Personally I think a solid HD wallet for Dash is desperately needed as soon as possible, and this sounds like it fits the bill.
 
@jimbursch It will be managed by Chuck Williams, who will be visiting the vendor location physically to oversee the project.

The project is independent from Electrum-Dash. This is a fork of a completely different wallet.

I would not describe the wallet as a "stop-gap" solution. It will represent an improvement over the current options for a general user wallet. Evolution will provide a vastly superior solution in the long-term, but some of the components of this wallet will be useful for the creation of various Evolution components.

We don't have a firm delivery date for the finished product, but it will be weeks, not months, after receiving the code from the vendor. A final release date will be dependent on getting through QA / Testing / Validation successfully, so the exact date is difficult to pin down. This is a priority for us, so we plan to release as soon as we can.
 
This is a great idea, we are also doing something similar and developing applications of any type, with the ability to pay for the most popular crypto currency. We can work with you, contact us, maybe we'll think of something)
 
Back
Top