{
  "openapi": "3.1.0",
  "info": {
    "title": "BitBooth — Paid x402 Endpoints",
    "version": "1.0.0",
    "description": "OpenAPI 3.1 spec for the /v1/cdp/* paid endpoints only. Companion to /bazaar.json (machine-readable catalog) and /bazaar (human-facing HTML). Each endpoint accepts pay-per-call settlement via the x402 protocol. Default settlement: USDC on Base mainnet. See accepts[] in each 402 response for the full multi-chain list (USDC on Solana, XRPL, and Stellar, plus RLUSD on XRPL). Native XRP and XLM are not advertised.",
    "contact": {
      "name": "BitBooth (Heinrichs Software Solutions Company)",
      "url": "https://app.heinrichstech.com"
    },
    "license": {
      "name": "MIT",
      "url": "https://github.com/Drock91/bitbooth-docs/blob/main/LICENSE"
    }
  },
  "servers": [
    {
      "url": "https://app.heinrichstech.com"
    }
  ],
  "tags": [
    {
      "name": "utility",
      "description": "General-purpose plumbing primitives"
    },
    {
      "name": "data",
      "description": "Fetch / extraction / diff endpoints"
    }
  ],
  "paths": {
    "/v1/cdp/echo": {
      "post": {
        "tags": [
          "utility"
        ],
        "summary": "echo — utility primitive",
        "description": "Smallest possible paid endpoint. Pay 0.001 USDC, get a JSON echo back. Reference implementation of the x402 + CDP Facilitator + Bazaar discovery loop.\n\nPrice: $0.001 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/echo"
        },
        "operationId": "postEcho",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "message": {
                    "type": "string",
                    "maxLength": 500,
                    "description": "Optional text to echo."
                  }
                }
              },
              "example": {
                "message": "hello bitbooth"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "service": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "youSent": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "service": "BitBooth /v1/cdp/echo",
                  "youSent": "hello bitbooth"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "1000",
          "priceUsdc": 0.001,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/json-repair": {
      "post": {
        "tags": [
          "utility"
        ],
        "summary": "json-repair — utility primitive",
        "description": "Take any almost-JSON string (LLM tool output, broken API response, etc.), fix common errors (trailing commas, single quotes, unquoted keys, missing brackets), and optionally validate against a JSON Schema. Built for AI agents that wrap every tool call in defensive parsing.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/json-repair"
        },
        "operationId": "postJsonRepair",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "malformed": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100000
                  },
                  "schema": {
                    "description": "Optional JSON Schema for the repaired value; any JSON value."
                  }
                },
                "required": [
                  "malformed"
                ]
              },
              "example": {
                "malformed": "{name:\"alice\",age:30,}"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "repaired": {
                      "description": "The repaired value; may be any JSON type."
                    },
                    "wasModified": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "repaired": {
                    "name": "alice",
                    "age": 30
                  },
                  "wasModified": true
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/faker": {
      "post": {
        "tags": [
          "utility"
        ],
        "summary": "faker — utility primitive",
        "description": "Structured synthetic data on demand. Pass a template like { name: \"person.fullName\", email: \"internet.email\" } and a count, receive an array of records ready to seed forms, populate test databases, or feed mock data into prompt examples.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/faker"
        },
        "operationId": "postFaker",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "template": {
                    "type": "object",
                    "properties": {},
                    "minProperties": 1,
                    "maxProperties": 50,
                    "additionalProperties": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Faker method path; runtime restricts values to its maintained allowlist."
                    }
                  },
                  "count": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100,
                    "default": 1
                  },
                  "seed": {
                    "type": "integer"
                  }
                },
                "required": [
                  "template"
                ]
              },
              "example": {
                "template": {
                  "name": "person.fullName",
                  "email": "internet.email"
                },
                "count": 3,
                "seed": 42
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "email": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "count": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "data": [
                    {
                      "name": "Nikita Crist",
                      "email": "Moises.Sipes-Effertz18@gmail.com"
                    },
                    {
                      "name": "Edgardo Conn",
                      "email": "Ciara_Bayer17@hotmail.com"
                    },
                    {
                      "name": "Quinn Boyle",
                      "email": "Alexane.Olson@hotmail.com"
                    }
                  ],
                  "meta": {
                    "count": 3
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/render-pro": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "render-pro — data primitive",
        "description": "Full Playwright JS rendering + Readability extraction. Pay 0.05 USDC, get clean markdown back from any URL including SPAs and JS-heavy sites that naive fetch cannot crawl.\n\nPrice: $0.05 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/render-pro"
        },
        "operationId": "postRenderPro",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^[hH][tT][tT][pP][sS]?://",
                    "maxLength": 2048,
                    "description": "Absolute HTTP(S) URL. Runtime public-host and SSRF checks are stricter and cannot be represented by JSON Schema."
                  },
                  "extract": {
                    "type": "string",
                    "enum": [
                      "article",
                      "raw"
                    ],
                    "default": "article"
                  }
                },
                "required": [
                  "url"
                ]
              },
              "example": {
                "url": "https://example.com",
                "extract": "article"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "title": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "markdown": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "metadata": {
                      "type": "object",
                      "properties": {
                        "url": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "title": "Example Domain",
                  "markdown": "# Example Domain",
                  "metadata": {
                    "url": "https://example.com"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "50000",
          "priceUsdc": 0.05,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/web-watch": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "web-watch — data primitive",
        "description": "At $0.001 per check, monitor any public URL without carrying page state. BitBooth stores a payer-scoped SHA-256 baseline and reports whether the content, HTTP status, redirect, or content type changed. The first check returns changed:null; page content is never returned or stored. Built for frequent agent heartbeats, release monitors, and pricing alerts.\n\nPrice: $0.001 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/web-watch"
        },
        "operationId": "postWebWatch",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^[hH][tT][tT][pP][sS]?://",
                    "maxLength": 2048,
                    "description": "Absolute HTTP(S) URL. Runtime public-host and SSRF checks are stricter and cannot be represented by JSON Schema."
                  }
                },
                "required": [
                  "url"
                ],
                "additionalProperties": false
              },
              "example": {
                "url": "https://example.com/pricing"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "url": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "changed": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "status": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "contentType": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    },
                    "baseline": {
                      "type": "object",
                      "properties": {
                        "available": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "revision": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "saved": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "savedRevision": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "url": "https://example.com/pricing",
                  "changed": false,
                  "status": {
                    "code": 200,
                    "contentType": "text/html"
                  },
                  "baseline": {
                    "available": true,
                    "revision": 4,
                    "saved": true,
                    "savedRevision": 5
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "1000",
          "priceUsdc": 0.001,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/xrpl-wallet-watch": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "xrpl-wallet-watch — data primitive",
        "description": "Pay 0.001 RLUSD for an actionable XRPL agent-wallet heartbeat: spendable XRP after reserves, canonical RLUSD trust-line health and call runway, validated activity, balance deltas, failed transactions, and new destinations. The first call establishes a private payer-scoped baseline and skips historical activity.\n\nPrice: $0.001 RLUSD. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/xrpl-wallet-watch"
        },
        "operationId": "postXrplWalletWatch",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "address": {
                    "type": "string",
                    "pattern": "^r[1-9A-HJ-NP-Za-km-z]{24,34}$"
                  },
                  "network": {
                    "type": "string",
                    "const": "xrpl:0",
                    "default": "xrpl:0"
                  },
                  "plannedCallPriceRlusd": {
                    "type": "string",
                    "pattern": "^(?:0|[1-9]\\d{0,8})(?:\\.\\d{1,6})?$",
                    "default": "0.001"
                  },
                  "minCallsRemaining": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1000000,
                    "default": 10
                  },
                  "minSpendableXrpDrops": {
                    "type": "string",
                    "pattern": "^\\d{1,13}$",
                    "default": "1000"
                  },
                  "allowedDestinations": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^r[1-9A-HJ-NP-Za-km-z]{24,34}$"
                    },
                    "maxItems": 25,
                    "uniqueItems": true,
                    "default": []
                  },
                  "activityLimit": {
                    "type": "integer",
                    "minimum": 10,
                    "maximum": 100,
                    "default": 50
                  }
                },
                "required": [
                  "address"
                ],
                "additionalProperties": false
              },
              "example": {
                "address": "rfryheo6yzFdLWj8qUQtZc7zG9MKkBkUEy",
                "minCallsRemaining": 25,
                "allowedDestinations": []
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "status": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "address": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "network": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "xrp": {
                      "type": "object",
                      "properties": {
                        "spendableDrops": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    },
                    "rlusd": {
                      "type": "object",
                      "properties": {
                        "exists": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "balance": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "frozenByIssuer": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        }
                      }
                    },
                    "runway": {
                      "type": "object",
                      "properties": {
                        "plannedCallPriceRlusd": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "callsRemaining": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    },
                    "alerts": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "severity": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "status": "WARN",
                  "address": "rfryheo6yzFdLWj8qUQtZc7zG9MKkBkUEy",
                  "network": "xrpl:0",
                  "xrp": {
                    "spendableDrops": "10000000"
                  },
                  "rlusd": {
                    "exists": true,
                    "balance": "0.024",
                    "frozenByIssuer": false
                  },
                  "runway": {
                    "plannedCallPriceRlusd": "0.001",
                    "callsRemaining": "24"
                  },
                  "alerts": [
                    {
                      "code": "rlusd_runway_low",
                      "severity": "CRITICAL"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "1000",
          "priceUsdc": 0.001,
          "network": "xrpl:0",
          "asset": "524C555344000000000000000000000000000000",
          "assetSymbol": "RLUSD",
          "payTo": "rfryheo6yzFdLWj8qUQtZc7zG9MKkBkUEy",
          "priceRlusd": "0.001000"
        }
      }
    },
    "/v1/cdp/web-diff": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "web-diff — data primitive",
        "description": "Render any URL with full Playwright JS rendering, then return both the current markdown snapshot AND a structured diff against the previous snapshot. BitBooth stores the baseline server-side per payer wallet and URL, so a monitoring agent sends just a URL and learns whether the page changed, what changed, and when it was last checked, while carrying no state of its own. Supply previousMarkdown to diff against your own copy instead.\n\nPrice: $0.08 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/web-diff"
        },
        "operationId": "postWebDiff",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^[hH][tT][tT][pP][sS]?://",
                    "maxLength": 2048,
                    "description": "Absolute HTTP(S) URL. Runtime public-host and SSRF checks are stricter and cannot be represented by JSON Schema."
                  },
                  "previousMarkdown": {
                    "type": "string",
                    "description": "Optional caller-supplied comparison baseline."
                  },
                  "extract": {
                    "type": "string",
                    "enum": [
                      "article",
                      "raw"
                    ],
                    "default": "article"
                  }
                },
                "required": [
                  "url"
                ]
              },
              "example": {
                "url": "https://example.com",
                "extract": "article"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "title": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "currentMarkdown": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "diff": {
                      "type": "object",
                      "properties": {
                        "hasChanged": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "addedLines": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "removedLines": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "changes": {
                          "type": "array",
                          "items": {}
                        }
                      }
                    },
                    "baseline": {
                      "type": "object",
                      "properties": {
                        "source": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "revision": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        },
                        "saved": {
                          "type": [
                            "boolean",
                            "null"
                          ]
                        },
                        "savedRevision": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "title": "Example Domain",
                  "currentMarkdown": "# Example Domain",
                  "diff": {
                    "hasChanged": false,
                    "addedLines": 0,
                    "removedLines": 0,
                    "changes": []
                  },
                  "baseline": {
                    "source": "stored",
                    "revision": 4,
                    "saved": true,
                    "savedRevision": 5
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "80000",
          "priceUsdc": 0.08,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/llm-tool-validate": {
      "post": {
        "tags": [
          "utility"
        ],
        "summary": "llm-tool-validate — utility primitive",
        "description": "JSON Schema validation + optional auto-coercion + a confidence score for any LLM tool-call payload. Pair with /v1/cdp/json-repair to fix malformed JSON first, then validate against your tool schema. Built for agents that need a programmatic gate between the model and downstream system calls.\n\nPrice: $0.008 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/llm-tool-validate"
        },
        "operationId": "postLlmToolValidate",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "schema": {
                    "type": "object",
                    "properties": {},
                    "description": "JSON Schema for data."
                  },
                  "data": {
                    "description": "Any JSON-serializable value to validate."
                  },
                  "coerce": {
                    "type": "boolean",
                    "default": true
                  }
                },
                "required": [
                  "schema",
                  "data"
                ]
              },
              "example": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "age": {
                      "type": "integer"
                    }
                  },
                  "required": [
                    "age"
                  ]
                },
                "data": {
                  "age": "30"
                },
                "coerce": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "valid": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {}
                    },
                    "coerced": {
                      "type": "object",
                      "properties": {
                        "age": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    },
                    "confidence": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "valid": true,
                  "errors": [],
                  "coerced": {
                    "age": 30
                  },
                  "confidence": 0.7
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "8000",
          "priceUsdc": 0.008,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/portfolio-scan": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "portfolio-scan — data primitive",
        "description": "Pay 0.012 USDC, hand in 1..5 EVM addresses, get back per-address native ETH + USDC holdings on Base mainnet plus a top-level totals rollup. Built for agents tracking treasury splits across multiple wallets or pre-flighting a counterparty across known addresses.\n\nPrice: $0.012 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/portfolio-scan"
        },
        "operationId": "postPortfolioScan",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "addresses": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^0x[0-9a-fA-F]{40}$"
                    },
                    "minItems": 1,
                    "maxItems": 5
                  },
                  "network": {
                    "type": "string",
                    "const": "eip155:8453",
                    "default": "eip155:8453"
                  }
                },
                "required": [
                  "addresses"
                ]
              },
              "example": {
                "addresses": [
                  "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
                ],
                "network": "eip155:8453"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "addresses": {
                      "type": "array",
                      "items": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "network": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "holdings": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "address": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "nativeWei": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "usdcAtomic": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    },
                    "totals": {
                      "type": "object",
                      "properties": {
                        "nativeWei": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "usdcAtomic": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "addresses": [
                    "0xda2f35d283c42dd60b965322394bc658a5c1769f"
                  ],
                  "network": "eip155:8453",
                  "holdings": [
                    {
                      "address": "0xda2f35d283c42dd60b965322394bc658a5c1769f",
                      "nativeWei": "1000000",
                      "usdcAtomic": "2500000"
                    }
                  ],
                  "totals": {
                    "nativeWei": "1000000",
                    "usdcAtomic": "2500000"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "12000",
          "priceUsdc": 0.012,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/rss": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "rss — data primitive",
        "description": "Pay 0.008 USDC, get a normalised JSON view of any RSS 2.0 or Atom 1.0 feed. One shape regardless of protocol: feed metadata plus an items array with HTML-stripped content snippets. Capped at 2MB body and 10s timeout, SSRF-blocked. Built for agents monitoring news, releases, blog updates, GitHub release feeds, status pages, podcasts.\n\nPrice: $0.008 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/rss"
        },
        "operationId": "postRss",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^[hH][tT][tT][pP][sS]?://",
                    "maxLength": 2048,
                    "description": "Absolute HTTP(S) URL. Runtime public-host and SSRF checks are stricter and cannot be represented by JSON Schema."
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100,
                    "default": 20
                  }
                },
                "required": [
                  "url"
                ]
              },
              "example": {
                "url": "https://hnrss.org/frontpage",
                "limit": 20
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "protocol": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "feed": {
                      "type": "object",
                      "properties": {
                        "title": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    },
                    "items": {
                      "type": "array",
                      "items": {}
                    },
                    "count": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "protocol": "rss",
                  "feed": {
                    "title": "Hacker News: Front Page"
                  },
                  "items": [],
                  "count": 0
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "8000",
          "priceUsdc": 0.008,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/sitemap": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "sitemap — data primitive",
        "description": "Pay 0.01 USDC, hand in a domain, get back the canonical site URL list discovered via robots.txt + sitemap.xml + sitemapindex chain. Returns a flat deduped list of {loc, lastmod, changefreq, priority} entries capped at 5000 URLs per call, with sitemapindex follow-through capped at 5 child sitemaps. SSRF-blocked, body-capped at 5MB, 10s timeout. Built for crawlers, SEO auditors, and agents that enumerate URLs before paying for the heavier render-pro extraction.\n\nPrice: $0.01 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/sitemap"
        },
        "operationId": "postSitemap",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^[hH][tT][tT][pP][sS]?://",
                    "maxLength": 2048,
                    "description": "Absolute HTTP(S) URL. Runtime public-host and SSRF checks are stricter and cannot be represented by JSON Schema."
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 5000,
                    "default": 1000
                  }
                },
                "required": [
                  "url"
                ]
              },
              "example": {
                "url": "https://example.com",
                "limit": 1000
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "domain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "sources": {
                      "type": "array",
                      "items": {}
                    },
                    "urls": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "loc": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    },
                    "count": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "domain": "https://example.com",
                  "sources": [],
                  "urls": [
                    {
                      "loc": "https://example.com/"
                    }
                  ],
                  "count": 1
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "10000",
          "priceUsdc": 0.01,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/dns": {
      "post": {
        "tags": [
          "utility"
        ],
        "summary": "dns — utility primitive",
        "description": "Pay 0.01 USDC, get DNS records for any hostname. Supports A, AAAA, MX, TXT, NS, CNAME, SOA, SRV, CAA. Built on Node's built-in resolver with a 5s timeout cap; rejects IPv4/IPv6 inputs. Built for agents inspecting infra, debugging delivery, or pre-flighting a target hostname.\n\nPrice: $0.01 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/dns"
        },
        "operationId": "postDns",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 253,
                    "pattern": "^(?=.{1,253}$)([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}$",
                    "description": "RFC-style hostname syntax. Runtime normalization and network-aware checks occur outside JSON Schema.",
                    "example": "example.com"
                  },
                  "recordType": {
                    "type": "string",
                    "enum": [
                      "A",
                      "AAAA",
                      "MX",
                      "TXT",
                      "NS",
                      "CNAME",
                      "SOA",
                      "SRV",
                      "CAA"
                    ],
                    "default": "A"
                  }
                },
                "required": [
                  "domain"
                ]
              },
              "example": {
                "domain": "example.com",
                "recordType": "A"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "domain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "recordType": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "records": {
                      "type": "array",
                      "items": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "domain": "example.com",
                  "recordType": "A",
                  "records": [
                    "93.184.216.34"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "10000",
          "priceUsdc": 0.01,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/whois": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "whois — data primitive",
        "description": "Pay 0.01 USDC, get the parsed whois record for any domain — registrar, creation/updated/expiry dates, name servers, status flags, plus the raw whois text. Two-hop resolution via whois.iana.org then the authoritative registry over TCP port 43. 5s timeout cap per connection. Built for agents auditing domain ownership, monitoring expiry, or pre-flighting a target.\n\nPrice: $0.01 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/whois"
        },
        "operationId": "postWhois",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string",
                    "minLength": 4,
                    "maxLength": 253,
                    "pattern": "^(?=.{1,253}$)([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}$",
                    "description": "RFC-style hostname with a TLD. Runtime normalization and network-aware checks occur outside JSON Schema.",
                    "example": "example.com"
                  }
                },
                "required": [
                  "domain"
                ]
              },
              "example": {
                "domain": "example.com"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "domain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "registry": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "registrar": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "domain": "example.com",
                  "registry": "whois.verisign-grs.com",
                  "registrar": "IANA"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "10000",
          "priceUsdc": 0.01,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/webhook-sig-verify": {
      "post": {
        "tags": [
          "utility"
        ],
        "summary": "webhook-sig-verify — utility primitive",
        "description": "Pay 0.005 USDC, verify a webhook signature against the provider canonical HMAC scheme. Supports stripe, github, vercel, cdp, slack, and generic HMAC-SHA256. Constant-time compare, clock-skew tolerance on timestamp-bearing providers. Stateless — caller supplies their secret in the request body, BitBooth never stores it. The boring API plumbing primitive every agent reinvents poorly.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/webhook-sig-verify"
        },
        "operationId": "postWebhookSigVerify",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "enum": [
                      "stripe",
                      "github",
                      "vercel",
                      "cdp",
                      "slack",
                      "generic"
                    ]
                  },
                  "payload": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100000
                  },
                  "signature": {
                    "type": "string",
                    "minLength": 1
                  },
                  "secret": {
                    "type": "string",
                    "minLength": 1,
                    "writeOnly": true
                  },
                  "timestamp": {
                    "type": "string"
                  },
                  "toleranceSeconds": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 3600,
                    "default": 300
                  }
                },
                "required": [
                  "provider",
                  "payload",
                  "signature",
                  "secret"
                ]
              },
              "example": {
                "provider": "generic",
                "payload": "{\"event\":\"test\"}",
                "signature": "14c2b69d0f7114b125aa4bc17be322d0f1f33be4ffa762e91b3cabfeb4295151",
                "secret": "test_secret"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "valid": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "provider": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "scheme": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "valid": true,
                  "provider": "generic",
                  "scheme": "hmac-sha256-generic"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/jwt-verify": {
      "post": {
        "tags": [
          "utility"
        ],
        "summary": "jwt-verify — utility primitive",
        "description": "Pay 0.005 USDC, verify a JWT signature plus the canonical claims (iss / aud / exp / nbf) against an inline publicKey (PEM) or sharedSecret. Supports HS256/384/512 + RS256/384/512. Constant-time HMAC compare, configurable clock-skew tolerance, alg=none rejected. Stateless — caller supplies their key in the request body, BitBooth never stores it. Same plumbing-primitive thesis as webhook-sig-verify, different protocol family.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/jwt-verify"
        },
        "operationId": "postJwtVerify",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 16000
                  },
                  "publicKey": {
                    "type": "string",
                    "minLength": 1,
                    "writeOnly": true
                  },
                  "sharedSecret": {
                    "type": "string",
                    "minLength": 1,
                    "writeOnly": true
                  },
                  "issuer": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    ]
                  },
                  "audience": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      }
                    ]
                  },
                  "clockToleranceSeconds": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 3600,
                    "default": 60
                  }
                },
                "required": [
                  "token"
                ],
                "anyOf": [
                  {
                    "required": [
                      "publicKey"
                    ]
                  },
                  {
                    "required": [
                      "sharedSecret"
                    ]
                  }
                ]
              },
              "example": {
                "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.e30.inig0CiOiStD0iTCeMFEp7JIxs14iyVhOKLCNK6hBv8",
                "sharedSecret": "test_secret"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "valid": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "alg": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "claims": {
                      "type": "object",
                      "properties": {}
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "valid": true,
                  "alg": "HS256",
                  "claims": {}
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/pii-redact": {
      "post": {
        "tags": [
          "utility"
        ],
        "summary": "pii-redact — utility primitive",
        "description": "Pay 0.008 USDC, strip emails, phones, SSNs, credit cards, IPv4 addresses, and hex-looking secrets from a text blob before passing it to an LLM, log sink, or third-party API. Pure regex — no LLM inference, deterministic output, sub-cent per call. Compliance primitive for agents in regulated industries (health, finance, legal). Byte counts on the response are auditable evidence of redaction for SOC2 / HIPAA logs.\n\nPrice: $0.008 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/pii-redact"
        },
        "operationId": "postPiiRedact",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100000
                  },
                  "patterns": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "email",
                        "phone",
                        "ssn",
                        "creditCard",
                        "ipv4",
                        "hexSecret"
                      ]
                    }
                  },
                  "replacement": {
                    "type": "string",
                    "maxLength": 64,
                    "default": "[REDACTED]"
                  }
                },
                "required": [
                  "text"
                ]
              },
              "example": {
                "text": "Email alice@example.com or call 555-123-4567",
                "patterns": [
                  "email",
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "redacted": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "totalRedactions": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "redacted": "Email [REDACTED] or call [REDACTED]",
                  "totalRedactions": 2
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "8000",
          "priceUsdc": 0.008,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/regex-test": {
      "post": {
        "tags": [
          "utility"
        ],
        "summary": "regex-test — utility primitive",
        "description": "Pay 0.005 USDC, safely compile + run a regex against a corpus with a hard 50ms CPU deadline. Returns structured matches (index, length, full match, capture groups). Supports JS engine flags g/i/m/s/u/y/d. Catastrophic backtracking surfaces as a regex_timeout instead of stalling the caller. The plumbing primitive every agent that consumes user-supplied regex reinvents poorly.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/regex-test"
        },
        "operationId": "postRegexTest",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "pattern": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024
                  },
                  "flags": {
                    "type": "string",
                    "pattern": "^(?!.*([gimsuyd]).*\\1)[gimsuyd]*$",
                    "maxLength": 8,
                    "default": ""
                  },
                  "input": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100000
                  },
                  "captureLimit": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000,
                    "default": 100
                  }
                },
                "required": [
                  "pattern",
                  "input"
                ]
              },
              "example": {
                "pattern": "\\d+",
                "flags": "g",
                "input": "a1 b22 c333",
                "captureLimit": 100
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "matchCount": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "truncated": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "matches": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "index": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "length": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "match": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "groups": {
                            "type": "array",
                            "items": {}
                          }
                        }
                      }
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "matchCount": 3,
                  "truncated": false,
                  "matches": [
                    {
                      "index": 1,
                      "length": 1,
                      "match": "1",
                      "groups": []
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/sentiment": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "sentiment — data primitive",
        "description": "Pay 0.005 USDC, get a VADER-style sentiment score for any English text blob — compound polarity in [-1, 1], a positive|neutral|negative label, a proportional breakdown across the three classes, and the token count. No LLM inference, deterministic output, sub-cent per call. Curated ~180-word lexicon with negation handling (×-0.74 within 3 tokens) and booster amplification (very/really/extremely ×1.293). Input capped at 10000 chars; tokenisation capped at 2000 tokens. Built for agents triaging support tickets, social mentions, review feeds, or chat transcripts before routing.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/sentiment"
        },
        "operationId": "postSentiment",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 10000
                  },
                  "lang": {
                    "type": "string",
                    "const": "en",
                    "default": "en"
                  }
                },
                "required": [
                  "text"
                ]
              },
              "example": {
                "text": "I really love this product, it works great!",
                "lang": "en"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "score": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "label": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "breakdown": {
                      "type": "object",
                      "properties": {
                        "positive": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "neutral": {
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "negative": {
                          "type": [
                            "integer",
                            "null"
                          ]
                        }
                      }
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "score": 0.8516,
                  "label": "positive",
                  "breakdown": {
                    "positive": 0.62,
                    "neutral": 0.38,
                    "negative": 0
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/og-card": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "og-card — data primitive",
        "description": "Pay 0.01 USDC, send a URL, get the structured OpenGraph + meta-tag preview every link-preview / social-card / classify-before-scrape pipeline needs. Returns og:title, og:description, og:image, og:type, og:site_name, og:url, the full twitter:* card block, plus standard HTML head fields (title, description, canonical, favicon, lang). Pure JS regex extraction, no LLM, no headless browser. 8s timeout, 512 KB body cap, non-HTML rejected. The lightweight pre-flight before paying for the heavier render-pro extraction.\n\nPrice: $0.01 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/og-card"
        },
        "operationId": "postOgCard",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^[hH][tT][tT][pP][sS]?://",
                    "maxLength": 2048,
                    "description": "Absolute HTTP(S) URL. Runtime public-host and SSRF checks are stricter and cannot be represented by JSON Schema."
                  }
                },
                "required": [
                  "url"
                ]
              },
              "example": {
                "url": "https://www.nytimes.com"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "url": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "statusCode": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "og": {
                      "type": "object",
                      "properties": {
                        "title": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "type": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "url": "https://www.nytimes.com",
                  "statusCode": 200,
                  "og": {
                    "title": "The New York Times",
                    "type": "website"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "10000",
          "priceUsdc": 0.01,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/youtube": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "youtube — data primitive",
        "description": "Pay 0.015 USDC, send a YouTube URL (youtube.com or youtu.be), get the full transcript as an array of {start, dur, text} segments in seconds plus total duration and detected language. Optional `lang` (ISO-639-1, e.g. \"en\", \"pt-BR\") selects a non-default caption track. InnerTube Android-client path first, classic HTML scrape fallback. No LLM, no headless browser. Errors surface as 502 with reason (captions_disabled, no_captions, language_not_available, video_unavailable, rate_limited). Built for agents that summarise, classify, or search video content before paying for the heavier LLM token cost.\n\nPrice: $0.015 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/youtube"
        },
        "operationId": "postYoutube",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "pattern": "^[hH][tT][tT][pP][sS]?://",
                    "maxLength": 2048,
                    "description": "Absolute HTTP(S) YouTube video URL accepted by the runtime youtube.com/youtu.be matcher.",
                    "allOf": [
                      {
                        "pattern": "(?:[yY][oO][uU][tT][uU][bB][eE]\\.[cC][oO][mM]\\/(?:[^/]+\\/.+\\/|(?:[vV]|[eE](?:[mM][bB][eE][dD])?)\\/|.*[?&][vV]=)|[yY][oO][uU][tT][uU]\\.[bB][eE]\\/)([^\"&?/\\s]{11})"
                      }
                    ]
                  },
                  "lang": {
                    "type": "string",
                    "pattern": "^[a-z]{2}(-[A-Z]{2})?$"
                  }
                },
                "required": [
                  "url"
                ]
              },
              "example": {
                "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
                "lang": "en"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "ok": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "videoId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "transcript": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "start": {
                            "type": [
                              "integer",
                              "null"
                            ]
                          },
                          "dur": {
                            "type": [
                              "number",
                              "null"
                            ]
                          },
                          "text": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        }
                      }
                    },
                    "duration": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "lang": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "ok": true,
                  "videoId": "dQw4w9WgXcQ",
                  "transcript": [
                    {
                      "start": 0,
                      "dur": 4.32,
                      "text": "Transcript text"
                    }
                  ],
                  "duration": 213.5,
                  "lang": "en"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "15000",
          "priceUsdc": 0.015,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/block-number": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-block-number — data primitive",
        "description": "Latest block height for Ethereum or Base mainnet via eth_blockNumber. Pay 0.001 USDC, get the current chain tip as decimal + hex.\n\nPrice: $0.001 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-block-number"
        },
        "operationId": "postChainBlockNumber",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  }
                }
              },
              "example": {
                "chain": "base"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "blockNumber": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "hex": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "block-number",
                  "chain": "base",
                  "blockNumber": 34567890,
                  "hex": "0x20f76d2"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "1000",
          "priceUsdc": 0.001,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/chain-id": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-chain-id — data primitive",
        "description": "Chain ID (EIP-155) via eth_chainId — confirm which network an RPC is on. Pay 0.001 USDC. Supports Ethereum and Base mainnet.\n\nPrice: $0.001 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-chain-id"
        },
        "operationId": "postChainChainId",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  }
                }
              },
              "example": {
                "chain": "base"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chainId": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "caip2": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "chain-id",
                  "chain": "base",
                  "chainId": 8453,
                  "caip2": "eip155:8453"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "1000",
          "priceUsdc": 0.001,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/gas-price": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-gas-price — data primitive",
        "description": "Current gas price via eth_gasPrice for Ethereum or Base mainnet — wei, gwei, and a human label. Pay 0.001 USDC.\n\nPrice: $0.001 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-gas-price"
        },
        "operationId": "postChainGasPrice",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  }
                }
              },
              "example": {
                "chain": "base"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "wei": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "gwei": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "gas-price",
                  "chain": "base",
                  "wei": "1000000",
                  "gwei": 0.001
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "1000",
          "priceUsdc": 0.001,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/network-info": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-network-info — data primitive",
        "description": "Chain ID, latest block height, and gas price in one batched call for Ethereum or Base mainnet. Pay 0.002 USDC — three RPC reads, one receipt.\n\nPrice: $0.002 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-network-info"
        },
        "operationId": "postChainNetworkInfo",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  }
                }
              },
              "example": {
                "chain": "base"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chainId": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "blockNumber": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "gasPriceWei": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "gasPriceGwei": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "network-info",
                  "chain": "base",
                  "chainId": 8453,
                  "blockNumber": 34567890,
                  "gasPriceWei": "1000000",
                  "gasPriceGwei": 0.001
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "2000",
          "priceUsdc": 0.002,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/native-balance": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-native-balance — data primitive",
        "description": "Native ETH balance of any address on Ethereum or Base mainnet via eth_getBalance — wei + decimal ETH. Pay 0.002 USDC.\n\nPrice: $0.002 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-native-balance"
        },
        "operationId": "postChainNativeBalance",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "address": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "required": [
                  "address"
                ]
              },
              "example": {
                "chain": "base",
                "address": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "address": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "wei": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "eth": {
                      "type": [
                        "number",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "native-balance",
                  "chain": "base",
                  "address": "0xDa2F35d283c42dd60B965322394bc658a5c1769F",
                  "wei": "1000000000000000",
                  "eth": 0.001
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "2000",
          "priceUsdc": 0.002,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/erc20-balance": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-erc20-balance — data primitive",
        "description": "ERC-20 token balance for any wallet — USDC, USDT, DAI, or any token contract — via balanceOf eth_call, with decimals applied. Ethereum or Base mainnet. Pay 0.003 USDC.\n\nPrice: $0.003 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-erc20-balance"
        },
        "operationId": "postChainErc20Balance",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "token": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "address": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "required": [
                  "token",
                  "address"
                ]
              },
              "example": {
                "chain": "base",
                "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "address": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "token": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "address": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "raw": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "decimals": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "balance": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "erc20-balance",
                  "chain": "base",
                  "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                  "address": "0xDa2F35d283c42dd60B965322394bc658a5c1769F",
                  "raw": "2500000",
                  "decimals": 6,
                  "balance": "2.5"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "3000",
          "priceUsdc": 0.003,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/erc1155-balance": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-erc1155-balance — data primitive",
        "description": "ERC-1155 balance via balanceOf(owner, id) eth_call — how many copies of a token_id a wallet holds. Ethereum or Base mainnet. Pay 0.003 USDC.\n\nPrice: $0.003 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-erc1155-balance"
        },
        "operationId": "postChainErc1155Balance",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "token": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "address": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "tokenId": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^\\d+$"
                      }
                    ],
                    "description": "Non-negative integer as a JSON integer or decimal string."
                  }
                },
                "required": [
                  "token",
                  "address",
                  "tokenId"
                ]
              },
              "example": {
                "chain": "ethereum",
                "token": "0x495f947276749Ce646f68AC8c248420045cb7b5e",
                "address": "0xDa2F35d283c42dd60B965322394bc658a5c1769F",
                "tokenId": "1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "token": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "address": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tokenId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "balance": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "erc1155-balance",
                  "chain": "ethereum",
                  "token": "0x495f947276749Ce646f68AC8c248420045cb7b5e",
                  "address": "0xDa2F35d283c42dd60B965322394bc658a5c1769F",
                  "tokenId": "1",
                  "balance": "0"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "3000",
          "priceUsdc": 0.003,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/allowance": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-allowance — data primitive",
        "description": "ERC-20 allowance via allowance(owner, spender) eth_call — how much a spender is approved to move. Ethereum or Base mainnet. Pay 0.003 USDC.\n\nPrice: $0.003 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-allowance"
        },
        "operationId": "postChainAllowance",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "token": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "owner": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "spender": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "required": [
                  "token",
                  "owner",
                  "spender"
                ]
              },
              "example": {
                "chain": "base",
                "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "owner": "0xDa2F35d283c42dd60B965322394bc658a5c1769F",
                "spender": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "token": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "owner": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "spender": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "raw": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "decimals": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "allowance": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "allowance",
                  "chain": "base",
                  "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                  "owner": "0xDa2F35d283c42dd60B965322394bc658a5c1769F",
                  "spender": "0xDa2F35d283c42dd60B965322394bc658a5c1769F",
                  "raw": "0",
                  "decimals": 6,
                  "allowance": "0"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "3000",
          "priceUsdc": 0.003,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/total-supply": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-total-supply — data primitive",
        "description": "totalSupply() of an ERC-20 or ERC-721 contract via eth_call, with decimals applied when the contract exposes them. Ethereum or Base mainnet. Pay 0.003 USDC.\n\nPrice: $0.003 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-total-supply"
        },
        "operationId": "postChainTotalSupply",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "token": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "required": [
                  "token"
                ]
              },
              "example": {
                "chain": "base",
                "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "token": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "raw": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "decimals": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "totalSupply": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "total-supply",
                  "chain": "base",
                  "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                  "raw": "1000000000000",
                  "decimals": 6,
                  "totalSupply": "1000000"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "3000",
          "priceUsdc": 0.003,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/nft-owner": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-nft-owner — data primitive",
        "description": "Current owner of an ERC-721 token via ownerOf(tokenId) eth_call. Ethereum or Base mainnet. Pay 0.003 USDC.\n\nPrice: $0.003 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-nft-owner"
        },
        "operationId": "postChainNftOwner",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "token": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "tokenId": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^\\d+$"
                      }
                    ],
                    "description": "Non-negative integer as a JSON integer or decimal string."
                  }
                },
                "required": [
                  "token",
                  "tokenId"
                ]
              },
              "example": {
                "chain": "ethereum",
                "token": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D",
                "tokenId": "1"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "token": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "tokenId": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "owner": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "nft-owner",
                  "chain": "ethereum",
                  "token": "0xBC4CA0EdA7647A8aB7C2061c2E118A18a936f13D",
                  "tokenId": "1",
                  "owner": "0x0000000000000000000000000000000000000001"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "3000",
          "priceUsdc": 0.003,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/code": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-code — data primitive",
        "description": "Is an address a contract? eth_getCode — returns isContract, bytecode size, and keccak hash of the code. Ethereum or Base mainnet. Pay 0.003 USDC.\n\nPrice: $0.003 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-code"
        },
        "operationId": "postChainCode",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "address": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "required": [
                  "address"
                ]
              },
              "example": {
                "chain": "base",
                "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "address": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "isContract": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "codeBytes": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "code",
                  "chain": "base",
                  "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                  "isContract": true,
                  "codeBytes": 2048
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "3000",
          "priceUsdc": 0.003,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/storage": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-storage — data primitive",
        "description": "Read a raw storage slot from any contract via eth_getStorageAt. Ethereum or Base mainnet. Pay 0.005 USDC.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-storage"
        },
        "operationId": "postChainStorage",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "address": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "slot": {
                    "oneOf": [
                      {
                        "type": "string",
                        "pattern": "^0x[0-9a-fA-F]+$"
                      },
                      {
                        "oneOf": [
                          {
                            "type": "integer",
                            "minimum": 0
                          },
                          {
                            "type": "string",
                            "pattern": "^\\d+$"
                          }
                        ],
                        "description": "Non-negative integer as a JSON integer or decimal string."
                      }
                    ]
                  }
                },
                "required": [
                  "address",
                  "slot"
                ]
              },
              "example": {
                "chain": "base",
                "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "slot": "0x0"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "address": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "slot": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "value": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "storage",
                  "chain": "base",
                  "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                  "slot": "0x0",
                  "value": "0x0000000000000000000000000000000000000000000000000000000000000000"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/nonce": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-nonce — data primitive",
        "description": "Next transaction nonce for any wallet via eth_getTransactionCount (latest + pending). Ethereum or Base mainnet. Pay 0.003 USDC.\n\nPrice: $0.003 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-nonce"
        },
        "operationId": "postChainNonce",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "address": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "required": [
                  "address"
                ]
              },
              "example": {
                "chain": "base",
                "address": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "address": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "latest": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "pending": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "nonce",
                  "chain": "base",
                  "address": "0xDa2F35d283c42dd60B965322394bc658a5c1769F",
                  "latest": 7,
                  "pending": 7
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "3000",
          "priceUsdc": 0.003,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/tx": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-tx — data primitive",
        "description": "Full transaction by hash via eth_getTransactionByHash — from, to, value, input, gas fields. Ethereum or Base mainnet. Pay 0.008 USDC.\n\nPrice: $0.008 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-tx"
        },
        "operationId": "postChainTx",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "hash": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{64}$"
                  }
                },
                "required": [
                  "hash"
                ]
              },
              "example": {
                "chain": "base",
                "hash": "0x7e054a129a72591bff245c5cc2a2b7c2ecb47b89241a37c007624a9e58078d96"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "hash": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "found": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "from": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "to": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "valueWei": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "nonce": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "tx",
                  "chain": "base",
                  "hash": "0x7e054a129a72591bff245c5cc2a2b7c2ecb47b89241a37c007624a9e58078d96",
                  "found": true,
                  "from": "0xDa2F35d283c42dd60B965322394bc658a5c1769F",
                  "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                  "valueWei": "0",
                  "nonce": 7
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "8000",
          "priceUsdc": 0.008,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/receipt": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-receipt — data primitive",
        "description": "Transaction receipt via eth_getTransactionReceipt — status, gas used, logs (decoded count), contractAddress. Ethereum or Base mainnet. Pay 0.005 USDC.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-receipt"
        },
        "operationId": "postChainReceipt",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "hash": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{64}$"
                  }
                },
                "required": [
                  "hash"
                ]
              },
              "example": {
                "chain": "base",
                "hash": "0x7e054a129a72591bff245c5cc2a2b7c2ecb47b89241a37c007624a9e58078d96"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "hash": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "found": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "status": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "blockNumber": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "gasUsed": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "logCount": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "receipt",
                  "chain": "base",
                  "hash": "0x7e054a129a72591bff245c5cc2a2b7c2ecb47b89241a37c007624a9e58078d96",
                  "found": true,
                  "status": "success",
                  "blockNumber": 34567890,
                  "gasUsed": "65000",
                  "logCount": 1
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/block": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-block — data primitive",
        "description": "Block header + transaction hashes by number, hex, or tag (latest/safe/finalized) via eth_getBlockByNumber. Ethereum or Base mainnet. Pay 0.003 USDC.\n\nPrice: $0.003 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-block"
        },
        "operationId": "postChainBlock",
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "block": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^0x[0-9a-fA-F]+$"
                      },
                      {
                        "type": "string",
                        "enum": [
                          "latest",
                          "safe",
                          "finalized",
                          "earliest",
                          "pending"
                        ]
                      }
                    ],
                    "default": "latest"
                  }
                }
              },
              "example": {
                "chain": "base",
                "block": "latest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "found": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "number": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "hash": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "timestamp": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "txCount": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "block",
                  "chain": "base",
                  "found": true,
                  "number": 34567890,
                  "hash": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                  "timestamp": 1788973200,
                  "txCount": 120
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "3000",
          "priceUsdc": 0.003,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/call": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-call — data primitive",
        "description": "Simulate a read-only contract call via eth_call — to + data (+ optional from/value), returns raw return data. No transaction sent. Ethereum or Base mainnet. Pay 0.005 USDC.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-call"
        },
        "operationId": "postChainCall",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "to": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "data": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]*$"
                  },
                  "from": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "value": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^\\d+$"
                      }
                    ],
                    "description": "Non-negative integer as a JSON integer or decimal string."
                  }
                },
                "required": [
                  "to",
                  "data"
                ]
              },
              "example": {
                "chain": "base",
                "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "data": "0x313ce567"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "to": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "returnData": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "call",
                  "chain": "base",
                  "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                  "returnData": "0x0000000000000000000000000000000000000000000000000000000000000006"
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/estimate-gas": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-estimate-gas — data primitive",
        "description": "Estimate gas for a transaction via eth_estimateGas before signing it — to/data/value/from supported. Ethereum or Base mainnet. Pay 0.004 USDC.\n\nPrice: $0.004 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-estimate-gas"
        },
        "operationId": "postChainEstimateGas",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "to": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "data": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]*$"
                  },
                  "from": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "value": {
                    "oneOf": [
                      {
                        "type": "integer",
                        "minimum": 0
                      },
                      {
                        "type": "string",
                        "pattern": "^\\d+$"
                      }
                    ],
                    "description": "Non-negative integer as a JSON integer or decimal string."
                  }
                },
                "required": [
                  "to"
                ]
              },
              "example": {
                "chain": "base",
                "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "data": "0x313ce567"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "to": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "gas": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "estimate-gas",
                  "chain": "base",
                  "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                  "gas": 24000
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "4000",
          "priceUsdc": 0.004,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/erc20-transfers": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-erc20-transfers — data primitive",
        "description": "Decoded ERC-20 Transfer logs for a token via eth_getLogs — sender, recipient, amount per event, filterable by address and block range (max 2,000 blocks). Ethereum or Base mainnet. Pay 0.005 USDC.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-erc20-transfers"
        },
        "operationId": "postChainErc20Transfers",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "token": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  },
                  "fromBlock": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "toBlock": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "address": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "required": [
                  "token"
                ]
              },
              "example": {
                "chain": "base",
                "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "token": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "fromBlock": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "toBlock": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "count": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "truncated": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "transfers": {
                      "type": "array",
                      "items": {}
                    }
                  }
                },
                "example": {
                  "op": "erc20-transfers",
                  "chain": "base",
                  "token": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                  "fromBlock": 34565891,
                  "toBlock": 34567890,
                  "count": 0,
                  "truncated": false,
                  "transfers": []
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    },
    "/v1/cdp/chain/contract": {
      "post": {
        "tags": [
          "data"
        ],
        "summary": "chain-contract — data primitive",
        "description": "Contract introspection via batched eth_call — name, symbol, decimals, totalSupply, and ERC-165 interface probes (ERC-20/721/1155 detection). Ethereum or Base mainnet. Pay 0.005 USDC.\n\nPrice: $0.005 USDC. Settlement rails are advertised in the 402 challenge accepts[] array.",
        "externalDocs": {
          "url": "https://app.heinrichstech.com/endpoints/chain-contract"
        },
        "operationId": "postChainContract",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chain": {
                    "type": "string",
                    "enum": [
                      "ethereum",
                      "base"
                    ],
                    "default": "base"
                  },
                  "address": {
                    "type": "string",
                    "pattern": "^0x[0-9a-fA-F]{40}$"
                  }
                },
                "required": [
                  "address"
                ]
              },
              "example": {
                "chain": "base",
                "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful payment + response body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "op": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "chain": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "address": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "isContract": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "symbol": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "decimals": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    },
                    "erc721": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "erc1155": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "likelyErc20": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  }
                },
                "example": {
                  "op": "contract",
                  "chain": "base",
                  "address": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                  "isContract": true,
                  "name": "USD Coin",
                  "symbol": "USDC",
                  "decimals": 6,
                  "erc721": false,
                  "erc1155": false,
                  "likelyErc20": true
                }
              }
            }
          },
          "400": {
            "description": "Validation error (malformed request body or query)."
          },
          "402": {
            "description": "Payment required. Response body is the canonical x402v2 challenge with accepts[] enumerating every (network, asset, payTo) tuple the gateway will settle.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "x402Version",
                    "error",
                    "accepts"
                  ],
                  "properties": {
                    "x402Version": {
                      "type": "integer",
                      "enum": [
                        2
                      ]
                    },
                    "error": {
                      "type": "string"
                    },
                    "accepts": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    },
                    "extensions": {
                      "type": "object"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded for the paying wallet on this route."
          }
        },
        "x-bitbooth-pricing": {
          "priceAtomic": "5000",
          "priceUsdc": 0.005,
          "network": "eip155:8453",
          "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "assetSymbol": "USDC",
          "payTo": "0xDa2F35d283c42dd60B965322394bc658a5c1769F"
        }
      }
    }
  },
  "components": {
    "schemas": {
      "X402Challenge": {
        "type": "object",
        "required": [
          "x402Version",
          "error",
          "accepts"
        ],
        "properties": {
          "x402Version": {
            "type": "integer",
            "enum": [
              2
            ]
          },
          "error": {
            "type": "string"
          },
          "accepts": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "scheme",
                "network",
                "amount",
                "payTo",
                "asset"
              ],
              "properties": {
                "scheme": {
                  "type": "string",
                  "enum": [
                    "exact",
                    "onchain"
                  ]
                },
                "network": {
                  "type": "string",
                  "description": "CAIP-2 chain identifier"
                },
                "amount": {
                  "type": "string",
                  "description": "Atomic units of `asset`"
                },
                "payTo": {
                  "type": "string"
                },
                "asset": {
                  "type": "string"
                },
                "maxTimeoutSeconds": {
                  "type": "number"
                },
                "extra": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-bitbooth-catalog": {
    "bazaarJson": "https://app.heinrichstech.com/bazaar.json",
    "bazaarHtml": "https://app.heinrichstech.com/bazaar",
    "agentCard": "https://app.heinrichstech.com/.well-known/agent.json",
    "x402WellKnown": "https://app.heinrichstech.com/.well-known/x402.json",
    "resourceCount": 40
  }
}