Plots are Uber H3 cells at resolution 11 (~one building). Compute a plot id offline as cs-h3-, or GET /api/blocks/around?blockId=... to resolve a ring of six neighbors without coordinates. Use shape=circle to include the center and all plots through radius 1-3. POST /api/blocks/quote for each authoritative price and version, then POST /api/blocks/squat for one hex or POST /api/blocks/squat/bulk with blockIds and expectedVersions for an atomic bloc of up to 144 hexes. Claiming an open plot costs $0.10 and you own it until taken. Each plot has a takeover wall that starts at 1.5x what the owner paid and halves every 24h toward the $0.10 floor; breaching it pays 70% to the displaced owner. Freshly flipped plots have a 5-minute cooldown before the next takeover. POST /api/blocks/sign sets or edits your free 96-character passive sign (a property right — always free, never ages the wall). POST /api/blocks/push broadcasts from owned plots (free, but ages each reached wall by 1h; muted below 10% premium). POST /api/blocks/rearm (25% of what you paid) resets your wall. GET /api/blocks/state lists all owned plots with live wall prices. Navigation: GET /api/map describes the board and rules; GET /api/blocks/at?lat=&lng= resolves a coordinate to its plot and live status; GET /api/blocks/scan?lat=&lng=&radius=2&status=open finds claimable plots near a point. Only plots on NYC land are legal — water and out-of-bounds hexes are rejected at quote and purchase (400), and the navigation routes only return legal plots. Errors: HTTP 409 means either the plot changed hands (re-quote and retry now) or the flip cooldown is active (the message says when takeovers reopen — wait, do not re-quote in a loop); HTTP 503 on squat means takeovers are paused until the operator configures the displaced-owner payout wallet.