{"spec":"geo.door.v1-draft","start_here":"/api/catalog \u2014 what is for lease and how to bid, claim and verify","mcp":"https://geolithicintelligence.com/mcp \u2014 this door as MCP tools (streamable HTTP)","market":{"GET /api/catalog":"the offer: strata, terms, reserves, how to bid and claim","POST /api/bid":"{addr, amount_degrees[, salt]} \u2192 a receipt with claim_url","GET /api/claim":"the receipt's claim_url, after the gavel \u2192 the lease","GET /api/rent":"the public roll, every strike with its chain identity; ?iso= one record","GET /api/address":"?lat=&lon=&level= \u2192 the address under a place","GET /api/ground":"?addr=[&tick=] \u2192 where an address stands, and its drift"},"the_earth":{"GET /api/tick/latest":"the newest tick: state, census, poles, frame; ?slice=2..7","GET /api/tick/{iso}":"one tick, recomputed from its anchors","GET /api/panel":"the nine-model panel \u2014 the census the models agree on","GET /api/geo/latest":"the magnet, measured","GET /api/grav/latest":"the tide","GET /api/entries":"the atlas's entries and their archives"},"the_ledger":{"GET /api/commitments":"digests and links of every record, in commit order (not time order); ?kind= filters, ?seq= one link, ?from=&to= a range","GET /api/rent?iso=":"a rent record's content with its chain identity \u2014 the one kind whose content is served; tick, census, poles, frame and magnet records are digests-only by choice","GET /api/skill":"the forecast grades"},"this_machine":{"GET /api/health":"alive, the head, the budgets","GET /api/ops":"the operator's console as numbers"},"verify":{"envelope":"sha256(utf8('addr|level|start|amount|salt')) with the '\u00b7' in addr, level as digits, start = term.start, amount = the receipt's amount_degrees, salt lowercase hex","record_digest":"sha256 of the record's canonical JSON without 'chain': sorted keys, separators (',',':'), non-ASCII escaped as \\uXXXX, ASCII bytes","chained":"sha256(prev_chained + digest) over the two hex strings; prev_chained is the 'chained' of /api/commitments?seq=<seq-1> (a one-element list inside the usual body)","lease_hash":"sha256 of the lease's canonical JSON without 'lease_hash', same canonical form","rent_to_rent":"a rent record's prev.digest is the previous rent record's digest"},"clock":"one tick = 240 s; a bid is for the next tick boundary; the gavel strikes half a second after it"}