{
 "x402Version": 2,
 "resources": [
  {
   "resource": "https://api.hergertsynthora.com/v1/air-quality",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "10000",
     "amount": "10000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/air-quality",
     "description": "SYNTHORA air-quality: live air quality for any city or lat,lon — PM2.5/PM10/ozone/NO2, EU and US AQI, and a WHO-threshold operational verdict (good/moderate/harmful). Source: open-meteo Air Quality (CAMS/ESA Copernicus), free, no key. $0.01 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "input": "Delhi"
       },
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "full_contract": "OpenAPI",
         "historical": true,
         "payment_receipt": "NOT_PRESENT",
         "sample_date": "2026-10-13",
         "state": "DOCUMENTATION_EXCERPT",
         "truncated": true
        },
        "ok": true,
        "result": {
         "niche": "air_quality",
         "ok": true,
         "partial": false,
         "result": {
          "age_seconds": 2933.813696,
          "capture_ts": "2026-10-13T09:48:53.813696+00:00",
          "coverage": {
           "available": 6,
           "gaps": [],
           "requested": 6
          },
          "criterio": "valores e indices del proveedor; no comparacion con guias OMS anuales/24h",
          "european_aqi": 134,
          "source_ts": "2026-10-13T09:00:00+00:00"
         },
         "schema_version": "1.0.0"
        }
       },
       "type": "json",
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "european_aqi": {
            "type": "number"
           },
           "fuentes": {
            "type": "array"
           },
           "lat": {
            "type": "number"
           },
           "lon": {
            "type": "number"
           },
           "lugar": {
            "type": "string"
           },
           "medido_utc": {
            "type": "string"
           },
           "no2": {
            "type": "number"
           },
           "nota": {
            "type": "string"
           },
           "ozono": {
            "type": "number"
           },
           "pm10": {
            "type": "number"
           },
           "pm25": {
            "type": "number"
           },
           "us_aqi": {
            "type": "number"
           },
           "veredicto_pm25": {
            "type": "string"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA air-quality: live air quality for any city or lat,lon — PM2.5/PM10/ozone/NO2, EU and US AQI, and a WHO-threshold operational verdict (good/moderate/harmful). Source: open-meteo Air Quality (C"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/bitcoin-fees",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "10000",
     "amount": "10000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/bitcoin-fees",
     "description": "SYNTHORA bitcoin-fees: Bitcoin fee tiers in sat/vB (fastest/half-hour/hour/economy/minimum) plus current block height. Source: mempool.space public API, keyless. Bitcoin only.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {},
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "full_contract": "OpenAPI",
         "historical": true,
         "payment_receipt": "NOT_PRESENT",
         "sample_date": "2026-10-13",
         "state": "DOCUMENTATION_EXCERPT",
         "truncated": true
        },
        "ok": true,
        "result": {
         "niche": "bitcoin_fees",
         "ok": true,
         "partial": false,
         "result": {
          "as_of_utc": "2026-10-13T09:49:03.497792Z",
          "as_of_utc_semantics": "local fee response capture time, not provider data timestamp",
          "block_height": 971227,
          "capture_ts": "2026-10-13T09:49:03.497792Z",
          "source": "mempool.space/api/v1/fees/recommended",
          "source_ts": null
         },
         "schema_version": "1.0.0"
        }
       },
       "type": "json",
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "as_of_utc": {
            "type": "string"
           },
           "block_height": {
            "type": "number"
           },
           "error": {
            "type": "string"
           },
           "fees": {
            "type": "object"
           },
           "red": {
            "type": "string"
           },
           "source": {
            "type": "string"
           },
           "unidad": {
            "type": "string"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "red": {
            "type": "string",
            "const": "bitcoin",
            "description": "Optional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier."
           },
           "network": {
            "type": "string",
            "const": "bitcoin",
            "description": "Optional Bitcoin-only selector; exact lowercase bitcoin. Omit for Bitcoin. Does not select fee tier."
           }
          },
          "additionalProperties": false
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/defi-llama-tvl-ranking",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "10000",
     "amount": "10000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/defi-llama-tvl-ranking",
     "description": "SYNTHORA defi-llama-tvl-ranking: Top DeFi protocols by TVL with rank, chain, category and 1d/7d change, capped list (default 50, max 200 via {\"limit\":N}). Source: api.llama.fi/protocols (DefiLlama), keyless, timestamped.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "limit": 50
       },
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "full_contract": "OpenAPI",
         "historical": true,
         "payment_receipt": "NOT_PRESENT",
         "sample_date": "2026-10-13",
         "state": "DOCUMENTATION_EXCERPT",
         "truncated": true
        },
        "ok": true,
        "result": {
         "niche": "defi_llama_tvl_ranking",
         "ok": true,
         "partial": true,
         "result": {
          "as_of_utc": "2026-10-13T09:49:01.846024Z",
          "capture_ts": "2026-10-13T09:49:01.846024Z",
          "count": 50,
          "source": "https://api.llama.fi/protocols",
          "source_ts": null,
          "units": {
           "change_1d_pct": "percent",
           "change_7d_pct": "percent",
           "tvl_usd": "USD"
          }
         },
         "schema_version": "1.0.0"
        }
       },
       "type": "json",
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "as_of_utc": {
            "type": "string"
           },
           "count": {
            "type": "number"
           },
           "error": {
            "type": "string"
           },
           "protocols": {
            "type": "array"
           },
           "source": {
            "type": "string"
           },
           "total_protocolos_fuente": {
            "type": "number"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "limit": {
            "type": "integer",
            "description": "top N, default 50, max 200"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/defi-yields",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "10000",
     "amount": "10000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/defi-yields",
     "description": "SYNTHORA defi-yields: stablecoin DeFi yields ranked with a risk outlier detector — APY vs class median (>=3x median = the excess yield IS the risk price). Only pools with TVL >= $10M. Source: DefiLlama, free, no key. $0.01 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {},
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "full_contract": "OpenAPI",
         "historical": true,
         "payment_receipt": "NOT_PRESENT",
         "sample_date": "2026-10-13",
         "state": "DOCUMENTATION_EXCERPT",
         "truncated": true
        },
        "ok": true,
        "result": {
         "niche": "defi_yields",
         "ok": true,
         "partial": true,
         "result": {
          "alerta_divergencia": true,
          "apy_mediana": 3.8,
          "capture_ts": "2026-10-13T09:48:55.806363+00:00",
          "consulta_ts": "2026-10-13T09:48:56Z",
          "source_ts": null,
          "units": {
           "apy": "percent annual",
           "desviacion_bps": "basis points annual",
           "tvl_usd": "USD"
          }
         },
         "schema_version": "1.3.0"
        }
       },
       "type": "json",
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "n_pools": {
            "type": "number"
           },
           "apy_mediana": {
            "type": "number"
           },
           "top": {
            "type": "array"
           },
           "outliers_riesgo": {
            "type": "array"
           },
           "fuentes": {
            "type": "array"
           },
           "nota": {
            "type": "string"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "red": {
            "type": "string",
            "minLength": 1,
            "description": "Optional nonempty chain name, trimmed and matched case-insensitively for exact equality against captured pool.chain. Omit for all captured eligible chains. A chain outside that captured universe returns an explicit error; this does not select another data source."
           },
           "activo": {
            "type": "string",
            "minLength": 1,
            "description": "Optional nonempty asset symbol token. It is trimmed, uppercased and matched against tokens of the pool symbol (for example USDC); not a substring, contract-address or mint lookup. Omit for all eligible symbols. A token with no matches may produce an empty selected list."
           },
           "protocolo": {
            "type": "string",
            "minLength": 1,
            "description": "Optional nonempty protocol/project identifier, such as aave-v3. Trimmed and matched case-insensitively for exact equality with pool.proyecto; not a substring or protocol-contract lookup. Omit for all projects in the captured eligible universe."
           },
           "pool_id": {
            "type": "string",
            "minLength": 1,
            "description": "Optional exact pool ID for local batch-history retrieval only; it does not filter the current top-pool list. History defaults to 30 days unless historial_dias supplies 1-90. This is not a live DefiLlama history request; missing local history is disclosed as a gap."
           },
           "desde": {
            "type": "string",
            "minLength": 1,
            "description": "Optional timezone-aware ISO8601 cut, not in the future. Compares current eligible pools with the latest local batch at or before that cut. Changes use the full eligible universe, independently of red/activo/protocolo display filters. Missing older batches are reported; no history coverage is guaranteed."
           },
           "historial_dias": {
            "type": "integer",
            "minimum": 1,
            "maximum": 90,
            "description": "Requires pool_id; history availability is not guaranteed."
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/doaj-article-search",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "5000",
     "amount": "5000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/doaj-article-search",
     "description": "Searches the Directory of Open Access Journals article index, returning titles, authors, DOIs, journal, ISSNs, abstracts and open-access full-text links as JSON. A keyless endpoint for autonomous research agents and agent-to-agent workflows sourcing legally free, peer-reviewed open-access literature. First call FREE per wallet — send header X-WALLET: 0x<addr>. No charge on upstream failure.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "query": "machine learning",
        "pageSize": 2
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "doaj-article-search",
        "result": {}
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "query": {
            "type": "string",
            "description": "query"
           }
          },
          "required": [
           "query"
          ]
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/ecb-forex-fixing-vs-market",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "10000",
     "amount": "10000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/ecb-forex-fixing-vs-market",
     "description": "SYNTHORA ecb-forex-fixing-vs-market: Compare the official ECB daily EUR/USD reference fixing with a client-supplied USD-per-EUR quote, timestamp and provenance. Reports deviation in basis points and coverage/freshness gaps. The client quote is not independently verified. No live market quote is supplied or inferred; this commercial path does not redistribute open.er-api rates.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "market_rate": "1.0",
        "market_timestamp_unix": 1,
        "market_provenance": "SYNTHETIC DOCUMENTATION EXAMPLE; not a market observation; replace all quote fields before use"
       },
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "full_contract": "OpenAPI",
         "historical": true,
         "payment_receipt": "NOT_PRESENT",
         "sample_date": "2026-10-13",
         "state": "DOCUMENTATION_EXCERPT",
         "truncated": true
        },
        "ok": true,
        "result": {
         "niche": "ecb_forex_fixing_vs_market",
         "ok": true,
         "partial": true,
         "result": {
          "alerta": false,
          "alerta_significado": "diferencia descriptiva absoluta >25 bps; no fraude ni señal de trading",
          "as_of_utc": "2026-10-13T09:49:01.632389Z",
          "capture_ts": "2026-10-13T09:49:01.632389Z",
          "source_ts": {
           "fixing_date": "2026-10-12",
           "indicative_utc": "2026-10-13T09:48:44+00:00"
          },
          "units": {
           "difference": "basis points relative to BCE fixing",
           "rates": "USD per 1 EUR"
          }
         },
         "schema_version": "1.0.0"
        }
       },
       "type": "json",
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "alerta": {
            "type": "boolean"
           },
           "as_of_utc": {
            "type": "string"
           },
           "desviacion_bps": {
            "type": "number"
           },
           "direccion": {
            "type": "string"
           },
           "ecb_fixing_fecha": {
            "type": "string"
           },
           "ecb_fixing_rate": {
            "type": "number"
           },
           "error": {
            "type": "string"
           },
           "market_rate": {
            "type": "number"
           },
           "mercado_actualizado_unix": {
            "type": "number"
           },
           "par": {
            "type": "string"
           },
           "sources": {
            "type": "array"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "market_rate": {
            "oneOf": [
             {
              "type": "number",
              "exclusiveMinimum": 0
             },
             {
              "type": "string",
              "minLength": 1
             }
            ],
            "description": "Required positive finite USD per EUR quote supplied by the client, as a JSON number or decimal numeric string. Backend rejects booleans, nonnumeric, nonfinite, overflow and float-underflow-to-zero values. String positivity and numeric validity are checked by the backend."
           },
           "market_timestamp_unix": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "description": "Required client quote timestamp in Unix seconds UTC. Backend rejects booleans, unrepresentable dates and times more than 300 seconds in the future. Historical timestamps are accepted but age/coverage gaps may prevent a quality claim."
           },
           "market_provenance": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1000,
            "description": "Required client-supplied quote provenance, at most 1000 characters and nonempty after whitespace trimming. Attribution is not independent verification or evidence of usage rights."
           },
           "par": {
            "type": "string",
            "const": "EUR/USD",
            "default": "EUR/USD",
            "description": "Only supported pair, EUR/USD; quote units are USD per EUR. Omission defaults to EUR/USD."
           }
          },
          "required": [
           "market_rate",
           "market_timestamp_unix",
           "market_provenance"
          ],
          "additionalProperties": false
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/ecb-macro",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/ecb-macro",
     "description": "SYNTHORA ecb-macro: official eurozone macro from the ECB data warehouse — HICP inflation, MRR policy rate, 10Y govt yield, each with previous value, change and direction. For macro/rates agents and prediction markets. Official free source, no key. $0.03 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {},
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "full_contract": "OpenAPI",
         "historical": true,
         "payment_receipt": "NOT_PRESENT",
         "sample_date": "2026-10-13",
         "state": "DOCUMENTATION_EXCERPT",
         "truncated": true
        },
        "ok": true,
        "result": {
         "niche": "ecb_macro",
         "ok": true,
         "partial": true,
         "result": {
          "coverage": {
           "available": 3,
           "requested": 3
          },
          "fecha_consulta": "2026-10-13",
          "fuente": "ECB Data Portal",
          "hicp_inflacion_anual_pct": {
           "cambio": 0.6,
           "cambio_unit": "percentage points",
           "capture_ts": "2026-10-13T09:49:17.250915+00:00",
           "direccion": "sube",
           "estimand": "annual HICP total rate, NSA",
           "source_ts": "Fri, 02 Oct 2026 09:07:14 GMT"
          },
          "independent_sources": 1,
          "tipo_director_mrr_pct": {
           "cambio": 0.25,
           "cambio_unit": "percentage points",
           "capture_ts": "2026-10-13T09:49:17.485370+00:00",
           "direccion": "sube",
           "estimand": "FM/B.U2.EUR.4F.KR.MRR_FR.LEV",
           "source_ts": "Thu, 10 Sep 2026 14:22:33 GMT"
          }
         },
         "schema_version": "1.0.0"
        }
       },
       "type": "json"
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "region": {
            "type": "string",
            "const": "U2",
            "description": "Compatibility field constrained to U2 by the public schema. The currently routed backend ignores this argument and requests its three fixed Euro-area (U2) ECB series; it cannot select another region."
           },
           "mode": {
            "type": "string",
            "const": "latest",
            "description": "Compatibility field constrained to latest by the public schema. The currently routed backend ignores it and requests the last two observations of each fixed series. It provides no selectable date/history mode; latest is not a live-feed or freshness guarantee."
           }
          },
          "additionalProperties": false
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/exchange-rates-verified",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/exchange-rates-verified",
     "description": "SYNTHORA exchange-rates-verified: FX rates for 160+ currencies CROSS-VERIFIED between two independent sources (ECB official fixing via frankfurter.app vs market aggregate open.er-api.com) with per-currency deviation in bps and divergence alert >50 bps. The product is the discrepancy: a bad rate breaks a financial agent. Free sources, no key. $0.03 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "input": ""
       },
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "full_contract": "OpenAPI",
         "historical": true,
         "payment_receipt": "NOT_PRESENT",
         "sample_date": "2026-10-13",
         "state": "DOCUMENTATION_EXCERPT",
         "truncated": true
        },
        "ok": true,
        "result": {
         "niche": "exchange_rates_verified",
         "ok": true,
         "partial": true,
         "result": {
          "alerta_calibrada": false,
          "alerta_divergencia": false,
          "alerta_umbral_bps": 50,
          "base": "EUR",
          "capture_ts": "2026-10-13T09:49:09.756722+00:00",
          "source_ts": {
           "client_supplied": "2026-10-13",
           "ecb": "2026-10-12"
          }
         },
         "schema_version": "1.0.0"
        }
       },
       "type": "json"
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA exchange-rates-verified: FX rates for 160+ currencies CROSS-VERIFIED between two independent sources (ECB official fixing via frankfurter.app vs market aggregate open.er-api.com) with per-cur"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/fed-watch",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/fed-watch",
     "description": "SYNTHORA fed-watch: US reference-rate funding pulse — SOFR/EFFR/TGCR/BGCR/OBFR with volumes, percentile dispersion and the SOFR-EFFR spread (the funding-stress signal before it hits the news). Cross-check of 5 independent official NY Fed series. The input for Fed/CPI prediction markets. Free official source, no key. $0.03 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "input": ""
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "fed_watch",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA fed-watch: US reference-rate funding pulse — SOFR/EFFR/TGCR/BGCR/OBFR with volumes, percentile dispersion and the SOFR-EFFR spread (the funding-stress signal before it hits the news). Cross-c"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/gas-oracle-multi",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/gas-oracle-multi",
     "description": "SYNTHORA gas-oracle-multi: gas price across 5 chains (ethereum, base, arbitrum, optimism, polygon), each VERIFIED by two independent public RPCs with divergence report — a single RPC can lie or lag; dual-verified is what you time transactions with. Free public RPCs, no key. $0.03 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "chain": "base"
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "gas_oracle_multi",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA gas-oracle-multi: gas price across 5 chains (ethereum, base, arbitrum, optimism, polygon), each VERIFIED by two independent public RPCs with divergence report — a single RPC can lie or lag; d"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/gdelt-tension",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/gdelt-tension",
     "description": "SYNTHORA gdelt-tension: geopolitical tension index for any topic/country — news-mention spike vs 7d baseline, average tone shift, escalation flag and the headlines causing it. The early signal for Polymarket geopolitical markets (high variance, high spread). Source: GDELT DOC 2.0 (100+ languages, free, no key), 6h-prefetched cache for reliability.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "query": "taiwan"
       },
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "payment_receipt": "NOT_PRESENT",
         "state": "SCHEMA_ONLY_NOT_A_DELIVERY"
        },
        "ok": true,
        "receipt": {},
        "result": {
         "niche": "gdelt_tension",
         "ok": true,
         "partial": true,
         "result": {},
         "schema_version": "1.0.0"
        }
       },
       "type": "json",
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "consulta": {
            "type": "string"
           },
           "ventana_dias": {
            "type": "number"
           },
           "menciones_ultimas_24h": {
            "type": "number"
           },
           "baseline_diario": {
            "type": "number"
           },
           "ratio_vs_baseline": {
            "type": "number"
           },
           "spike_volumen": {
            "type": "boolean"
           },
           "tono_medio_reciente": {
            "type": "number"
           },
           "nivel_tension": {
            "type": "string"
           },
           "serie_diaria": {
            "type": "array"
           },
           "titulares_recientes": {
            "type": "array"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA gdelt-tension: geopolitical tension index for any topic/country — news-mention spike vs 7d baseline, average tone shift, escalation flag and the headlines causing it. The early signal for Pol"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/github-repo-activity",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/github-repo-activity",
     "description": "SYNTHORA github-repo-activity: Activity metrics for any public GitHub repo (input owner/repo): stars, forks, open issues, last push, language, archived flag. 10-min in-process cache, stale-on-rate-limit or ok:false. Source: api.github.com, keyless.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "input": "torvalds/linux"
       },
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "full_contract": "OpenAPI",
         "historical": true,
         "payment_receipt": "NOT_PRESENT",
         "sample_date": "2026-10-13",
         "state": "DOCUMENTATION_EXCERPT",
         "truncated": true
        },
        "ok": true,
        "result": {
         "niche": "github_repo_activity",
         "ok": true,
         "partial": false,
         "result": {
          "archived": false,
          "as_of_utc": "2026-10-13T09:49:06Z",
          "capture_ts": "2026-10-13T09:49:06Z",
          "source": "api.github.com/repos/torvalds/linux",
          "source_ts": "2026-10-13T09:45:04Z",
          "units": {
           "cache_age_s": "seconds",
           "forks": "count",
           "open_issues": "count",
           "push_age_s": "seconds",
           "source_age_s": "seconds",
           "stars": "count"
          }
         },
         "schema_version": "1.0.0"
        }
       },
       "type": "json"
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "owner/repo"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/historical-weather",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/historical-weather",
     "description": "SYNTHORA historical-weather: verified historical weather for any place and date (1940 → ~5 days ago) from the ERA5 reanalysis — tmax/tmin, precipitation, max wind. For climate-market backtesting and claim verification. Source: open-meteo archive, free, no key. $0.03 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "place": "Casablanca",
        "date": "2026-08-01"
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "historical_weather",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA historical-weather: verified historical weather for any place and date (1940 → ~5 days ago) from the ERA5 reanalysis — tmax/tmin, precipitation, max wind. For climate-market backtesting and c"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/payto-preflight",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "10000",
     "amount": "10000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/payto-preflight",
     "description": "x402 PayTo Pre-Flight: verify a payTo address against the live registry before paying. Detects payTo hijacking, stale endpoints and unknown resources. Deterministic, <200ms, no external network. 0.01 USDC via x402 on Base. SYNTHORA.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "endpoint_url": "https://onchain.hergertsynthora.com/service",
        "expected_payTo": "0xEf879BFD6C4AccB8F795136de90246e1EC245e06",
        "chain": "eip155:8453"
       },
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "payment_receipt": "NOT_PRESENT",
         "state": "SCHEMA_ONLY_NOT_A_DELIVERY"
        },
        "ok": true,
        "receipt": {},
        "result": {
         "niche": "payto_preflight",
         "ok": true,
         "partial": true,
         "result": {},
         "schema_version": "1.0.0"
        }
       },
       "type": "json"
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "endpoint_url": {
            "type": "string",
            "description": "endpoint resource URL to verify"
           },
           "expected_payTo": {
            "type": "string",
            "description": "expected payTo address (0x...)"
           },
           "chain": {
            "type": "string",
            "description": "expected chain, e.g. eip155:8453"
           }
          },
          "required": [
           "endpoint_url"
          ]
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/polymarket-markets",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "50000",
     "amount": "50000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/polymarket-markets",
     "description": "Search prediction markets ACROSS PLATFORMS (Polymarket + Kalshi) in one call: live prices, implied probability, volume, liquidity, end date and market conviction. Server-side search that actually finds the market (bitcoin, fed, election, geopolitics). For trading and forecasting agents tracking event odds. $0.05 USDC x402 Base. Input: {\"input\": \"bitcoin\"} (optional filter). Ed25519-signed.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "input": "bitcoin"
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "polymarket_markets",
        "result": {
         "filtro": "bitcoin",
         "sin_coincidencias": true,
         "nota": "ningun mercado activo coincide con ese filtro; no se devuelven otros para no dar por bueno lo que no se pidio",
         "n_mercados": 0,
         "mercados_minados__observador_1": 0,
         "markets": [],
         "as_of_utc": "2026-08-05T16:31:36Z",
         "fuente": "<omitido en el ejemplo publico>",
         "latencia_s": 0.19
        }
       },
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "as_of_utc": {
            "type": "string"
           },
           "filtro": {
            "type": "string"
           },
           "fuente": {
            "type": "string"
           },
           "latencia_s": {
            "type": "number"
           },
           "markets": {
            "type": "array"
           },
           "mercados_examinados": {
            "type": "number"
           },
           "n_mercados": {
            "type": "number"
           },
           "nota": {
            "type": "string"
           },
           "plataformas": {
            "type": "array"
           },
           "sin_coincidencias": {
            "type": "boolean"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "Search prediction markets ACROSS PLATFORMS (Polymarket + Kalshi) in one call: live prices, implied probability, volume, liquidity, end date and market conviction. Server-side search that actually find"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/polymarket-trades",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "resource": "https://api.hergertsynthora.com/v1/polymarket-trades",
     "description": "Historical Polymarket trade query with filters plus per-wallet aggregation. $0.03 USDC x402 Base.",
     "mimeType": "application/json",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "limit": 5
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "polymarket_trades",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "Historical Polymarket trade query with filters plus per-wallet aggregation. $0.03 USDC x402 Base."
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/port-watch",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/port-watch",
     "description": "SYNTHORA port-watch: daily port activity for any of 2,065 ports (Shanghai, Singapore, Rotterdam, LA, Long Beach presets + any name) — port calls, estimated import/export capacity (dwt), 7d moving average vs 30d baseline deviation and anomaly flag. Port volume leads official macro data by weeks: the input for trade/tariff/recession markets. Source: IMF PortWatch (satellite AIS, free, no key). $0.03 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "port": "rotterdam"
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "port_watch",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA port-watch: daily port activity for any of 2,065 ports (Shanghai, Singapore, Rotterdam, LA, Long Beach presets + any name) — port calls, estimated import/export capacity (dwt), 7d moving aver"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/registry-watch",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/registry-watch",
     "description": "Registry change history from stored registry_delta records, ordered by database timestamp and ID. Query with since (cursor or ISO8601), slug and limit (1..200). Source timestamps and coverage are included; records may be historical and do not prove current endpoint operation, payments or identity. 0.03 USDC on Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "limit": 50
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "registry_watch",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       },
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "feed": {
            "type": "array"
           },
           "count": {
            "type": "number"
           },
           "as_of": {
            "type": "string"
           },
           "source": {
            "type": "string"
           },
           "cursor": {
            "type": "string"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "since": {
            "type": "string",
            "description": "Exclusive cursor del_... or timezone-aware ISO8601 timestamp"
           },
           "slug": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{1,128}$",
            "description": "Optional exact stored-event slug filter. Surrounding whitespace is trimmed; matching is by equality, not substring search. latest/last/recent/ultimos clear the filter; omitting it requests recent global stored events. This selects historical registry events, not live endpoint health."
           },
           "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "default": 50,
            "description": "Maximum stored events requested: advertised integer range 1-200, default 50. The current parser converts to an integer and clamps to 1-200; nonnumeric conversion fails. With no since it takes the recent tail, returned chronologically. This limit is not a freshness or coverage guarantee."
           }
          },
          "additionalProperties": false
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/space-weather-risk",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/space-weather-risk",
     "description": "SYNTHORA space-weather-risk: composite operational space-weather risk verdict fusing 4 NOAA SWPC feeds (Kp/G scale, GOES X-ray flare class, solar wind, proton flux) — for defense, aviation, satellites, power grid, precision GPS. $0.03 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "input": ""
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "space_weather_risk",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       },
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "active_alerts": {
            "type": "array"
           },
           "affected_systems": {
            "type": "array"
           },
           "as_of": {
            "type": "string"
           },
           "geomagnetic": {
            "type": "object"
           },
           "ops": {
            "type": "object"
           },
           "overall_risk": {
            "type": "string"
           },
           "scales": {
            "type": "object"
           },
           "signals": {
            "type": "array"
           },
           "solar_flare": {
            "type": "object"
           },
           "stale": {
            "type": "boolean"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA space-weather-risk: composite operational space-weather risk verdict fusing 4 NOAA SWPC feeds (Kp/G scale, GOES X-ray flare class, solar wind, proton flux) — for defense, aviation, satellites"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/stablecoin-supply",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "10000",
     "amount": "10000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/stablecoin-supply",
     "description": "SYNTHORA stablecoin-supply: circulating USD supply, price and peg deviation in basis points for the top stablecoins (USDT, USDC, DAI...), with a depeg alert flag above 50 bps. Optional symbol filter. Free source: stablecoins.llama.fi (DefiLlama), no API key, timestamped.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "input": "USDC"
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "stablecoin_supply",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       },
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "as_of_utc": {
            "type": "string"
           },
           "fuente": {
            "type": "string"
           },
           "latencia_s": {
            "type": "number"
           },
           "stablecoins": {
            "type": "array"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA stablecoin-supply: circulating USD supply, price and peg deviation in basis points for the top stablecoins (USDT, USDC, DAI...), with a depeg alert flag above 50 bps. Optional symbol filter. "
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/top-crypto",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "10000",
     "amount": "10000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/top-crypto",
     "description": "SYNTHORA top-crypto: Top N cryptocurrencies by market cap (default 10, max 50): rank, price, 24h change, volume and market cap in USD. Source: CoinGecko free API, keyless, timestamped.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "limit": 10
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "top_crypto",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       },
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "as_of_utc": {
            "type": "string"
           },
           "coins": {
            "type": "array"
           },
           "count": {
            "type": "number"
           },
           "error": {
            "type": "string"
           },
           "source": {
            "type": "string"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "limit": {
            "type": "integer",
            "description": "top N, default 10, max 50"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/usgs-earthquakes",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/usgs-earthquakes",
     "description": "SYNTHORA usgs-earthquakes: latest earthquakes (M>=4.5 default, tunable) with PAGER alert level, tsunami flag and ACTIVE SEISMIC CLUSTER detection (>=3 events same zone in 24h) — the actionable signal for insurance-risk and disaster prediction markets. Source: USGS FDSN (official US, real-time, no key). $0.03 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "input": ""
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "usgs_earthquakes",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA usgs-earthquakes: latest earthquakes (M>=4.5 default, tunable) with PAGER alert level, tsunami flag and ACTIVE SEISMIC CLUSTER detection (>=3 events same zone in 24h) — the actionable signal "
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://api.hergertsynthora.com/v1/volume-anomaly",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "maxAmountRequired": "30000",
     "amount": "30000",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "resource": "https://api.hergertsynthora.com/v1/volume-anomaly",
     "description": "SYNTHORA volume-anomaly: crypto volume-anomaly alerts for arbitrage bots — assets whose 24h turnover (volume/mcap) is anomalously high vs their cohort (z-score), early pump/unusual-activity signal. Composite of CoinGecko markets + DeFiLlama DEX volume. Keyless. $0.03 USDC x402 Base.",
     "mimeType": "application/json",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "input": ""
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "volume_anomaly",
        "result": {},
        "receipt": {
         "alg": "ed25519"
        }
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "input": {
            "type": "string",
            "description": "SYNTHORA volume-anomaly: crypto volume-anomaly alerts for arbitrage bots — assets whose 24h turnover (volume/mcap) is anomalously high vs their cohort (z-score), early pump/unusual-activity signal. Co"
           }
          }
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    },
    "signature": {
     "alg": "ed25519",
     "publicKeyUrl": "https://api.hergertsynthora.com/pubkey",
     "jwksUrl": "https://api.hergertsynthora.com/.well-known/jwks.json",
     "envelope": "{result, attestation:{alg,pubkey,sig,canon}}",
     "canon": "json:sort_keys+separators(,:)+ensure_ascii+utf8",
     "sigEncoding": "hex(64B raw)",
     "verify": "recompute canon from envelope.result, then VerifyKey(bytes.fromhex(pubkey)).verify(canon, bytes.fromhex(sig)) -- no name to trust, verify the signature yourself"
    },
    "delivery": {
     "policy": "no-charge-on-service-failure",
     "behaviour": "if the service FAILS (invalid input, timeout, stale cache, withdrawn product, malformed output) you receive 402 and are NOT charged",
     "scope": "this covers service FAILURE, not verdict quality",
     "order": "compute -> failure gate -> verify -> settle -> deliver",
     "verify": "after a request of yours FAILS, check your own wallet on Base: no USDC settlement to our payTo will exist for it. If we had charged you, the transfer would be public and permanent",
     "note": "unlike the signature -- which you verify BEFORE paying -- this one is checked afterwards, on-chain, from your own wallet"
    }
   }
  },
  {
   "resource": "https://dnsdomain.hergertsynthora.com/service",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "maxAmountRequired": "1000",
     "amount": "1000",
     "resource": "https://dnsdomain.hergertsynthora.com/service",
     "description": "Full DNS + WHOIS/RDAP domain report in one call. Resolves A, AAAA, MX, TXT, NS, CNAME, SOA and DNSSEC over DNS-over-HTTPS, plus structured WHOIS via RDAP (registrar, registration/expiration/updated dates, EPP status, nameservers), and returns a 0-100 domain-hygiene score with letter grade (age, days-to-expiry, nameserver redundancy, MX presence, DNSSEC, SPF/DMARC, registrar lock). Deterministic, Ed25519-signed. 0.001 USDC via x402 on Base. SYNTHORA. First call FREE per wallet — send header 'X-WALLET: 0x<your Base address>' (no payment); then 0.001 USDC per call.",
     "mimeType": "application/json",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "domain": "stripe.com"
       },
       "method": "POST"
      },
      "output": {
       "example": {
        "_documentation": {
         "freshness": "NOT_ASSERTED",
         "full_contract": "OpenAPI",
         "historical": true,
         "payment_receipt": "NOT_PRESENT",
         "sample_date": "2026-10-13",
         "state": "DOCUMENTATION_EXCERPT",
         "truncated": true
        },
        "ok": true,
        "result": {
         "niche": "dnsdomain",
         "ok": true,
         "partial": false,
         "result": {
          "a_records": [
           "198.202.176.111",
           "198.137.150.111"
          ],
          "aaaa_records": [],
          "as_of": 1791884931,
          "capture_ts": 1791884931,
          "source_ts": "2026-10-13T09:48:38Z",
          "units": {
           "age_days": "whole days floor",
           "as_of": "unix seconds UTC",
           "capture_ts": "unix seconds UTC",
           "created": "source RFC3339",
           "days_to_expiry": "whole days floor",
           "expires": "source RFC3339"
          }
         },
         "schema_version": "1.0.0"
        }
       },
       "type": "json",
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "domain": {
            "type": "string"
           },
           "hygiene_score": {
            "type": "number"
           },
           "hygiene_grade": {
            "type": "string"
           },
           "registrar": {
            "type": "string"
           },
           "created": {
            "type": "string"
           },
           "expires": {
            "type": "string"
           },
           "age_days": {
            "type": "number"
           },
           "days_to_expiry": {
            "type": "number"
           },
           "mx_present": {
            "type": "boolean"
           },
           "ns_count": {
            "type": "number"
           },
           "dnssec": {
            "type": "boolean"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "domain": {
            "type": "string",
            "description": "Domain, URL or email address to report on"
           }
          },
          "required": [
           "domain"
          ]
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://npm-downloads-range.hergertsynthora.com/service",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "maxAmountRequired": "1000",
     "amount": "1000",
     "resource": "https://npm-downloads-range.hergertsynthora.com/service",
     "description": "Returns a per-day download time series for an npm package over a period from keyless api.npmjs.org — the raw signal for trend and growth-rate detection. Lets autonomous agents compute momentum/decline and feed agent-to-agent dependency-selection scoring. Ranking surface for trajectory. First call FREE per wallet — send header X-WALLET: 0x<addr>. No charge on upstream failure.",
     "mimeType": "application/json",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "package": "express",
        "period": "last-week"
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "npm-downloads-range",
        "result": {
         "package": "express",
         "period": "last-week",
         "total_downloads": 112562186,
         "days": [
          {
           "date": "2026-07-04",
           "downloads": 8067032
          },
          {
           "date": "2026-07-05",
           "downloads": 8095754
          },
          {
           "date": "2026-07-06",
           "downloads": 18740552
          },
          {
           "date": "2026-07-07",
           "downloads": 20257125
          },
          {
           "date": "2026-07-08",
           "downloads": 20019677
          },
          {
           "date": "2026-07-09",
           "downloads": 19363203
          },
          {
           "date": "2026-07-10",
           "downloads": 18018843
          }
         ]
        },
        "provenance": {
         "source": "npm Download Trend (Daily Range)",
         "url": "https://api.npmjs.org/downloads/range/last-week/express"
        }
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "package": {
            "type": "string",
            "minLength": 1,
            "description": "npm package, including scoped packages"
           },
           "period": {
            "type": "string",
            "enum": [
             "last-day",
             "last-week",
             "last-month"
            ],
            "default": "last-week",
            "description": "Named npm daily-download range: last-day, last-week or last-month. Defaults to last-week when a complete start/end pair is absent. Nonempty start and end together override period; unsupported period values are rejected only on the named-range branch."
           },
           "start": {
            "type": "string",
            "format": "date",
            "description": "Start date text in YYYY-MM-DD form for an explicit npm start:end range. Used only when end is also nonempty; the pair overrides period. A lone start is ignored in favor of period/default. The current backend forwards date text without local calendar or ordering validation."
           },
           "end": {
            "type": "string",
            "format": "date",
            "description": "End date text in YYYY-MM-DD form, paired with start for an explicit npm start:end range. The pair overrides period. A lone end is ignored in favor of period/default. Calendar validity, interval ordering and upstream range limits are not validated locally."
           }
          },
          "required": [
           "package"
          ]
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  },
  {
   "resource": "https://who-gho-indicator-timeseries.hergertsynthora.com/service",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "maxAmountRequired": "1000",
     "amount": "1000",
     "resource": "https://who-gho-indicator-timeseries.hergertsynthora.com/service",
     "description": "Returns WHO Global Health Observatory OData time series (ghoapi.azureedge.net/api) for an indicator such as life expectancy (WHOSIS_000001): country, year, sex dimension and numeric value. Autonomous agents and agent-to-agent (A2A) global-health analytics, ESG and country-benchmarking pipelines query it for authoritative WHO statistics. Ranking surface: indicator + country to yearly values. First call FREE per wallet — send header X-WALLET: 0x<addr>. No charge on upstream failure.",
     "mimeType": "application/json",
     "payTo": "0x6D9F318463168fF637b50E5b9a21392e97c7c167",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ],
   "extensions": {
    "bazaar": {
     "info": {
      "input": {
       "type": "http",
       "bodyType": "json",
       "body": {
        "indicatorCode": "WHOSIS_000001",
        "$filter": "SpatialDim eq 'USA'",
        "$top": 2
       },
       "method": "POST"
      },
      "output": {
       "type": "json",
       "example": {
        "ok": true,
        "niche": "who-gho-indicator-timeseries",
        "result": {}
       },
       "schema": {
        "type": "object",
        "properties": {
         "ok": {
          "type": "boolean"
         },
         "niche": {
          "type": "string"
         },
         "result": {
          "type": "object",
          "properties": {
           "count": {
            "type": "number"
           },
           "records": {
            "type": "array"
           },
           "value": {
            "type": "number"
           }
          }
         },
         "receipt": {
          "type": "object"
         },
         "error": {
          "type": "string"
         }
        },
        "required": [
         "ok",
         "niche"
        ]
       }
      }
     },
     "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "properties": {
       "input": {
        "type": "object",
        "properties": {
         "type": {
          "type": "string",
          "const": "http"
         },
         "method": {
          "type": "string",
          "enum": [
           "POST",
           "PUT",
           "PATCH"
          ]
         },
         "bodyType": {
          "type": "string",
          "const": "json"
         },
         "body": {
          "type": "object",
          "properties": {
           "indicatorCode": {
            "type": "string",
            "description": "indicatorCode"
           },
           "$filter": {
            "type": "string",
            "description": "OData filter"
           },
           "$top": {
            "type": "integer",
            "description": "maximum records"
           }
          },
          "required": [
           "indicatorCode",
           "$filter"
          ]
         }
        },
        "required": [
         "type",
         "method",
         "bodyType",
         "body"
        ]
       }
      },
      "required": [
       "input"
      ]
     }
    }
   }
  }
 ]
}