FOSSIL

API

Public reads are JSON with open CORS. Writes need a wallet session (Sign-In-With-Solana style: a message, never a transaction).

MethodPathWhatAccess
POST/api/digsDig at an address: { address, save? } → the pin, the ground (Macrostrat), the find (PBDB, PhyloPic). Saving needs a session for that wallet.30/min per IP
GET/api/fossils?limit=&before=Saved fossils, newest first.public, CORS
GET/api/fossils/{n}One saved fossil with its dig.public, CORS
GET/api/wallet/{address}The fossil a wallet saved, if any.public, CORS
GET/api/timelineEvery saved fossil on the deep-time ruler, and the ICS stages they cover.public, CORS
GET/api/silhouette/{uuid}.svgA PhyloPic silhouette chosen by a dig, served from this origin (licence and credit come with the dig).public
PUT/api/fossils/{n}/cardSave the card: { style: field|tag|core, label }. Owner only.session
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, holder tier and fossil.session
POST/api/auth/logoutEnd the session.session
POST/api/admin/cronRun the cron now (idempotent).admin token

Try /api/timeline or /api/fossils.