Proof / Protect
Presence, without surveillance.
Behind every record is a person.
GeoPresence has to prove you were somewhere without publishing where you are. Type any coordinates — this page never asks for your real location — and see the split it makes, using the same rules as the GeoPresence check-in service.
Try it
One check-in, two records.
check-in claim- lat, lng
- —Exact reading, kept for anti-cheat review
- accuracy
- 25 mMeasured by the device
- signature
- The wallet's signature over a one-use challenge
presence proof- tileId
- —Rounded to 0.001° — about 110 m across
- publicRegion
- —Rounded to 0.01° — about 1.1 km
- locationHash
- —Salted: can't be reversed without the server's secret
How each public field is made
tileId is world: followed by latitude and longitude, each multiplied by 1000 and rounded. publicRegion rounds each to two decimals.
locationHash is SHA-256 over the sorted JSON of three parts: a salted hash of the latitude, a salted hash of the longitude (each to five decimals) and the tile. In production the salt is a server secret, so nobody can rebuild the hash by guessing coordinates. This demo uses a public stand-in salt, demo-salt, so its hash will never match a real one.
Honest note: a 110 m tile is precise enough to place someone on a city block. The code marks this tile as a first version; coarser XYO World tile IDs are planned to replace it.