GeoPass Token Tower: cities benefit from active citizens
ExperimentsA solar-powered, LTE-connected token kiosk that rewards people for showing up somewhere, with a zero-knowledge proof keeping the where off the blockchain.
Journey
Experiments
Tests, prototypes, and proof of conceptsGeoPass Token Tower: cities benefit from active citizens
A solar-powered, LTE-connected token kiosk that rewards people for showing up somewhere, with a zero-knowledge proof keeping the where off the blockchain.

Background
GeoPass started as a Team Zero research thread. The question was whether geo-tracking could be turned around: instead of a handful of companies quietly building profiles from your location, what if you could earn something for showing up at the park cleanup or the council meeting, without anyone getting to keep a record of where you've been. T.J. Chmielewski and I sketched the use cases (park capacity zones, citizen tokens, local business incentives) but for a long while it was just an idea and a deck.
Then I got my hands on a Sony Spresense. Onboard GNSS, an LTE extension board, low enough power to run on a small solar panel. That, plus the Spresense developer challenge on Hackster, gave me a nice set of constraints to finally build the slimmed-down version.
What it is
A "Token Tower." A little kiosk you'd install in a park or at a point of interest. You walk up, press the big illuminated button, hold up the QR code for your crypto wallet, and it grants you an ERC20 Community Token for being there. No app to install, no phone to track. Cities could put out hundreds of these since they run entirely off solar.
The rewards side is just a punch card, applied to any square inch of the planet. The boring accounting part is where a blockchain actually shines. The catch is that blockchains are completely public. A rewards program on-chain would let anyone see how many tokens you have and everywhere you earned them. That's the privacy problem this project exists to solve.
How it works
The tower posts your wallet address and its own GPS fix over LTE to a small API running on Cloudflare Workers. The API generates a zero-knowledge proof that the coordinates fall inside the approved region, using circuits written in the Circom DSL (Groth-16, with the one-time trusted setup ceremony, based on the ZKMaps work). A validator contract on Polygon checks the proof before the token contract hands anything out. The chain sees that a valid proof happened. It never sees the location.
Regions are rectangular for now. Most parks aren't, so arbitrary contiguous shapes are on the list.
The parts
Spresense main and LTE boards, a Voltaic 6W solar kit, a SparkFun 2D barcode reader for the wallet QR codes, an Adafruit illuminated push button (the funky triangular sci-fi one), and an AYL mini speaker so it can make a noise at you. The enclosure is three snap-together pieces printed on my LulzBot Mini 2: a solar top plate, a battery bay, and a base with cutouts for the scanner and button, meant to sit on an in-ground post about three or four feet up. Cloudflare, Infura, TruPhone for the IoT SIM, Hardhat and OpenZeppelin for the contracts.
Where it landed
Work in progress, and I said so in the writeup. Done: the concept and architecture, the enclosure, the API deployed to Cloudflare, the ERC20 contract, and a Spresense firmware app that POSTs to the web service over LTE. Not done: triggering the QR scan from the button, generating the ZK witness in the API, and wiring the validator contract to the token contract so the whole loop closes.
Things I learned
- Don't assume CircuitPython. The Spresense build is missing core modules, LTE among them. I burned most of the contest trying to fix and build the missing pieces before giving up and writing a NuttX app in a fork of the Spresense SDK instead.
- The hardware might actually be the easy part. Four systems (device, API, contracts, ZK circuits) that each work on their own is still not one system that works.
- A public ledger plus a ZK proof is a genuinely good fit for civic rewards. The idea held up better than the schedule did.
Full build, schematics, 3D files, and code on Hackster. The research side is on the Team Zero project page.