Git Product home page Git Product logo

opendime's Introduction

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.

opendime's People

Contributors

doc-hex avatar nvk avatar

Watchers

Alexandre Rocha Lima e Marcondes avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.