Awesome project!
So if I understand correctly, the NFC interface lets you both retrieve the public key and the atomically-destroyed private key?
It let's you retrieve both keys and atomically change the state of the firmcoin to "empty".
Are you going to integrate this with the Android wallet app? It already has some NFC support and syncs with the network every 24 hours.
It would an interesting feature, I will think about it. But we're not ready to manufacture in high volumes.
However, I must admit I am not entirely sure of the purpose. If you accept a firmcoin without checking it with your smart phone, it might be empty, so that's dangerous. And if you have a working smartphone, you could just as well do a direct P2P payment. I suppose the difference is, the payer doesn't have to have a phone, just the receiver. But is that really an advantage?
For a first security level, none of them have to be online. If you trust the manufacturer (us) then you can trust a firmcoin has coins. You query the firmcoin with a NFC-enabled smartphone and it will tell you if it has coins or not. Another version we're building has a LED that flashes when it has coins when you touch it.
And you don't even need to trust us: we've done things so that you have to trust only "ST Electronics" (at least now).
For a higher security level, you can carry with you the UXTO set of the day before (and update them once each day).
A firmcoin will only respond that it has funds if the transactions that fund the firmcoin are at least one day old.
For a higher security level, you can photograph the firmcoin and check its random features against a small database of physical features you can download from our servers.
For more security you can even query the firmcoin to prove it has a private key related to a certain public key (without the firmcoin disclosing the private key).
For even more security you can access our database online which can track which addresses are associated with each firmcoin.
For even more security you can upload the photographs of the device and we'll check the authenticity of the firmcoin against high definition images taken during the manufacturing process.
For even more security you can just extract the private key, transfer the funds using any Bitcoin client, and then send new funds to the firmcoin.
This is (IMHO) the future of off-line anonymous transactions (bills and coins),
Best regards, Sergio.