Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Machine Readable walletsrecovery.json file #138

Open
wants to merge 15 commits into
base: master
Choose a base branch
from

Conversation

seljuck
Copy link

@seljuck seljuck commented Oct 26, 2020

This is an initial attempt at a machine readable json file for bitcoin wallet recovery programs to have access to.

The following known issues need to be addressed in this version.

Only the hardware wallets are included
ColdCard's m/48' derivation path has a script type that I could not verify..
Should there be an array of firmware versions?
For example the CoboVault introduced PSBT in firmware 1.3.0 but the table says it's not supported.
If the array is added, which fields should be in the array and which should be single keys per wallet?

@nvk
Copy link
Owner

nvk commented Oct 27, 2020

Looks fine, for now I think we should just mirror everything that us on the markdown.

ColdCard's m/48'

it doesn't restrict 48 supported.

Should there be an array of firmware versions?

Would be great but really hard to maintain.

If the array is added, which fields should be in the array and which should be single keys per wallet?

for now KISS, lets just mirror. IF this website becomes JSON driven that we can have more options.

@seljuck
Copy link
Author

seljuck commented Oct 27, 2020

Ok, I will move forward with adding the rest of the wallets from the markdown version.

I'm not sure I understand your answer on m/48'.
Did I put the right script in? Or are you saying any script can be used in that path?

Thanks

@nvk
Copy link
Owner

nvk commented Oct 27, 2020

You did it correctly :)

@Giszmo
Copy link
Contributor

Giszmo commented Nov 24, 2020

May I suggest to not "mirror" stuff but to migrate to something more advanced altogether? For walletscrutiny.com I use Jekyll and I love it. And GitHub.io also loves Jekyll but (so do I) compiling Jekyll is trivial, too ;)

I hadn't known about Jekyll before starting walletscrutiny so at the risk of explaining what you all know anyway (after all Jekyll is a dinosaur), let me show you:

In summary, if walletsrecovery wants to provide the data in a more accessible way, it should use yaml and not JSON ;)

Instead of a long file containing

		"wallet": "BitBox02",
		"passphrase": "optional",
		"gapLimit": 20,
		"psbt": false,
		"paths": [{
				"path": "m/44'/0'/0'",
				"script": "p2pkh"				
			},
			{
				"path": "m/49'/0'/0'",
				"script": "p2wpkh-p2sh"
			},
			{
				"path": "m/84'/0'/0'",
				"script": "p2wpkh"
			}			
		]
	},

we would have a file

_hardwarewallets/bitbox02.md with the content:

---
name: BitBox02
url: https://shiftcrypto.ch/bitbox02/
logo: BitBox.png
doc:
  - "https://guides.shiftcrypto.ch/bitbox02/advanced/backup-recovery/"
  - "https://guides.shiftcrypto.ch/bitbox02/advanced/backup-recovery/#someDifferentLink"
privacy:
  - "You connect to a full node of the provider without using TOR by default"
  - "You get it shipped to your home address"
passphrase: optional
gapLimit: 20
psbt: false
paths:
- script: p2wpkh-p2sh
  path: m/44'/0'/0'
- script: p2wpkh-p2sh
  path: m/49'/0'/0'
- script: p2wpkh
  path: m/84'/0'/0'
---

Optionally some blabla if you want to render a page per item with further observations ...

Anything in the doc section could automatically trigger the ✅, Anything in the privacy section would trigger the 👁, etc.

@seljuck
Copy link
Author

seljuck commented Nov 27, 2020

That's sounds like a very interesting solution. Obviously this is up to @nvk on how to proceed. I'm just about finished with the JSON file, so I will do another pull request on that. How to proceed going forward can be discussed with the JSON file available to look at.

@nvk
Copy link
Owner

nvk commented Nov 27, 2020

I like the idea still struggling with keeping this site simple stupid so that is always up to date. The json file is great, but someone will need to keep it up to date. And I don't have bandwidth to code this up as a dynamic site based on the json doc. Data duplication is never a good idea. :/

@Giszmo
Copy link
Contributor

Giszmo commented Nov 27, 2020

I'd donate $100 to get this migration done. I could ask a guy who helped me with WalletScrutiny.com who will probably do this for that price. I'd prefer to fund a bitcoiner though, so if anybody wants to volunteer, ... the bounty stands.

As Jekyll is already being thrown at the code provided by GitHub, the job description would be:

Migrate data from the four tables into individual files in the _wallets folder such that

  • each wallet with its details written out can be found under /wallets
  • the main page should be rendered from that data
  • with tooltips on the icons

To have all wallets in one folder, a discriminator would probably be good and to make it as easy to edit for new people, comments should be added, too. A fan of a new wallet should easily be able to copy an existing file and figure it out from there.

type: hardware # may be hardware, software, lightning or combo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants