is it possible to create a real hardware Bitcoin, e.g. a specified (and verifiable) value which is stored on a smart card or RFID which can be given directly to other people?

  • 1
    Isn't this what BilBills is all about?
    – ripper234
    Sep 5, 2011 at 20:02

2 Answers 2


It's certainly possible. The card would basically need four functions: add/generate account, add bitcoins, prove bitcoins, spend bitcoins. The card could piggyback on external smart systems so the card doesn't need to do very much.

Each function would be implemented as follows:

Add Account: An ECDSA private key would either be randomly generated by the card or loaded from an external source. The card would add the key to its store of keys. This would be a secure operation that would require the card's internal key to perform.

Add Bitcoins: A list of transaction identifiers and output indexes would be loaded into the card. This would also be a secure operation.

Prove Bitcoins: This operation would prove the ability of the card holder to spend a particular number of Bitcoins. An external device specifies a number of Bitcoins to prove. If desired, approval is sought from the card holder via a PIN or similar mechanism. The card then forms a transaction to pay that number of Bitcoins but damages it so the transaction is invalid (for example, it adds a single transaction input for a billion Bitcoins). Then it signs it. The recipient, seeing the invalid transaction signed knows the card holder could have signed the corresponding valid transaction. (If desired, a challenge can be included to prove the signed transaction was generated on the spot.)

Spend Bitcoins: This is the same as the prove Bitcoins operation except the transaction is valid, the recipient commits the transaction to the block chain, and the card updates its memory to reflect that the coins are spent.

The only other thing you might need is a 'sync' operation where the card fixes any discrepancies. For example, if a spend operation is done but for some reason it doesn't make it into the block chain, the card needs to know that it still holds those Bitcoins. (And can't spend the 'change' from that transaction.)

This is a minimal implementation. You can certainly add more capabilities.


http://smartcardwallet.org/ claims to have a system where the wallet is stored on a smart card. A custom client is needed to access the wallet, but they say all software is open source.

  • 3
    Hi Martin! Please try to expand your answer so that it does not just contain a link. A couple of lines describing SmartCardWallet will make the answer much more useful to other users.
    – D.H.
    Aug 10, 2012 at 12:35
  • While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes.
    – ThePiachu
    Sep 18, 2012 at 11:54
  • 1
    @ThePiachu et al, I've updated the answer, since the link looks relevant. Jan 23, 2013 at 8:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.