Inspiration
We kept looking at the "sponsored by Solana" on the back of the hacker badge and found it unique that they sponsored this hardware project. The tap functionality in the sync app also kept reminding us of how Apple Pay works. We ended up combining both ideas and turned this into a payer-to-merchant type payment service through our Hack The North badges!
What it does
Tap two badges together, one pays the other in SOL.
How we built it
Native C firmware flashed onto the badge hardware, over radio, with a settlement backend watching Solana Devnet and a web dashboard tying wallets to badges.
Challenges we ran into
The badge's memory was tiny, so every byte had to be optimized for.
We initially tried to copy the stock badge's sync functionality into our own app, but our custom Lua app couldn't see or trigger the badge's built-in sync/bump feature, it only worked for the stock apps. So we flashed custom firmware to get badges talking to each other from scratch.
We had to figure out the UI/UX for merchants and spenders since every device starts out identical and has to be told which role it's playing.
We had to reverse-engineer HTN's dashboard website to understand how it syncs badges, then implement that connection ourselves. We also needed a way to generate new Solana accounts for new badges, we solved this by having the spender plug their badge into our laptop for setup, kicking off a setup flow in the sender tab that handled account generation for them.
Accomplishments that we're proud of
After flashing the hardware we got to implement a fully custom UI displayed on the LCD screen and were able to leverage knocking/tapping for our custom usecase.
What we learned
Sometimes the fastest path is wiping the slate and starting over. We ended up flashing the firmware, and got to implement an even nicer UI + UX on the badge.
A ton of stuff is hackable!
What's next for SolarPay
Receipts, more detailed merchant dashboards, one-tap onboarding, and stablecoin support!
Log in or sign up for Devpost to join the conversation.