Opendime is a small USB stick that allows you to spend Bitcoin like a dollar bill
HTML Python CSS
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
LTC-v2.3 Add v2.3.0 of Litecoin product Oct 18, 2017
v1 Directories re-organized Feb 6, 2017
v2.0 Add v2.0 vs. v2.1 May 25, 2017
v2.1 Capture a reference v2.1 unit May 25, 2017
v2.2 Add V2.2 snapshot Jul 24, 2017
whitepapers Add 'ct' for coin type Oct 18, 2017
.gitignore Add V2.2 snapshot Jul 24, 2017
README.md Update README.md May 25, 2017

README.md

OPENDIME

Opendime is a small USB stick that allows you to spend Bitcoin like a dollar bill. Pass 'em around!

What's here?

This is a copy of contents of an example Opendime unit running the latest version of the firmware. You can use this to look at how it works, and to read the open-source code we provide.

There are three states for an Opendime:

  • New unit (does not have a bitcoin address yet)
  • Sealed (normal; has a payment address)
  • Un-Sealed (private key is revealed; sweep your funds)

Because there are major difference between version 1 and 2, they have been placed in different directories.

How to view?

Clone this repo and look in the new directory. That's exactly what you would see on the Opendime when you first plug it in. For example, on MacOS, this would be exactly the contents of /Volumes/OPENDIME.

In this example, we copied entropy.bin onto the drive to help it pick a random private key. Once that's done, the disk drive will look like sealed and that's how you'd use the Opendime most of the time.

Finally, look at unsealed to see what it looks like when you break the tab on the Opendime. The private key is revealed, and in combination with the original entropy file, you can verify we picked the private key in the manner we asserted.

Checking the private key math

To prove we are using the algorithm we claim, perform these steps:

pip install pycoin
cd unsealed/advanced
python rngverify.py ../../entropy.bin

Of course, you should also contemplate the python code in rngverify.py ... but it's pretty simple and only 75 lines.

What else is there to see?

You can unzip support/pycode.zip file to see the simple balance check and spending code, written in python.