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.

Private — never publishedcheck-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
Public proofpresence 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.