Opendime is a small USB stick that allows you to spend Bitcoin like a dollar bill. Pass it along multiple times. Connect to any USB to check balance. Unseal anytime to spend online. Trust no one.
Acts like a read-only USB flash drive. Works with any computer, laptop, and phone. A QR Picture and Text file inside contain Bitcoin address and support.
The private key is generated inside the device, and is never known to any human, not even you!
The Bitcoin world changes fast but Opendime is built on the fundamental Bitcoin features that haven't changed in five years.
Give an Opendime to anyone and they don't need to worry that you can take back the funds later. You've got the private keys in the device.
This is physical Bitcoin as it was meant to be: just hand it to someone and they've got it. Pass it on multiple times! Simple as a handshake. No miner fees, no confirmation delays.
Uses Bitcoin message signing, normal (non HD) bitcoin payment addresses and private keys in WIF format.
Bitcoin is an innovative payment network and a new kind of money.
Electrum is a trusted open source wallet. With the Opendime beta plugin you can verify your device.
Each Opendime holds one private key. It publishes the public key (payment address) to anyone and never reveals the key until "unsealed".
Yes. It's like a piggy-bank. You must destroy it to spend the funds. At first that seems expensive and wasteful, but it's a key part of our security model: you can trust a sealed Opendime, and it's obvious when it's been opened.
Since we are putting private keys into a physical form you can trust, you can simply hand around Opendime units to move amounts around. There are no pre-defined Bitcoin amounts with Opendime either. Store as much or as little as needed.
As the founders of a successful Bitcoin web wallet and API provider— we've watched the growth of both physical Bitcoin "coins" and hardware wallets with interest. The existing options fall short of being a useful means to transact business. We built Opendime to be much more than a another hardware wallet or a physical bitcoin.
We feel that we've created whole new product category: disposable hardware wallets to be used as cash. We're really excited to see what people will do with this. Maybe we'll see whole new economies based on Opendime spring up! That might be a real godsend in some countries that struggle with limited network infrastructure and corrupt governmental systems.
This is just the beginning. We have no idea where it will go from here!
Get a few today so you can be there first!
Yes! Because Opendime emulates a tiny USB flash drive, most devices can read it already. Inside, you'll find text files with the payment address, and if unsealed, the private key in WIF format. We also provide a QR image that is easily scanned. You can also use a USB phone charger, or USB power pack, to check if it's unsealed: plug it into any USB port, and the lights flash in a pattern that indicate it's status.
We've worked hard to keep costs down. All the fat has been trimmed. At the same time, our packaging is much more rugged that it appears, and because it's clear, any tampering would be visible.
No, you still would need a third party wallet or the original Bitcoin Core P2P software to be able to move your funds in and out of the Opendime. Opendime works with any wallet that can sweep funds from the blockchain based on a WIF-format private key import.
To be able to move the funds, you must BREAK out the middle part of the Opendime. Look for the golden lock.
Once that piece has been broken out, the file contents will change and the private key will be revealed in the private-key.txt file and QR code image. There is no way back, and once unsealed, you should move the funds into another wallet.
Import the private key (private-key.txt) into any Bitcoin wallet to be able to "sweep up" the funds and spend them as needed.
There is also a python program (advanced/balance.py) which can be used to move the funds out and check balance when sealed.
Yes. Opendime is delivered without any private key. You must give it entropy (random numbers) the first time you use it. Once it's gotten enough numbers, it will hash them all together and use that to pick a random number to use as the private key. At that point, the payment address is generated and set in stone.
This whole process is very easy: just copy some files into the USB drive. When it's got enough bits (256k bytes) it will eject itself and come back with its final payment address.
The Opendime itself carries usage instructions in English. They are provided as text and HTML files that are internal to the Opendime.
Easy, just plug into any USB capable device and it will pop up a QR code image and a text file with the Bitcoin address. No additional software needs to be installed!
No. A permanent change is made inside the flash memory of the processor.
Yes, it can be connected via a USB adapter to Android phones/tables (USB OTG adapter cable required) and Apple iPads (camera kit USB adapter required). It is typically seen a photo card, containing a single image, which is the QR code. If your phone can see the HTML file on the Opendime (and allow you to open it) then you will be able to check balance and do all the other functions as well.
There are a number of ways to verify the device; first, you can click on a link shown in the index.htm file present on the device. That link includes a signed message, that only an Opendime with access to the private key can generate.
This plugin supports Opendime from inside Electrum.
Opendime transactions are a little different from blockchain transactions: Whenever two people meet and trade goods or services for an Opendime, you could say a transaction has occurred, and yet there is nothing recorded on the blockchain. This is different from a normal Bitcoin wallet which makes blockchain records continuously, and can create a complex web of connections which can later be explored by anyone.
We expect most Opendime units to be loaded once, probably with a "round number" of bitcoins, and unloaded exactly once in their lifetime. It's impossible to know what's happened in the meantime—just like a gold coin that has passed through many hands over the years.
No. The Opendime is completely read-only and cannot be changed, except by unsealing it.
Like most electronic devices, if stored properly it should last decades.
Opendime is a very safe and effective way of generating uncompromised private key. But we suggest you unseal it and make a backup of the private keys.
Yes, it's safe to setup, verify and load an Opendime on an untrusted computer. The private key is generated inside, and does not leave the Opendime itself regardless of any malware and keyloggers that may be present on the attached computer. It can also be used on iPad's and tablets, which typically see the Opendime as a single photo of a QR code, ready for scanning.
We recommend using a trusted computer after it is unsealed since the private key is in the open at that point. You would need to trust that computer anyway, since you are sending the funds from the Opendime to some other Bitcoin address and you don't want that to be manipulated.
There is no password, nor seed phrase! It's locked in until physically unsealed.
There is no way to input data as the drive is read-only. Also, a new random nonce is signed each time you power up device. You can also plug/re-plug to get a new nonce and matching signature.
There is never any need use any centralized service with Opendime. It does provide convenient links to existing third-party "block chain explorer" services and this site, but there is absolutely no need to use those.
Any bitcoin wallet that is monitoring the blockchain can be used with Opendime. Opendime itself even carries a simple python program that can be used to verify balance and spend funds (once unsealed). That python code uses a diverse set of public services for blockchain access and does not require API keys or other identifying features.
When you first plug in a new Opendime, it has no private key. It shows up as a writable drive and the user must copy files onto the drive. They are immediately forgotten, but the the file contents are hashed (SHA256). It's the hashed output of that which forms the private key (along with the unit serial number and entropy we derive from the environment). That happens as soon as 256k worth of bytes have been written to the drive. The private key is created and the drive "ejects itself" and comes back read-only and in "normal" mode... only the public key is shown until unsealed.
You can actually prove to yourself that we cannot know the private key. The process for this verification can only be done after the unit is unsealed, and requires a verbatim copy of the original data written. Plus, you'll need to precisely control what is written to the drive, which cannot be done with higher-level commands to load entropy (so drag-n-drop will not work).
In summary, the process is as follows: take a new Opendime, power it up and precisely write 256k of known bytes to it (ie. use dd to write it starting at block zero). The unit will pick a private key as normal. Unseal the Opendime (break the tab), and run the file advanced/rngverify.py with Python. That file is a simple program that contains the (previously) unknown entropy value from the Opendime, and it checks that your entropy is hashed into the secret key. Effectively, it re-creates the entire key-picking process and to demonstrate we used exactly that process. Because it's just 75 lines of python, it's very easy to audit.
As you will see, the secret exponent of the private key is the double-SHA256 of these values concatenated: (the 256k bytes from you) + (128-bit serial number of the Opendime in base32) + (32-byte nonce picked by Opendime's RNG).
See our source code on github for a complete and executable example.
Opendime is different from Physical Bitcoins by Casascius, and other 'metal bitcoin' products, because the private key is never known by the manufacturer or mint. With Opendime, the key is generated at the time of setup by the user, and is not known by anyone, anywhere—not even the first owner.