The public ledger.
emem.dev is the open, free Earth memory commons. A signed, content‑addressed spatial memory where every place‑time resolves to a verifiable fact, read over MCP or REST, no keys, no account. geo.qa is built on it, speaks it, and extends it.
Chapter I
An open memory of the Earth.
emem.dev fuses open Earth observation into one addressable record. Every place‑time resolves to a fact, every fact ships a receipt, and you read it over the same MCP an agent already speaks.
Most spatial data lives behind a tile server or an API key, and what comes back is pixels, not answers. emem.dev inverts that. It treats the planet as a memory: a grid of stable cell64 addresses, and against each one a stack of dated, ed25519‑signed facts an agent reads and quotes directly.
Forty‑six open source schemes feed it. Sentinel‑2 every five days at ten metres, Sentinel‑1 radar through cloud, MODIS greenness on an eight‑day beat, ERA5 weather daily, Hansen forest loss once a year. One hundred and sixty composition algorithms turn those measurements into named bands. The result is a single record you query by place and time, not by file.
You read it over MCP, the same tool protocol your model already uses, or plain REST. No keys for the public commons. And because every answer is signed, you do not have to trust the server that served it. You check the math yourself, offline.
| Open source | Writes into the memory | Resolution | Cadence |
|---|---|---|---|
| Sentinel-2 L2A | multispectral surface, indices | 10 m | ~5 day |
| Sentinel-1 SAR | all-weather radar, structure, moisture | 10 m | 6–12 day |
| MODIS NDVI | vegetation greenness | 250 m | 8 day |
| ERA5 | temperature, wind, precipitation | 0.25° | daily |
| Hansen GFC | forest loss year, cover | 30 m | annual |
| JRC surface water | water occurrence, recurrence | 30 m | monthly |
| Met.no | near-term weather fields | station | hourly |
| FIRMS | active fire detections | 375 m | daily |
| CAMS | air quality, aerosols | ~40 km | daily |
| SoilGrids | soil properties | 250 m | static |
| Overture | building footprints, places | vector | on release |
Chapter II
cell64, the open address.
The commons names every place with a 64‑bit integer: cell64, a patch about 9.55 m on a side at the equator, the width of one Sentinel pixel. It is the open base. geo.qa adds H3‑resolved addressing on top.
cell64 is deliberately simple: a flat integer anyone can compute in a few lines, on a grid that lines up with the Sentinel pixel pitch. That is the open base. On top of it, geo.qa resolves the same places through H3, so a private tenancy can address neighbourhoods, roll a city up one resolution, and join across scales. It still emits receipts in the open format, so public and private cite the same way.
Chapter III
Public flows in, private never flows out.
The open commons and your geo.qa tenancy run the same protocol. The proofs are identical down to the byte. What differs is the licence and the boundary, and the boundary only lets data in.
| Open · emem.dev | Your geo.qa tenancy | |
|---|---|---|
| Licence | Apache-2.0, public | tenant-private, yours |
| Addressing | cell64 · 64-bit grid | H3-resolved, multi-res |
| Hash | BLAKE3 | BLAKE3 |
| Signature | ed25519 | ed25519 |
| Receipt | canonical CBOR | canonical CBOR |
| Offline verify | yes, against the public key | yes, against your key |
| Sources | open EO only | open EO + your fleet |
The cryptography is the same on both sides: same hash, same signature scheme, same receipt encoding. So a single agent reads a public fact and a private one in one answer and proves both. The only asymmetry is direction. Open Earth observation flows into your tenancy, and nothing from your tenancy flows back out.
What flows in
the public commons, free to consume
- ◇Open EO. Every one of the 46 schemes, already composed into bands and signed.
- ◇The protocol. Same MCP tools, same REST shape, same receipt format.
- ◇Public proofs. Citeable from inside your boundary without a callback.
What never leaves
your tenancy, by construction
- ◇Your fleet. The facts your own sensors write stay in your memory.
- ◇Your keys. Writes are capability-bound under your attester pubkey.
- ◇Your models. Trained and served inside the boundary, airgapped.
Chapter IV
Free to cite.
A proof is only worth something if anyone can check it. On emem.dev anyone can, including people who never signed up. One content id resolves the same fact and the same signature on every machine that asks.
# anyone can verify a receipt, offline, no account import requests, emem # 1. fetch the public key once key = requests.get( "https://emem.dev/.well-known/emem.json", ).json()["pubkey"] # 2. check the signature against the bytes, no callback ok = emem.verify_receipt(receipt, key) assert ok # ed25519 over canonical-CBOR · BLAKE3
Read the open ledger.
Resolve a cell, read the fact, check the signature. No login, no callback, no trust in the server that answered. geo.qa is the private upgrade that cites the same way.
geo.qa · a vortx ground decoder · emem.dev open protocol