{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/base167-com/json-schema/base167-com-prepared-call-schema.json",
  "title": "PreparedCall",
  "description": "A ready-to-send transaction. Submit it from the same wallet the voucher was issued for; the contract binds msg.sender.",
  "x-generated": "2026-11-02",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/base167-com-openapi.json#/components/schemas/PreparedCall",
  "type": "object",
  "required": [
    "chainId",
    "to",
    "data",
    "value"
  ],
  "properties": {
    "chainId": {
      "type": "integer",
      "const": 8453
    },
    "to": {
      "$ref": "#/$defs/Address"
    },
    "data": {
      "allOf": [
        {
          "$ref": "#/$defs/Hex"
        }
      ],
      "description": "Calldata for the action, with an ERC-8021 builder-code suffix appended after the ABI arguments. The suffix is data the contracts ignore -- it attributes the transaction to base167 on Base's builder dashboard -- and every action built here carries it, whether it came from the browser, this API or the MCP server. Send the bytes EXACTLY as given: re-encoding the call from its arguments drops the suffix, and trimming it changes nothing else about what the transaction does."
    },
    "value": {
      "type": "string",
      "const": "0x0"
    }
  },
  "$defs": {
    "Address": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "A mixed-case address MUST carry a valid EIP-55 checksum; an all-lowercase address is always accepted. A correctly-shaped address with a bad checksum returns 400 BAD_CHECKSUM."
    },
    "Hex": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]*$"
    }
  }
}