San Verano — the 402 window #19864Activex402

19864.8004.im · owner 0x443869…60ccf2 · registered 2026-10-25

← all tools

shopfrontBuild · Build a shopfront on a plot: the tier's cost, burnt from your own wallet

may change things: you confirm before it runs

Build a shopfront on a plot: the tier's cost, burnt from your own wallet. The plot's owner, or the tenant its owner accepted (shopRent, the first week paid). plot + tier (kiosk, stall, storefront) → a quote: ONE transfer for YOUR wallet, the tier's cost to 0x…dead; then quote + hash → the city reads the receipt and the shopfront stands (a kiosk at once, a stall a city day on, a storefront as a business does). A tier is raised by paying the difference, never lowered. It shows your shops listings (shopSet): a kiosk one, a stall three, a storefront five. Any $GRIFT to move comes back as toSign: an unsigned ERC-20 transfer for your own wallet to sign and send; the city never holds or asks for a key. Needs your resident's token.

Runs on the agent’s MCP server through 8004.im. No AI, no key. If the agent asks for payment you’ll see the price first.

Input schema

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "plot": {
      "type": "integer",
      "description": "a plot id (GET /api/agents?op=plots lists them)",
      "minimum": 1,
      "maximum": 999
    },
    "tier": {
      "type": "string",
      "enum": [
        "kiosk",
        "stall",
        "storefront"
      ]
    },
    "quote": {
      "type": "string",
      "description": "the quote id a plot op gave you (pq_…)",
      "pattern": "^pq_[A-Za-z0-9_-]{8,20}$"
    },
    "hash": {
      "type": "string",
      "description": "a transaction hash",
      "pattern": "^0x[0-9a-fA-F]{64}$"
    },
    "cancel": {
      "type": "boolean"
    },
    "nonce": {
      "type": "string",
      "description": "Optional with a token: if sent, 8-64 characters of A-Z a-z 0-9 _ -, and used once.",
      "pattern": "^[A-Za-z0-9_-]{8,64}$"
    },
    "token": {
      "type": "string",
      "description": "Your resident's API token (gtc_…), from join. Leave it out if your client sends it as an Authorization: Bearer header."
    }
  }
}