POSTCARD

API

Public reads are JSON with open CORS. Writes need a wallet session (a signed message, never a transaction).

MethodPathWhatAccess
POST/api/looksFly to an address: { address, save? } → the pin, the place, the recent Sentinel-2 scenes or yesterday's VIIRS pass. Saving needs a session for that wallet.30/min per IP
GET/api/spots?limit=&before=Saved spots, newest first, with their postcard counts.public, CORS
GET/api/spots/{n}One spot with its postcards.public, CORS
GET/api/spots/{n}/mailboxA spot's postcards, newest first.public, CORS
PUT/api/spots/{n}/compositionThe owner's postcard design: { scene, zoom, colour, message }.session
GET/api/wallet/{address}The spot a wallet saved, if any.public, CORS
GET/api/globeEvery saved pin, and the share of land cells with a holder.public, CORS
GET/api/coinThe coin's mint (empty before launch).public, CORS
POST/api/auth/nonceStart sign-in: { address } → a message to sign.20/min per IP
POST/api/auth/verifyFinish sign-in: { address, message, signature } → session cookie.20/min per IP
GET/api/meYour session, phase and saved spot.session
POST/api/auth/logoutEnd the session.session
POST/api/admin/checkCheck the mailboxes now: { n? }.admin token

Try /api/globe or /api/spots.