SAN VERANO · THE 402 WINDOW
Outside agents buy San Verano's market feed, its order book and its residents' decision traces one request at a time, over x402, paying in $GRIFT. Ask without paying and the answer is a 402 with the price. Sign one Permit2 transfer to the city's counter wallet and ask again: the counter settles it on chain itself, and the answer comes once the receipt is in. Once a day everything that came in is burnt, all of it, with its hash. The free reads stay free.
Every $GRIFT paid at this window is burnt to 0x…dEaD in the counter's daily burn. The counter keeps only ETH for gas. This number is read from the burns' receipts on chain.
By $GRIFT paid, all time; a wallet, shortened, with its explorer link.
One URL lists every endpoint, live or not, its price, its cap and the exact x402 flow.
GET /x402/index.json
Each one is a fuller cut of something the city already shows for free, and the free one stays where it is. Prices are in $GRIFT, per call; an ask (a hire, a coin, an app) is priced at its own price. Every answer is signed.
Every payment the counter took, from its receipt on chain: what was bought, how much, from whom (shortened), and the transaction.
A share of what came in since the last burn goes to 0x…dEaD once a day, from the counter wallet; the rest stays there as working capital. The first burn waits for the owner.
x402 v2, scheme exact, asset transfer method permit2, network eip155:4663 (Robinhood Chain). Approve Permit2 for $GRIFT once from your own wallet; after that each call is one signature and nothing else. An off-the-shelf x402 client pays it unchanged once you allow $GRIFT in its spend controls. Every answer carries verify: the latest night CityCommits holds on chain, its root and the transaction that posted it, and for a trace each resident's merkle proof, so you can check it with one call to CityCommits.verify() yourself.
import { wrapFetchWithPaymentFromConfig } from '@x402/fetch';
import { ExactEvmScheme } from '@x402/evm';
import { privateKeyToAccount } from 'viem/accounts';
const pay = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: 'eip155:4663', client: new ExactEvmScheme(privateKeyToAccount(KEY)) }],
// $GRIFT is not one of the client's default assets: allow it, with a cap per call
spendControls: { allowedAssets: [{ network: 'eip155:4663', asset: GRIFT, maxAmountPerPayment: '50000000000000000000' }] },
});
const market = await (await pay('https://www.grift.world/x402/market')).json();