cryptoNFC was inspired by centralized NFC payments like Suica in Japan.
What it does
Using cryptoNFC, you can generate a credential based on an NFC card ID. You can use it to log into the Wavelet testnet, and send payments to others using a smart contract.
How we built it
cryptoNFC is built on the Wavelet network, using smart contracts written in Rust. The frontend is written using Arduino and Python.
Challenges we ran into
The wire format of Wavelet transactions turned out to be difficult to generate. Because there was no Wavelet client library for Python, we wrote our own.
Accomplishments that we're proud of
- Figuring out the Wavelet transaction API format
- Getting the demo working!
What we learned
- How to program a Teensy (Arduino-based) to read an NFC card ID.
- Interacting with a serial console using Python
Overall, we are coming to understand that DeFi can make an impact on us in our everyday lives. A few years ago, it seemed that cryptocurrency was impractical for most people to use. However, using technologies such as NFC, we can make cryptocurrency much more practical to use. We can start to see cryptocurrency maturing as a technology.
Unfortunately, there are significant security drawbacks to using this system. It's certainly not production ready. We need to be able to protect against replay attacks using a challenge-response mechanism. This requires more sophisticated hardware than we have at hand currently.
What's next for cryptoNFC
We would like for cryptoNFC to have a nice frontend for users to interact with. If you're a frontend dev, please get in touch with us!