INTELLIGENCE

Know what your agents buy.

Costs, changes and evidence for better service decisions.

Cost intelligence

Find the better way to pay.

Compare service prices and payment options against your workload.

Scoped audits · customer usage requiredRequest a cost audit
Change intelligence

Know when your dependencies change.

Track payment offers, service schemas and provider changes over time.

Custom watchlists and historyDiscuss monitoring
Outcome intelligence

Connect the purchase to the result.

Bring charges, retries and task evaluations into one private evidence record.

Integration pilot · your task criteriaConnect your workflow

THE EVIDENCE BASE

Collected. Dated. Traceable.

Use the API
14,635Source listings
33Source snapshots
27,889Recorded changes
1,221Endpoint observations

Latest snapshot: Sep 12, 2026, 05:41 UTC. Daily collection; gaps remain unknown.

85 observations · Differences between dated observations.

solar.halowerk.comThis is an astronomical and geometric calculation, not a forecast. It assumes a cloudless sky and states the models used; real yield is lower whenever there is cloud, haze, snow, soiling or high cell temperature. The system_derate factor covers cabling, controller and temperature losses as one flat number and defaults to 0.8. Shading is not modelled here. Times are UTC. Use the figure as an upper bound for sizing, not as an expected daily production.
https://solar.halowerk.com/clear-sky-yield
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "This is an astronomical and geometric calculation, not a forecast. It assumes a cloudless sky and states the models used; real yield is lower whenever there is cloud, haze, snow, soiling or high cell temperature. The system_derate factor covers cabling, controller and temperature losses as one flat number and defaults to 0.8. Shading is not modelled here. Times are UTC. Use the figure as an upper bound for sizing, not as an expected daily production.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "albedo": {
                "default": 0.2,
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              "azimuth_deg": {
                "default": 180,
                "description": "Module azimuth, 180 is south, 0 is north.",
                "maximum": 360,
                "minimum": 0,
                "type": "number"
              },
              "date": {
                "description": "Day as YYYY-MM-DD.",
                "type": "string"
              },
              "elevation_m": {
                "default": 0,
                "maximum": 6000,
                "minimum": -500,
                "type": "number"
              },
              "include_series": {
                "default": true,
                "type": "boolean"
              },
              "lat": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "lon": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "panel_wp": {
                "default": 415,
                "description": "Module rating at standard test conditions.",
                "maximum": 100000,
                "minimum": 1,
                "type": "number"
              },
              "step_minutes": {
                "default": 15,
                "maximum": 60,
                "minimum": 5,
                "type": "integer"
              },
              "system_derate": {
                "default": 0.8,
                "maximum": 1,
                "minimum": 0.1,
                "type": "number"
              },
              "tilt_deg": {
                "default": 30,
                "maximum": 90,
                "minimum": 0,
                "type": "number"
              }
            },
            "required": [
              "lat",
              "lon",
              "date"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789166492.489,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "cd1760e19f518b50c9ffbaf84aa5ce626d53ffa2f8f27d71b5391096bf66618e",
  "schema_fingerprint": "5621f95548928616fece0db36c49b5b0f10c5f89d282b7177a669f839040a59b",
  "service_id": "63b819207d56be351569450b09107b63cfe7526cad32dfa1eb7ed96dbcbc383d",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:29:50.885Z",
  "url": "https://solar.halowerk.com/clear-sky-yield",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comIntegrates the supplied current over time by the trapezoidal rule, so the result is only as good as the sampling interval; gaps longer than the stated max_gap_seconds are excluded and reported. Sign convention: positive current is charging, negative is discharging. Internal resistance is estimated from the largest current step in the series and is a rough figure, not a measurement under defined conditions.
https://solar.halowerk.com/battery-cycle
NetworkAdvertised amountBillingPayee
eip155:84530.004 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Integrates the supplied current over time by the trapezoidal rule, so the result is only as good as the sampling interval; gaps longer than the stated max_gap_seconds are excluded and reported. Sign convention: positive current is charging, negative is discharging. Internal resistance is estimated from the largest current step in the series and is a rough figure, not a measurement under defined conditions.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "cells_in_series": {
                "default": 4,
                "maximum": 64,
                "minimum": 1,
                "type": "integer"
              },
              "max_gap_seconds": {
                "default": 300,
                "maximum": 86400,
                "minimum": 1,
                "type": "number"
              },
              "nominal_capacity_ah": {
                "maximum": 10000,
                "minimum": 0.1,
                "type": "number"
              },
              "rest_current_a": {
                "default": 0.5,
                "description": "Below this absolute current a sample counts as resting.",
                "maximum": 100,
                "minimum": 0,
                "type": "number"
              },
              "samples": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "current_a": {
                      "description": "Positive charging, negative discharging.",
                      "maximum": 2000,
                      "minimum": -2000,
                      "type": "number"
                    },
                    "t_s": {
                      "description": "Seconds since series start, strictly increasing.",
                      "maximum": 100000000,
                      "minimum": 0,
                      "type": "number"
                    },
                    "temperature_c": {
                      "maximum": 120,
                      "minimum": -60,
                      "type": "number"
                    },
                    "voltage_v": {
                      "description": "Pack voltage.",
                      "maximum": 1000,
                      "minimum": 0,
                      "type": "number"
                    }
                  },
                  "required": [
                    "t_s",
                    "voltage_v",
                    "current_a"
                  ],
                  "type": "object"
                },
                "maxItems": 5000,
                "minItems": 3,
                "type": "array"
              }
            },
            "required": [
              "samples"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789166492.489,
  "offers": [
    {
      "amount": "0.004",
      "amount_atomic": "4000",
      "amount_encoding": "atomic_units",
      "amount_raw": "4000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "cd1760e19f518b50c9ffbaf84aa5ce626d53ffa2f8f27d71b5391096bf66618e",
  "schema_fingerprint": "3f6ac0be2bb15fb75b1c6381be8dd973a1efddecc4fa093215a47f86b5f583d8",
  "service_id": "9b710bf445f4f5a917163177256bed7d7c70d2816805b22d776d1594d02b0b9d",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:30:16.096Z",
  "url": "https://solar.halowerk.com/battery-cycle",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comDaily energy balance and straight run-down from the figures supplied. Solar input is caller data in watt-hours per day; nothing is fetched and no weather is assumed. Time to empty means time to the reserve floor, not to zero. Idle draw and conversion efficiency apply to AC loads only. Ageing, temperature and Peukert behaviour are not modelled, which matters for lead acid far more than for LiFePO4.
https://solar.halowerk.com/autonomy-forecast
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Daily energy balance and straight run-down from the figures supplied. Solar input is caller data in watt-hours per day; nothing is fetched and no weather is assumed. Time to empty means time to the reserve floor, not to zero. Idle draw and conversion efficiency apply to AC loads only. Ageing, temperature and Peukert behaviour are not modelled, which matters for lead acid far more than for LiFePO4.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "battery": {
                "additionalProperties": false,
                "properties": {
                  "capacity_ah": {
                    "maximum": 100000,
                    "minimum": 1,
                    "type": "number"
                  },
                  "capacity_wh": {
                    "maximum": 10000000,
                    "minimum": 10,
                    "type": "number"
                  },
                  "nominal_voltage_v": {
                    "default": 12,
                    "maximum": 1000,
                    "minimum": 6,
                    "type": "number"
                  },
                  "reserve_soc_percent": {
                    "default": 20,
                    "description": "Floor not to be crossed.",
                    "maximum": 90,
                    "minimum": 0,
                    "type": "number"
                  },
                  "soc_percent": {
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": [
                  "soc_percent"
                ],
                "type": "object"
              },
              "daily_solar_input_wh": {
                "default": 0,
                "description": "Expected harvest per day.",
                "maximum": 1000000,
                "minimum": 0,
                "type": "number"
              },
              "inverter": {
                "additionalProperties": false,
                "properties": {
                  "efficiency": {
                    "default": 0.9,
                    "maximum": 1,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "hours_powered_per_day": {
                    "default": 24,
                    "maximum": 24,
                    "minimum": 0,
                    "type": "number"
                  },
                  "idle_w": {
                    "default": 15,
                    "maximum": 500,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "loads": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "dc": {
                      "default": false,
                      "description": "True for loads fed straight from the battery.",
                      "type": "boolean"
                    },
                    "hours_per_day": {
                      "default": 24,
                      "maximum": 24,
                      "minimum": 0,
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "watts": {
                      "maximum": 50000,
                      "minimum": 0,
                      "type": "number"
                    }
                  },
                  "required": [
                    "name",
                    "watts"
                  ],
                  "type": "object"
                },
                "maxItems": 60,
                "minItems": 1,
                "type": "array"
              }
            },
            "required": [
              "battery",
              "loads"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789166492.489,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "cd1760e19f518b50c9ffbaf84aa5ce626d53ffa2f8f27d71b5391096bf66618e",
  "schema_fingerprint": "5af6fc837b11a7eb7d48a8e04df6892f13da97f6a3e339a6ece4b1f71b9c1c8e",
  "service_id": "a0635c1267ca0cf2e11664481bd5fc7b7a6f1c7e996220513e32a2ec1198a05e",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T08:09:04.261Z",
  "url": "https://solar.halowerk.com/autonomy-forecast",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comUses the nearest current DWD MOSMIX_L station forecast, or a station explicitly supplied by the caller. Global irradiance drives a transparent PV estimate and forecast wind speed drives a stated generic turbine curve; neither replaces a site-specific yield model. A constant hourly load and optional battery are simulated over 12 to 120 hours. The result is an installation-risk signal, not an official weather warning, emergency alert or guarantee of supply.
https://solar.halowerk.com/off-grid-weather-alarm
NetworkAdvertised amountBillingPayee
eip155:84530.005 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Uses the nearest current DWD MOSMIX_L station forecast, or a station explicitly supplied by the caller. Global irradiance drives a transparent PV estimate and forecast wind speed drives a stated generic turbine curve; neither replaces a site-specific yield model. A constant hourly load and optional battery are simulated over 12 to 120 hours. The result is an installation-risk signal, not an official weather warning, emergency alert or guarantee of supply.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "alert": {
                "additionalProperties": false,
                "properties": {
                  "minimum_duration_hours": {
                    "default": 6,
                    "maximum": 48,
                    "minimum": 3,
                    "type": "integer"
                  },
                  "renewable_coverage_percent": {
                    "default": 50,
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "battery": {
                "additionalProperties": false,
                "properties": {
                  "capacity_wh": {
                    "maximum": 100000000,
                    "minimum": 10,
                    "type": "number"
                  },
                  "charge_efficiency": {
                    "default": 0.95,
                    "maximum": 1,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "discharge_efficiency": {
                    "default": 0.95,
                    "maximum": 1,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "reserve_soc_percent": {
                    "default": 20,
                    "maximum": 90,
                    "minimum": 0,
                    "type": "number"
                  },
                  "soc_percent": {
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": [
                  "capacity_wh",
                  "soc_percent"
                ],
                "type": "object"
              },
              "forecast_hours": {
                "default": 72,
                "maximum": 120,
                "minimum": 12,
                "type": "integer"
              },
              "include_series": {
                "default": true,
                "type": "boolean"
              },
              "lat": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "load_wh_per_day": {
                "maximum": 10000000,
                "minimum": 1,
                "type": "number"
              },
              "lon": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "max_station_distance_km": {
                "default": 80,
                "maximum": 300,
                "minimum": 1,
                "type": "number"
              },
              "solar": {
                "additionalProperties": false,
                "properties": {
                  "capacity_wp": {
                    "maximum": 10000000,
                    "minimum": 0,
                    "type": "number"
                  },
                  "performance_ratio": {
                    "default": 0.78,
                    "maximum": 1,
                    "minimum": 0.1,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "station_id": {
                "description": "Optional DWD MOSMIX station id. Use this or coordinates.",
                "pattern": "^[A-Za-z0-9]{4,5}$",
                "type": "string"
              },
              "wind": {
                "additionalProperties": false,
                "properties": {
                  "capacity_w": {
                    "maximum": 10000000,
                    "minimum": 0,
                    "type": "number"
                  },
                  "cut_in_m_s": {
                    "default": 3,
                    "maximum": 10,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "cut_out_m_s": {
                    "default": 25,
                    "maximum": 60,
                    "minimum": 5,
                    "type": "number"
                  },
                  "rated_m_s": {
                    "default": 12,
                    "maximum": 30,
                    "minimum": 2,
                    "type": "number"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "load_wh_per_day"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789166492.489,
  "offers": [
    {
      "amount": "0.005",
      "amount_atomic": "5000",
      "amount_encoding": "atomic_units",
      "amount_raw": "5000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "cd1760e19f518b50c9ffbaf84aa5ce626d53ffa2f8f27d71b5391096bf66618e",
  "schema_fingerprint": "d0864f6288c2e88249e9e87f638a19d7d07d8c2a8eb41c224d6d33d8e804ce7c",
  "service_id": "d2ead2ed56c4171be6b4e238f7b5204282c52da43e7f6506aa12773520343915",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-30T20:00:34.276Z",
  "url": "https://solar.halowerk.com/off-grid-weather-alarm",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comUses rated electrical power, food mass, start and target temperature, specific heat and an explicit efficiency range supplied by the caller. Optional vessel heat, evaporation and a caller-defined hold phase can be included. It contains no recipes, recipe text, food-specific cooking claims or hidden food database; the output separates the thermodynamic lower bound from the practical range and is not a food-safety clearance.
https://solar.halowerk.com/low-wattage-cooking
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Uses rated electrical power, food mass, start and target temperature, specific heat and an explicit efficiency range supplied by the caller. Optional vessel heat, evaporation and a caller-defined hold phase can be included. It contains no recipes, recipe text, food-specific cooking claims or hidden food database; the output separates the thermodynamic lower bound from the practical range and is not a food-safety clearance.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "device_power_w": {
                "description": "Caller-supplied rated electrical input power in watts.",
                "exclusiveMinimum": 0,
                "maximum": 10000,
                "type": "number"
              },
              "efficiency": {
                "additionalProperties": false,
                "properties": {
                  "expected": {
                    "exclusiveMinimum": 0,
                    "maximum": 1,
                    "type": "number"
                  },
                  "high": {
                    "exclusiveMinimum": 0,
                    "maximum": 1,
                    "type": "number"
                  },
                  "low": {
                    "exclusiveMinimum": 0,
                    "maximum": 1,
                    "type": "number"
                  }
                },
                "required": [
                  "low",
                  "expected",
                  "high"
                ],
                "type": "object"
              },
              "evaporation": {
                "additionalProperties": false,
                "properties": {
                  "latent_heat_kj_kg": {
                    "maximum": 5000,
                    "minimum": 0,
                    "type": "number"
                  },
                  "mass_kg": {
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": [
                  "mass_kg",
                  "latent_heat_kj_kg"
                ],
                "type": "object"
              },
              "food_mass_kg": {
                "description": "Mass being heated in kilograms.",
                "exclusiveMinimum": 0,
                "maximum": 100,
                "type": "number"
              },
              "hold": {
                "additionalProperties": false,
                "properties": {
                  "minutes": {
                    "maximum": 1440,
                    "minimum": 0,
                    "type": "number"
                  },
                  "power_fraction": {
                    "description": "Average fraction of rated input power during the hold phase.",
                    "maximum": 1,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": [
                  "minutes",
                  "power_fraction"
                ],
                "type": "object"
              },
              "specific_heat_kj_kg_k": {
                "description": "Caller-supplied effective specific heat of the contents.",
                "exclusiveMinimum": 0,
                "maximum": 10,
                "type": "number"
              },
              "start_temperature_c": {
                "maximum": 200,
                "minimum": -50,
                "type": "number"
              },
              "target_temperature_c": {
                "maximum": 300,
                "minimum": -49,
                "type": "number"
              },
              "vessel": {
                "additionalProperties": false,
                "properties": {
                  "mass_kg": {
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  },
                  "specific_heat_kj_kg_k": {
                    "exclusiveMinimum": 0,
                    "maximum": 10,
                    "type": "number"
                  }
                },
                "required": [
                  "mass_kg",
                  "specific_heat_kj_kg_k"
                ],
                "type": "object"
              }
            },
            "required": [
              "device_power_w",
              "food_mass_kg",
              "start_temperature_c",
              "target_temperature_c",
              "specific_heat_kj_kg_k",
              "efficiency"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789166492.489,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "cd1760e19f518b50c9ffbaf84aa5ce626d53ffa2f8f27d71b5391096bf66618e",
  "schema_fingerprint": "6db3057f5537856c6d9815c41432f853fb5f362eb7fc3dc9876bfb33247fb40c",
  "service_id": "ec1362d41658564d13eff07dbeda07de737718d0d9f6d67b4fa6cb8fd7279d51",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-30T21:16:15.231Z",
  "url": "https://solar.halowerk.com/low-wattage-cooking",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comComputes a transparent planning estimate for space-heating demand. The method is not DIN, VDI, GEG or PHPP and must not be used as regulatory proof. It combines transmission heat loss from each envelope component, ventilation heat loss from heated volume and air changes, monthly heating degree days from the nearest DWD 1991-2020 temperature-normal station, stated internal gains and optional domestic hot water.
https://solar.halowerk.com/building-heat-demand
NetworkAdvertised amountBillingPayee
eip155:84530.004 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Computes a transparent planning estimate for space-heating demand. The method is not DIN, VDI, GEG or PHPP and must not be used as regulatory proof. It combines transmission heat loss from each envelope component, ventilation heat loss from heated volume and air changes, monthly heating degree days from the nearest DWD 1991-2020 temperature-normal station, stated internal gains and optional domestic hot water.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "examples": [
              {
                "domestic_hot_water_kwh_year": 1800,
                "envelope": [
                  {
                    "area_m2": 168,
                    "name": "external walls",
                    "u_value_w_m2k": 0.22
                  },
                  {
                    "area_m2": 118,
                    "name": "roof",
                    "u_value_w_m2k": 0.16
                  },
                  {
                    "area_m2": 92,
                    "name": "ground floor",
                    "u_value_w_m2k": 0.25
                  },
                  {
                    "area_m2": 31,
                    "name": "windows",
                    "u_value_w_m2k": 0.95
                  }
                ],
                "heated_floor_area_m2": 145,
                "heated_volume_m3": 365,
                "lat": 52.52,
                "lon": 13.405,
                "max_station_distance_km": 70,
                "profile": {
                  "heating_base_temp_c": 15,
                  "indoor_temp_c": 20,
                  "internal_gains_w": 350
                },
                "system_efficiency": 0.92,
                "ventilation": {
                  "air_changes_per_hour": 0.45,
                  "heat_recovery_efficiency": 0.15
                }
              }
            ],
            "properties": {
              "domestic_hot_water_kwh_year": {
                "default": 0,
                "maximum": 1000000,
                "minimum": 0,
                "type": "number"
              },
              "envelope": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "area_m2": {
                      "maximum": 100000,
                      "minimum": 0.1,
                      "type": "number"
                    },
                    "name": {
                      "maxLength": 80,
                      "minLength": 1,
                      "type": "string"
                    },
                    "u_value_w_m2k": {
                      "maximum": 8,
                      "minimum": 0.01,
                      "type": "number"
                    }
                  },
                  "required": [
                    "name",
                    "area_m2",
                    "u_value_w_m2k"
                  ],
                  "type": "object"
                },
                "maxItems": 40,
                "minItems": 1,
                "type": "array"
              },
              "heated_floor_area_m2": {
                "maximum": 100000,
                "minimum": 5,
                "type": "number"
              },
              "heated_volume_m3": {
                "maximum": 1000000,
                "minimum": 10,
                "type": "number"
              },
              "lat": {
                "description": "Latitude in Germany; the DWD normal dataset used here covers Germany.",
                "maximum": 56,
                "minimum": 47,
                "type": "number"
              },
              "lon": {
                "maximum": 16,
                "minimum": 5,
                "type": "number"
              },
              "max_station_distance_km": {
                "default": 80,
                "maximum": 200,
                "minimum": 1,
                "type": "number"
              },
              "profile": {
                "additionalProperties": false,
                "properties": {
                  "heating_base_temp_c": {
                    "default": 15,
                    "maximum": 25,
                    "minimum": 0,
                    "type": "number"
                  },
                  "indoor_temp_c": {
                    "default": 20,
                    "maximum": 30,
                    "minimum": 5,
                    "type": "number"
                  },
                  "internal_gains_w": {
                    "default": 0,
                    "maximum": 100000,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "system_efficiency": {
                "default": 1,
                "maximum": 1.5,
                "minimum": 0.5,
                "type": "number"
              },
              "thermal_bridge_w_k": {
                "default": 0,
                "maximum": 100000,
                "minimum": 0,
                "type": "number"
              },
              "ventilation": {
                "additionalProperties": false,
                "properties": {
                  "air_changes_per_hour": {
                    "default": 0.5,
                    "maximum": 5,
                    "minimum": 0,
                    "type": "number"
                  },
                  "heat_recovery_efficiency": {
                    "default": 0,
                    "maximum": 0.95,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "lat",
              "lon",
              "heated_floor_area_m2",
              "heated_volume_m3",
              "envelope"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789166492.489,
  "offers": [
    {
      "amount": "0.004",
      "amount_atomic": "4000",
      "amount_encoding": "atomic_units",
      "amount_raw": "4000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "cd1760e19f518b50c9ffbaf84aa5ce626d53ffa2f8f27d71b5391096bf66618e",
  "schema_fingerprint": "4c0e8edfc40276415cb101d8068b427205f63db26dc625bd55b3cbda52a9445a",
  "service_id": "ed88790a4f816d3c858e465d2b63d2eb832f8b7390ae91d5f24c3de106434632",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-19T15:04:07.143Z",
  "url": "https://solar.halowerk.com/building-heat-demand",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comEvaluates clear-sky irradiance in the module plane for tilt angles from zero to ninety degrees on the fifteenth of each month and sums the days. Because it assumes a cloudless sky, the optimum leans slightly steeper than a real-weather optimum, where diffuse light from an overcast sky rewards flatter angles; in summer the difference is small, in winter months it reaches ten to fifteen degrees, so treat the winter figures as an upper bound.
https://solar.halowerk.com/tilt-optimiser
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Evaluates clear-sky irradiance in the module plane for tilt angles from zero to ninety degrees on the fifteenth of each month and sums the days. Because it assumes a cloudless sky, the optimum leans slightly steeper than a real-weather optimum, where diffuse light from an overcast sky rewards flatter angles; in summer the difference is small, in winter months it reaches ten to fifteen degrees, so treat the winter figures as an upper bound.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "albedo": {
                "default": 0.2,
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              "azimuth_deg": {
                "default": 180,
                "maximum": 360,
                "minimum": 0,
                "type": "number"
              },
              "current_tilt_deg": {
                "description": "Tilt in use today, for the loss comparison.",
                "maximum": 90,
                "minimum": 0,
                "type": "number"
              },
              "elevation_m": {
                "default": 0,
                "maximum": 6000,
                "minimum": -500,
                "type": "number"
              },
              "lat": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "lon": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "tilt_step_deg": {
                "default": 2,
                "maximum": 10,
                "minimum": 1,
                "type": "number"
              },
              "year": {
                "default": 2026,
                "maximum": 2100,
                "minimum": 1970,
                "type": "integer"
              }
            },
            "required": [
              "lat",
              "lon"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789166492.489,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "cd1760e19f518b50c9ffbaf84aa5ce626d53ffa2f8f27d71b5391096bf66618e",
  "schema_fingerprint": "a30f6d383df6e22091dad3e3ef9dcf5f8f5ab56854f6be701762ca673fe86034",
  "service_id": "f06dfb5761e717eb252375c802015b258fca51ab95c8c357224986e4ff83bc58",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:29:53.47Z",
  "url": "https://solar.halowerk.com/tilt-optimiser",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comContinuous load is the sum of the running watts of all appliances marked as simultaneous. The surge check adds the largest single starting surge on top of the continuous load, which is the case that trips an inverter; simultaneous starts of two motors are reported separately as a second figure. Starting factors and power factors are design rules of thumb per appliance class and are stated in the response, they are not device data.
https://solar.halowerk.com/inverter-load-check
NetworkAdvertised amountBillingPayee
eip155:84530.002 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Continuous load is the sum of the running watts of all appliances marked as simultaneous. The surge check adds the largest single starting surge on top of the continuous load, which is the case that trips an inverter; simultaneous starts of two motors are reported separately as a second figure. Starting factors and power factors are design rules of thumb per appliance class and are stated in the response, they are not device data.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "battery_voltage_v": {
                "description": "For the DC current figure. Without it that field stays null.",
                "maximum": 1000,
                "minimum": 6,
                "type": "number"
              },
              "inverter": {
                "additionalProperties": false,
                "properties": {
                  "continuous_w": {
                    "maximum": 100000,
                    "minimum": 50,
                    "type": "number"
                  },
                  "efficiency": {
                    "default": 0.9,
                    "maximum": 1,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "idle_w": {
                    "default": 15,
                    "maximum": 500,
                    "minimum": 0,
                    "type": "number"
                  },
                  "surge_w": {
                    "description": "Peak rating. Defaults to twice the continuous rating.",
                    "maximum": 400000,
                    "minimum": 50,
                    "type": "number"
                  }
                },
                "required": [
                  "continuous_w"
                ],
                "type": "object"
              },
              "loads": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "power_factor": {
                      "maximum": 1,
                      "minimum": 0.3,
                      "type": "number"
                    },
                    "quantity": {
                      "default": 1,
                      "maximum": 200,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "simultaneous": {
                      "default": true,
                      "description": "False if the appliance never runs together with the others.",
                      "type": "boolean"
                    },
                    "surge_factor": {
                      "maximum": 12,
                      "minimum": 1,
                      "type": "number"
                    },
                    "type": {
                      "description": "Appliance class: resistive, electronics, led, motor, pump, compressor, induction.",
                      "type": "string"
                    },
                    "watts": {
                      "maximum": 50000,
                      "minimum": 0.1,
                      "type": "number"
                    }
                  },
                  "required": [
                    "name",
                    "watts"
                  ],
                  "type": "object"
                },
                "maxItems": 60,
                "minItems": 1,
                "type": "array"
              }
            },
            "required": [
              "inverter",
              "loads"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789166492.489,
  "offers": [
    {
      "amount": "0.002",
      "amount_atomic": "2000",
      "amount_encoding": "atomic_units",
      "amount_raw": "2000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "cd1760e19f518b50c9ffbaf84aa5ce626d53ffa2f8f27d71b5391096bf66618e",
  "schema_fingerprint": "9ebfbb4d7108fefe327a78b91544a84325ab7d146c2f89e39bcbbc74c022dccd",
  "service_id": "fc66a2b5e49e0c6dae860a827f74d5c97192232581da771f48514e9dca5e0094",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-17T11:25:52.731Z",
  "url": "https://solar.halowerk.com/inverter-load-check",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comCable loss uses the DC resistance of the two-way run at twenty degrees Celsius; warm cable in a hot compartment carries roughly four percent more resistance per ten kelvin, which is not applied. Inverter loss follows a three-part model of idle draw, a proportional share and a quadratic share, fitted so that the stated peak efficiency is met near half of the rated power.
https://solar.halowerk.com/inverter-losses
NetworkAdvertised amountBillingPayee
eip155:84530.002 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Cable loss uses the DC resistance of the two-way run at twenty degrees Celsius; warm cable in a hot compartment carries roughly four percent more resistance per ten kelvin, which is not applied. Inverter loss follows a three-part model of idle draw, a proportional share and a quadratic share, fitted so that the stated peak efficiency is met near half of the rated power.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "battery_voltage_v": {
                "maximum": 1000,
                "minimum": 6,
                "type": "number"
              },
              "cable": {
                "additionalProperties": false,
                "properties": {
                  "cross_section_mm2": {
                    "maximum": 500,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "length_m": {
                    "description": "One-way run; the calculation doubles it.",
                    "maximum": 200,
                    "minimum": 0.1,
                    "type": "number"
                  },
                  "material": {
                    "default": "copper",
                    "enum": [
                      "copper",
                      "aluminium"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "length_m",
                  "cross_section_mm2"
                ],
                "type": "object"
              },
              "inverter": {
                "additionalProperties": false,
                "properties": {
                  "efficiency_at_load": {
                    "description": "Measured efficiency at this exact load, overrides the model.",
                    "maximum": 0.99,
                    "minimum": 0.3,
                    "type": "number"
                  },
                  "idle_w": {
                    "default": 15,
                    "maximum": 500,
                    "minimum": 0,
                    "type": "number"
                  },
                  "peak_efficiency": {
                    "default": 0.93,
                    "maximum": 0.99,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "rated_w": {
                    "default": 1200,
                    "maximum": 100000,
                    "minimum": 50,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "load_w": {
                "description": "AC power drawn at the output.",
                "maximum": 100000,
                "minimum": 1,
                "type": "number"
              },
              "max_voltage_drop_percent": {
                "default": 3,
                "maximum": 10,
                "minimum": 0.5,
                "type": "number"
              }
            },
            "required": [
              "load_w",
              "battery_voltage_v"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.002",
      "amount_atomic": "2000",
      "amount_encoding": "atomic_units",
      "amount_raw": "2000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "d8d1f90328fa48563be339a8a50bb9cf4bc6204d413328edb088eb49d03a177a",
  "service_id": "01e15e066c5ab6d6751c03ec32bd46bb8ea7e388875c5215a3b50e255c9961d9",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:29:55.064Z",
  "url": "https://solar.halowerk.com/inverter-losses",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comReads the key-tab-value lines of the VE.Direct text protocol, applies the unit scaling that belongs to each key, and decodes the charger state, tracker state and error number into plain text. Multiple blocks in one dump are returned as separate records in order. Keys that are not in the field table are preserved verbatim under unknown_keys rather than guessed at. The checksum line is not verified, since a text export usually no longer carries the original byte framing.
https://solar.halowerk.com/victron-log-parse
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Reads the key-tab-value lines of the VE.Direct text protocol, applies the unit scaling that belongs to each key, and decodes the charger state, tracker state and error number into plain text. Multiple blocks in one dump are returned as separate records in order. Keys that are not in the field table are preserved verbatim under unknown_keys rather than guessed at. The checksum line is not verified, since a text export usually no longer carries the original byte framing.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "keep_raw": {
                "default": false,
                "description": "Also return the raw key-value pairs per record.",
                "type": "boolean"
              },
              "text": {
                "description": "Raw VE.Direct dump, one key-tab-value pair per line.",
                "maxLength": 120000,
                "minLength": 3,
                "type": "string"
              }
            },
            "required": [
              "text"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "c87d436cd613b426d57f39f4739017249c7c89ac3a2143cb3f8a5d5f178d2064",
  "service_id": "024db525b75d15744f02cc16c857afabb4a28c95a66ab8e1013348758b98a041",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-16T18:37:23.136Z",
  "url": "https://solar.halowerk.com/victron-log-parse",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comPure astronomy and geometry on level ground: sun position by the NOAA method, shadow length as object height divided by the tangent of the sun elevation. Refraction is only applied to sunrise and sunset. Terrain slope, surrounding buildings, vegetation and diffuse light are not modelled, so a point outside the shadow can still be shaded in reality. Times are UTC.
https://solar.halowerk.com/shadow-simulator
NetworkAdvertised amountBillingPayee
eip155:84530.002 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Pure astronomy and geometry on level ground: sun position by the NOAA method, shadow length as object height divided by the tangent of the sun elevation. Refraction is only applied to sunrise and sunset. Terrain slope, surrounding buildings, vegetation and diffuse light are not modelled, so a point outside the shadow can still be shaded in reality. Times are UTC.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "bearing_tolerance_deg": {
                "default": 10,
                "maximum": 90,
                "minimum": 1,
                "type": "number"
              },
              "date": {
                "description": "Day as YYYY-MM-DD.",
                "type": "string"
              },
              "lat": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "lon": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "max_shadow_length_m": {
                "default": 500,
                "description": "Shadow lengths above this are reported as capped.",
                "maximum": 100000,
                "minimum": 1,
                "type": "number"
              },
              "object_height_m": {
                "maximum": 1000,
                "minimum": 0.01,
                "type": "number"
              },
              "obstacle_bearing_deg": {
                "description": "Compass bearing from the object to that point.",
                "maximum": 360,
                "minimum": 0,
                "type": "number"
              },
              "obstacle_distance_m": {
                "description": "Distance of the point of interest from the object.",
                "maximum": 10000,
                "minimum": 0.01,
                "type": "number"
              },
              "step_minutes": {
                "default": 30,
                "maximum": 60,
                "minimum": 5,
                "type": "integer"
              }
            },
            "required": [
              "lat",
              "lon",
              "date",
              "object_height_m"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.002",
      "amount_atomic": "2000",
      "amount_encoding": "atomic_units",
      "amount_raw": "2000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "22ff386106a5470ebd7dc569385580be7af7d559ed172a2eef94d9567c7700b5",
  "service_id": "3f8acf42d5cee5567528ca580ad1ef0c24d0f0121b62662b2ac0bce24077c9b0",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:29:52.43Z",
  "url": "https://solar.halowerk.com/shadow-simulator",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comThis is an astronomical and geometric calculation, not a forecast. It assumes a cloudless sky and states the models used; real yield is lower whenever there is cloud, haze, snow, soiling or high cell temperature. The system_derate factor covers cabling, controller and temperature losses as one flat number and defaults to 0.8. Shading is not modelled here. Times are UTC. Use the figure as an upper bound for sizing, not as an expected daily production.
https://solar.halowerk.com/clear-sky-yield
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "This is an astronomical and geometric calculation, not a forecast. It assumes a cloudless sky and states the models used; real yield is lower whenever there is cloud, haze, snow, soiling or high cell temperature. The system_derate factor covers cabling, controller and temperature losses as one flat number and defaults to 0.8. Shading is not modelled here. Times are UTC. Use the figure as an upper bound for sizing, not as an expected daily production.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "albedo": {
                "default": 0.2,
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              "azimuth_deg": {
                "default": 180,
                "description": "Module azimuth, 180 is south, 0 is north.",
                "maximum": 360,
                "minimum": 0,
                "type": "number"
              },
              "date": {
                "description": "Day as YYYY-MM-DD.",
                "type": "string"
              },
              "elevation_m": {
                "default": 0,
                "maximum": 6000,
                "minimum": -500,
                "type": "number"
              },
              "include_series": {
                "default": true,
                "type": "boolean"
              },
              "lat": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "lon": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "panel_wp": {
                "default": 415,
                "description": "Module rating at standard test conditions.",
                "maximum": 100000,
                "minimum": 1,
                "type": "number"
              },
              "step_minutes": {
                "default": 15,
                "maximum": 60,
                "minimum": 5,
                "type": "integer"
              },
              "system_derate": {
                "default": 0.8,
                "maximum": 1,
                "minimum": 0.1,
                "type": "number"
              },
              "tilt_deg": {
                "default": 30,
                "maximum": 90,
                "minimum": 0,
                "type": "number"
              }
            },
            "required": [
              "lat",
              "lon",
              "date"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "5621f95548928616fece0db36c49b5b0f10c5f89d282b7177a669f839040a59b",
  "service_id": "63b819207d56be351569450b09107b63cfe7526cad32dfa1eb7ed96dbcbc383d",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:29:50.885Z",
  "url": "https://solar.halowerk.com/clear-sky-yield",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comIntegrates the supplied current over time by the trapezoidal rule, so the result is only as good as the sampling interval; gaps longer than the stated max_gap_seconds are excluded and reported. Sign convention: positive current is charging, negative is discharging. Internal resistance is estimated from the largest current step in the series and is a rough figure, not a measurement under defined conditions.
https://solar.halowerk.com/battery-cycle
NetworkAdvertised amountBillingPayee
eip155:84530.004 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Integrates the supplied current over time by the trapezoidal rule, so the result is only as good as the sampling interval; gaps longer than the stated max_gap_seconds are excluded and reported. Sign convention: positive current is charging, negative is discharging. Internal resistance is estimated from the largest current step in the series and is a rough figure, not a measurement under defined conditions.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "cells_in_series": {
                "default": 4,
                "maximum": 64,
                "minimum": 1,
                "type": "integer"
              },
              "max_gap_seconds": {
                "default": 300,
                "maximum": 86400,
                "minimum": 1,
                "type": "number"
              },
              "nominal_capacity_ah": {
                "maximum": 10000,
                "minimum": 0.1,
                "type": "number"
              },
              "rest_current_a": {
                "default": 0.5,
                "description": "Below this absolute current a sample counts as resting.",
                "maximum": 100,
                "minimum": 0,
                "type": "number"
              },
              "samples": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "current_a": {
                      "description": "Positive charging, negative discharging.",
                      "maximum": 2000,
                      "minimum": -2000,
                      "type": "number"
                    },
                    "t_s": {
                      "description": "Seconds since series start, strictly increasing.",
                      "maximum": 100000000,
                      "minimum": 0,
                      "type": "number"
                    },
                    "temperature_c": {
                      "maximum": 120,
                      "minimum": -60,
                      "type": "number"
                    },
                    "voltage_v": {
                      "description": "Pack voltage.",
                      "maximum": 1000,
                      "minimum": 0,
                      "type": "number"
                    }
                  },
                  "required": [
                    "t_s",
                    "voltage_v",
                    "current_a"
                  ],
                  "type": "object"
                },
                "maxItems": 5000,
                "minItems": 3,
                "type": "array"
              }
            },
            "required": [
              "samples"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.004",
      "amount_atomic": "4000",
      "amount_encoding": "atomic_units",
      "amount_raw": "4000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "3f6ac0be2bb15fb75b1c6381be8dd973a1efddecc4fa093215a47f86b5f583d8",
  "service_id": "9b710bf445f4f5a917163177256bed7d7c70d2816805b22d776d1594d02b0b9d",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:30:16.096Z",
  "url": "https://solar.halowerk.com/battery-cycle",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comDaily energy balance and straight run-down from the figures supplied. Solar input is caller data in watt-hours per day; nothing is fetched and no weather is assumed. Time to empty means time to the reserve floor, not to zero. Idle draw and conversion efficiency apply to AC loads only. Ageing, temperature and Peukert behaviour are not modelled, which matters for lead acid far more than for LiFePO4.
https://solar.halowerk.com/autonomy-forecast
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Daily energy balance and straight run-down from the figures supplied. Solar input is caller data in watt-hours per day; nothing is fetched and no weather is assumed. Time to empty means time to the reserve floor, not to zero. Idle draw and conversion efficiency apply to AC loads only. Ageing, temperature and Peukert behaviour are not modelled, which matters for lead acid far more than for LiFePO4.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "battery": {
                "additionalProperties": false,
                "properties": {
                  "capacity_ah": {
                    "maximum": 100000,
                    "minimum": 1,
                    "type": "number"
                  },
                  "capacity_wh": {
                    "maximum": 10000000,
                    "minimum": 10,
                    "type": "number"
                  },
                  "nominal_voltage_v": {
                    "default": 12,
                    "maximum": 1000,
                    "minimum": 6,
                    "type": "number"
                  },
                  "reserve_soc_percent": {
                    "default": 20,
                    "description": "Floor not to be crossed.",
                    "maximum": 90,
                    "minimum": 0,
                    "type": "number"
                  },
                  "soc_percent": {
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": [
                  "soc_percent"
                ],
                "type": "object"
              },
              "daily_solar_input_wh": {
                "default": 0,
                "description": "Expected harvest per day.",
                "maximum": 1000000,
                "minimum": 0,
                "type": "number"
              },
              "inverter": {
                "additionalProperties": false,
                "properties": {
                  "efficiency": {
                    "default": 0.9,
                    "maximum": 1,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "hours_powered_per_day": {
                    "default": 24,
                    "maximum": 24,
                    "minimum": 0,
                    "type": "number"
                  },
                  "idle_w": {
                    "default": 15,
                    "maximum": 500,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "loads": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "dc": {
                      "default": false,
                      "description": "True for loads fed straight from the battery.",
                      "type": "boolean"
                    },
                    "hours_per_day": {
                      "default": 24,
                      "maximum": 24,
                      "minimum": 0,
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "watts": {
                      "maximum": 50000,
                      "minimum": 0,
                      "type": "number"
                    }
                  },
                  "required": [
                    "name",
                    "watts"
                  ],
                  "type": "object"
                },
                "maxItems": 60,
                "minItems": 1,
                "type": "array"
              }
            },
            "required": [
              "battery",
              "loads"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "5af6fc837b11a7eb7d48a8e04df6892f13da97f6a3e339a6ece4b1f71b9c1c8e",
  "service_id": "a0635c1267ca0cf2e11664481bd5fc7b7a6f1c7e996220513e32a2ec1198a05e",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T08:09:04.261Z",
  "url": "https://solar.halowerk.com/autonomy-forecast",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comUses the nearest current DWD MOSMIX_L station forecast, or a station explicitly supplied by the caller. Global irradiance drives a transparent PV estimate and forecast wind speed drives a stated generic turbine curve; neither replaces a site-specific yield model. A constant hourly load and optional battery are simulated over 12 to 120 hours. The result is an installation-risk signal, not an official weather warning, emergency alert or guarantee of supply.
https://solar.halowerk.com/off-grid-weather-alarm
NetworkAdvertised amountBillingPayee
eip155:84530.005 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Uses the nearest current DWD MOSMIX_L station forecast, or a station explicitly supplied by the caller. Global irradiance drives a transparent PV estimate and forecast wind speed drives a stated generic turbine curve; neither replaces a site-specific yield model. A constant hourly load and optional battery are simulated over 12 to 120 hours. The result is an installation-risk signal, not an official weather warning, emergency alert or guarantee of supply.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "alert": {
                "additionalProperties": false,
                "properties": {
                  "minimum_duration_hours": {
                    "default": 6,
                    "maximum": 48,
                    "minimum": 3,
                    "type": "integer"
                  },
                  "renewable_coverage_percent": {
                    "default": 50,
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "battery": {
                "additionalProperties": false,
                "properties": {
                  "capacity_wh": {
                    "maximum": 100000000,
                    "minimum": 10,
                    "type": "number"
                  },
                  "charge_efficiency": {
                    "default": 0.95,
                    "maximum": 1,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "discharge_efficiency": {
                    "default": 0.95,
                    "maximum": 1,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "reserve_soc_percent": {
                    "default": 20,
                    "maximum": 90,
                    "minimum": 0,
                    "type": "number"
                  },
                  "soc_percent": {
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": [
                  "capacity_wh",
                  "soc_percent"
                ],
                "type": "object"
              },
              "forecast_hours": {
                "default": 72,
                "maximum": 120,
                "minimum": 12,
                "type": "integer"
              },
              "include_series": {
                "default": true,
                "type": "boolean"
              },
              "lat": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "load_wh_per_day": {
                "maximum": 10000000,
                "minimum": 1,
                "type": "number"
              },
              "lon": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "max_station_distance_km": {
                "default": 80,
                "maximum": 300,
                "minimum": 1,
                "type": "number"
              },
              "solar": {
                "additionalProperties": false,
                "properties": {
                  "capacity_wp": {
                    "maximum": 10000000,
                    "minimum": 0,
                    "type": "number"
                  },
                  "performance_ratio": {
                    "default": 0.78,
                    "maximum": 1,
                    "minimum": 0.1,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "station_id": {
                "description": "Optional DWD MOSMIX station id. Use this or coordinates.",
                "pattern": "^[A-Za-z0-9]{4,5}$",
                "type": "string"
              },
              "wind": {
                "additionalProperties": false,
                "properties": {
                  "capacity_w": {
                    "maximum": 10000000,
                    "minimum": 0,
                    "type": "number"
                  },
                  "cut_in_m_s": {
                    "default": 3,
                    "maximum": 10,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "cut_out_m_s": {
                    "default": 25,
                    "maximum": 60,
                    "minimum": 5,
                    "type": "number"
                  },
                  "rated_m_s": {
                    "default": 12,
                    "maximum": 30,
                    "minimum": 2,
                    "type": "number"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "load_wh_per_day"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.005",
      "amount_atomic": "5000",
      "amount_encoding": "atomic_units",
      "amount_raw": "5000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "d0864f6288c2e88249e9e87f638a19d7d07d8c2a8eb41c224d6d33d8e804ce7c",
  "service_id": "d2ead2ed56c4171be6b4e238f7b5204282c52da43e7f6506aa12773520343915",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-30T20:00:34.276Z",
  "url": "https://solar.halowerk.com/off-grid-weather-alarm",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comUses rated electrical power, food mass, start and target temperature, specific heat and an explicit efficiency range supplied by the caller. Optional vessel heat, evaporation and a caller-defined hold phase can be included. It contains no recipes, recipe text, food-specific cooking claims or hidden food database; the output separates the thermodynamic lower bound from the practical range and is not a food-safety clearance.
https://solar.halowerk.com/low-wattage-cooking
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Uses rated electrical power, food mass, start and target temperature, specific heat and an explicit efficiency range supplied by the caller. Optional vessel heat, evaporation and a caller-defined hold phase can be included. It contains no recipes, recipe text, food-specific cooking claims or hidden food database; the output separates the thermodynamic lower bound from the practical range and is not a food-safety clearance.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "device_power_w": {
                "description": "Caller-supplied rated electrical input power in watts.",
                "exclusiveMinimum": 0,
                "maximum": 10000,
                "type": "number"
              },
              "efficiency": {
                "additionalProperties": false,
                "properties": {
                  "expected": {
                    "exclusiveMinimum": 0,
                    "maximum": 1,
                    "type": "number"
                  },
                  "high": {
                    "exclusiveMinimum": 0,
                    "maximum": 1,
                    "type": "number"
                  },
                  "low": {
                    "exclusiveMinimum": 0,
                    "maximum": 1,
                    "type": "number"
                  }
                },
                "required": [
                  "low",
                  "expected",
                  "high"
                ],
                "type": "object"
              },
              "evaporation": {
                "additionalProperties": false,
                "properties": {
                  "latent_heat_kj_kg": {
                    "maximum": 5000,
                    "minimum": 0,
                    "type": "number"
                  },
                  "mass_kg": {
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": [
                  "mass_kg",
                  "latent_heat_kj_kg"
                ],
                "type": "object"
              },
              "food_mass_kg": {
                "description": "Mass being heated in kilograms.",
                "exclusiveMinimum": 0,
                "maximum": 100,
                "type": "number"
              },
              "hold": {
                "additionalProperties": false,
                "properties": {
                  "minutes": {
                    "maximum": 1440,
                    "minimum": 0,
                    "type": "number"
                  },
                  "power_fraction": {
                    "description": "Average fraction of rated input power during the hold phase.",
                    "maximum": 1,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": [
                  "minutes",
                  "power_fraction"
                ],
                "type": "object"
              },
              "specific_heat_kj_kg_k": {
                "description": "Caller-supplied effective specific heat of the contents.",
                "exclusiveMinimum": 0,
                "maximum": 10,
                "type": "number"
              },
              "start_temperature_c": {
                "maximum": 200,
                "minimum": -50,
                "type": "number"
              },
              "target_temperature_c": {
                "maximum": 300,
                "minimum": -49,
                "type": "number"
              },
              "vessel": {
                "additionalProperties": false,
                "properties": {
                  "mass_kg": {
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  },
                  "specific_heat_kj_kg_k": {
                    "exclusiveMinimum": 0,
                    "maximum": 10,
                    "type": "number"
                  }
                },
                "required": [
                  "mass_kg",
                  "specific_heat_kj_kg_k"
                ],
                "type": "object"
              }
            },
            "required": [
              "device_power_w",
              "food_mass_kg",
              "start_temperature_c",
              "target_temperature_c",
              "specific_heat_kj_kg_k",
              "efficiency"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "6db3057f5537856c6d9815c41432f853fb5f362eb7fc3dc9876bfb33247fb40c",
  "service_id": "ec1362d41658564d13eff07dbeda07de737718d0d9f6d67b4fa6cb8fd7279d51",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-30T21:16:15.231Z",
  "url": "https://solar.halowerk.com/low-wattage-cooking",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comComputes a transparent planning estimate for space-heating demand. The method is not DIN, VDI, GEG or PHPP and must not be used as regulatory proof. It combines transmission heat loss from each envelope component, ventilation heat loss from heated volume and air changes, monthly heating degree days from the nearest DWD 1991-2020 temperature-normal station, stated internal gains and optional domestic hot water.
https://solar.halowerk.com/building-heat-demand
NetworkAdvertised amountBillingPayee
eip155:84530.004 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Computes a transparent planning estimate for space-heating demand. The method is not DIN, VDI, GEG or PHPP and must not be used as regulatory proof. It combines transmission heat loss from each envelope component, ventilation heat loss from heated volume and air changes, monthly heating degree days from the nearest DWD 1991-2020 temperature-normal station, stated internal gains and optional domestic hot water.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "examples": [
              {
                "domestic_hot_water_kwh_year": 1800,
                "envelope": [
                  {
                    "area_m2": 168,
                    "name": "external walls",
                    "u_value_w_m2k": 0.22
                  },
                  {
                    "area_m2": 118,
                    "name": "roof",
                    "u_value_w_m2k": 0.16
                  },
                  {
                    "area_m2": 92,
                    "name": "ground floor",
                    "u_value_w_m2k": 0.25
                  },
                  {
                    "area_m2": 31,
                    "name": "windows",
                    "u_value_w_m2k": 0.95
                  }
                ],
                "heated_floor_area_m2": 145,
                "heated_volume_m3": 365,
                "lat": 52.52,
                "lon": 13.405,
                "max_station_distance_km": 70,
                "profile": {
                  "heating_base_temp_c": 15,
                  "indoor_temp_c": 20,
                  "internal_gains_w": 350
                },
                "system_efficiency": 0.92,
                "ventilation": {
                  "air_changes_per_hour": 0.45,
                  "heat_recovery_efficiency": 0.15
                }
              }
            ],
            "properties": {
              "domestic_hot_water_kwh_year": {
                "default": 0,
                "maximum": 1000000,
                "minimum": 0,
                "type": "number"
              },
              "envelope": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "area_m2": {
                      "maximum": 100000,
                      "minimum": 0.1,
                      "type": "number"
                    },
                    "name": {
                      "maxLength": 80,
                      "minLength": 1,
                      "type": "string"
                    },
                    "u_value_w_m2k": {
                      "maximum": 8,
                      "minimum": 0.01,
                      "type": "number"
                    }
                  },
                  "required": [
                    "name",
                    "area_m2",
                    "u_value_w_m2k"
                  ],
                  "type": "object"
                },
                "maxItems": 40,
                "minItems": 1,
                "type": "array"
              },
              "heated_floor_area_m2": {
                "maximum": 100000,
                "minimum": 5,
                "type": "number"
              },
              "heated_volume_m3": {
                "maximum": 1000000,
                "minimum": 10,
                "type": "number"
              },
              "lat": {
                "description": "Latitude in Germany; the DWD normal dataset used here covers Germany.",
                "maximum": 56,
                "minimum": 47,
                "type": "number"
              },
              "lon": {
                "maximum": 16,
                "minimum": 5,
                "type": "number"
              },
              "max_station_distance_km": {
                "default": 80,
                "maximum": 200,
                "minimum": 1,
                "type": "number"
              },
              "profile": {
                "additionalProperties": false,
                "properties": {
                  "heating_base_temp_c": {
                    "default": 15,
                    "maximum": 25,
                    "minimum": 0,
                    "type": "number"
                  },
                  "indoor_temp_c": {
                    "default": 20,
                    "maximum": 30,
                    "minimum": 5,
                    "type": "number"
                  },
                  "internal_gains_w": {
                    "default": 0,
                    "maximum": 100000,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "system_efficiency": {
                "default": 1,
                "maximum": 1.5,
                "minimum": 0.5,
                "type": "number"
              },
              "thermal_bridge_w_k": {
                "default": 0,
                "maximum": 100000,
                "minimum": 0,
                "type": "number"
              },
              "ventilation": {
                "additionalProperties": false,
                "properties": {
                  "air_changes_per_hour": {
                    "default": 0.5,
                    "maximum": 5,
                    "minimum": 0,
                    "type": "number"
                  },
                  "heat_recovery_efficiency": {
                    "default": 0,
                    "maximum": 0.95,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "type": "object"
              }
            },
            "required": [
              "lat",
              "lon",
              "heated_floor_area_m2",
              "heated_volume_m3",
              "envelope"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.004",
      "amount_atomic": "4000",
      "amount_encoding": "atomic_units",
      "amount_raw": "4000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "4c0e8edfc40276415cb101d8068b427205f63db26dc625bd55b3cbda52a9445a",
  "service_id": "ed88790a4f816d3c858e465d2b63d2eb832f8b7390ae91d5f24c3de106434632",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-19T15:04:07.143Z",
  "url": "https://solar.halowerk.com/building-heat-demand",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comEvaluates clear-sky irradiance in the module plane for tilt angles from zero to ninety degrees on the fifteenth of each month and sums the days. Because it assumes a cloudless sky, the optimum leans slightly steeper than a real-weather optimum, where diffuse light from an overcast sky rewards flatter angles; in summer the difference is small, in winter months it reaches ten to fifteen degrees, so treat the winter figures as an upper bound.
https://solar.halowerk.com/tilt-optimiser
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Evaluates clear-sky irradiance in the module plane for tilt angles from zero to ninety degrees on the fifteenth of each month and sums the days. Because it assumes a cloudless sky, the optimum leans slightly steeper than a real-weather optimum, where diffuse light from an overcast sky rewards flatter angles; in summer the difference is small, in winter months it reaches ten to fifteen degrees, so treat the winter figures as an upper bound.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "albedo": {
                "default": 0.2,
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              "azimuth_deg": {
                "default": 180,
                "maximum": 360,
                "minimum": 0,
                "type": "number"
              },
              "current_tilt_deg": {
                "description": "Tilt in use today, for the loss comparison.",
                "maximum": 90,
                "minimum": 0,
                "type": "number"
              },
              "elevation_m": {
                "default": 0,
                "maximum": 6000,
                "minimum": -500,
                "type": "number"
              },
              "lat": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "lon": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "tilt_step_deg": {
                "default": 2,
                "maximum": 10,
                "minimum": 1,
                "type": "number"
              },
              "year": {
                "default": 2026,
                "maximum": 2100,
                "minimum": 1970,
                "type": "integer"
              }
            },
            "required": [
              "lat",
              "lon"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "a30f6d383df6e22091dad3e3ef9dcf5f8f5ab56854f6be701762ca673fe86034",
  "service_id": "f06dfb5761e717eb252375c802015b258fca51ab95c8c357224986e4ff83bc58",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:29:53.47Z",
  "url": "https://solar.halowerk.com/tilt-optimiser",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comContinuous load is the sum of the running watts of all appliances marked as simultaneous. The surge check adds the largest single starting surge on top of the continuous load, which is the case that trips an inverter; simultaneous starts of two motors are reported separately as a second figure. Starting factors and power factors are design rules of thumb per appliance class and are stated in the response, they are not device data.
https://solar.halowerk.com/inverter-load-check
NetworkAdvertised amountBillingPayee
eip155:84530.002 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Continuous load is the sum of the running watts of all appliances marked as simultaneous. The surge check adds the largest single starting surge on top of the continuous load, which is the case that trips an inverter; simultaneous starts of two motors are reported separately as a second figure. Starting factors and power factors are design rules of thumb per appliance class and are stated in the response, they are not device data.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "battery_voltage_v": {
                "description": "For the DC current figure. Without it that field stays null.",
                "maximum": 1000,
                "minimum": 6,
                "type": "number"
              },
              "inverter": {
                "additionalProperties": false,
                "properties": {
                  "continuous_w": {
                    "maximum": 100000,
                    "minimum": 50,
                    "type": "number"
                  },
                  "efficiency": {
                    "default": 0.9,
                    "maximum": 1,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "idle_w": {
                    "default": 15,
                    "maximum": 500,
                    "minimum": 0,
                    "type": "number"
                  },
                  "surge_w": {
                    "description": "Peak rating. Defaults to twice the continuous rating.",
                    "maximum": 400000,
                    "minimum": 50,
                    "type": "number"
                  }
                },
                "required": [
                  "continuous_w"
                ],
                "type": "object"
              },
              "loads": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "power_factor": {
                      "maximum": 1,
                      "minimum": 0.3,
                      "type": "number"
                    },
                    "quantity": {
                      "default": 1,
                      "maximum": 200,
                      "minimum": 1,
                      "type": "integer"
                    },
                    "simultaneous": {
                      "default": true,
                      "description": "False if the appliance never runs together with the others.",
                      "type": "boolean"
                    },
                    "surge_factor": {
                      "maximum": 12,
                      "minimum": 1,
                      "type": "number"
                    },
                    "type": {
                      "description": "Appliance class: resistive, electronics, led, motor, pump, compressor, induction.",
                      "type": "string"
                    },
                    "watts": {
                      "maximum": 50000,
                      "minimum": 0.1,
                      "type": "number"
                    }
                  },
                  "required": [
                    "name",
                    "watts"
                  ],
                  "type": "object"
                },
                "maxItems": 60,
                "minItems": 1,
                "type": "array"
              }
            },
            "required": [
              "inverter",
              "loads"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.002",
      "amount_atomic": "2000",
      "amount_encoding": "atomic_units",
      "amount_raw": "2000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "commercial_terms_not_validated",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "382b8312647110a124aca29eee9bbd2fa92a6158a6332bbbf5fb56d005fc177c",
  "schema_fingerprint": "9ebfbb4d7108fefe327a78b91544a84325ab7d146c2f89e39bcbbc74c022dccd",
  "service_id": "fc66a2b5e49e0c6dae860a827f74d5c97192232581da771f48514e9dca5e0094",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-17T11:25:52.731Z",
  "url": "https://solar.halowerk.com/inverter-load-check",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comCable loss uses the DC resistance of the two-way run at twenty degrees Celsius; warm cable in a hot compartment carries roughly four percent more resistance per ten kelvin, which is not applied. Inverter loss follows a three-part model of idle draw, a proportional share and a quadratic share, fitted so that the stated peak efficiency is met near half of the rated power.
https://solar.halowerk.com/inverter-losses
NetworkAdvertised amountBillingPayee
eip155:84530.002 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Cable loss uses the DC resistance of the two-way run at twenty degrees Celsius; warm cable in a hot compartment carries roughly four percent more resistance per ten kelvin, which is not applied. Inverter loss follows a three-part model of idle draw, a proportional share and a quadratic share, fitted so that the stated peak efficiency is met near half of the rated power.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "battery_voltage_v": {
                "maximum": 1000,
                "minimum": 6,
                "type": "number"
              },
              "cable": {
                "additionalProperties": false,
                "properties": {
                  "cross_section_mm2": {
                    "maximum": 500,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "length_m": {
                    "description": "One-way run; the calculation doubles it.",
                    "maximum": 200,
                    "minimum": 0.1,
                    "type": "number"
                  },
                  "material": {
                    "default": "copper",
                    "enum": [
                      "copper",
                      "aluminium"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "length_m",
                  "cross_section_mm2"
                ],
                "type": "object"
              },
              "inverter": {
                "additionalProperties": false,
                "properties": {
                  "efficiency_at_load": {
                    "description": "Measured efficiency at this exact load, overrides the model.",
                    "maximum": 0.99,
                    "minimum": 0.3,
                    "type": "number"
                  },
                  "idle_w": {
                    "default": 15,
                    "maximum": 500,
                    "minimum": 0,
                    "type": "number"
                  },
                  "peak_efficiency": {
                    "default": 0.93,
                    "maximum": 0.99,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "rated_w": {
                    "default": 1200,
                    "maximum": 100000,
                    "minimum": 50,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "load_w": {
                "description": "AC power drawn at the output.",
                "maximum": 100000,
                "minimum": 1,
                "type": "number"
              },
              "max_voltage_drop_percent": {
                "default": 3,
                "maximum": 10,
                "minimum": 0.5,
                "type": "number"
              }
            },
            "required": [
              "load_w",
              "battery_voltage_v"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.002",
      "amount_atomic": "2000",
      "amount_encoding": "atomic_units",
      "amount_raw": "2000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "590c9208275094089c597ebb8aaa491ef9ee7c3eb3a5186a2ed3b658a9761c17",
  "schema_fingerprint": "d8d1f90328fa48563be339a8a50bb9cf4bc6204d413328edb088eb49d03a177a",
  "service_id": "01e15e066c5ab6d6751c03ec32bd46bb8ea7e388875c5215a3b50e255c9961d9",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:29:55.064Z",
  "url": "https://solar.halowerk.com/inverter-losses",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comReads the key-tab-value lines of the VE.Direct text protocol, applies the unit scaling that belongs to each key, and decodes the charger state, tracker state and error number into plain text. Multiple blocks in one dump are returned as separate records in order. Keys that are not in the field table are preserved verbatim under unknown_keys rather than guessed at. The checksum line is not verified, since a text export usually no longer carries the original byte framing.
https://solar.halowerk.com/victron-log-parse
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Reads the key-tab-value lines of the VE.Direct text protocol, applies the unit scaling that belongs to each key, and decodes the charger state, tracker state and error number into plain text. Multiple blocks in one dump are returned as separate records in order. Keys that are not in the field table are preserved verbatim under unknown_keys rather than guessed at. The checksum line is not verified, since a text export usually no longer carries the original byte framing.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "keep_raw": {
                "default": false,
                "description": "Also return the raw key-value pairs per record.",
                "type": "boolean"
              },
              "text": {
                "description": "Raw VE.Direct dump, one key-tab-value pair per line.",
                "maxLength": 120000,
                "minLength": 3,
                "type": "string"
              }
            },
            "required": [
              "text"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "590c9208275094089c597ebb8aaa491ef9ee7c3eb3a5186a2ed3b658a9761c17",
  "schema_fingerprint": "c87d436cd613b426d57f39f4739017249c7c89ac3a2143cb3f8a5d5f178d2064",
  "service_id": "024db525b75d15744f02cc16c857afabb4a28c95a66ab8e1013348758b98a041",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-16T18:37:23.136Z",
  "url": "https://solar.halowerk.com/victron-log-parse",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comPure astronomy and geometry on level ground: sun position by the NOAA method, shadow length as object height divided by the tangent of the sun elevation. Refraction is only applied to sunrise and sunset. Terrain slope, surrounding buildings, vegetation and diffuse light are not modelled, so a point outside the shadow can still be shaded in reality. Times are UTC.
https://solar.halowerk.com/shadow-simulator
NetworkAdvertised amountBillingPayee
eip155:84530.002 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Pure astronomy and geometry on level ground: sun position by the NOAA method, shadow length as object height divided by the tangent of the sun elevation. Refraction is only applied to sunrise and sunset. Terrain slope, surrounding buildings, vegetation and diffuse light are not modelled, so a point outside the shadow can still be shaded in reality. Times are UTC.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "bearing_tolerance_deg": {
                "default": 10,
                "maximum": 90,
                "minimum": 1,
                "type": "number"
              },
              "date": {
                "description": "Day as YYYY-MM-DD.",
                "type": "string"
              },
              "lat": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "lon": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "max_shadow_length_m": {
                "default": 500,
                "description": "Shadow lengths above this are reported as capped.",
                "maximum": 100000,
                "minimum": 1,
                "type": "number"
              },
              "object_height_m": {
                "maximum": 1000,
                "minimum": 0.01,
                "type": "number"
              },
              "obstacle_bearing_deg": {
                "description": "Compass bearing from the object to that point.",
                "maximum": 360,
                "minimum": 0,
                "type": "number"
              },
              "obstacle_distance_m": {
                "description": "Distance of the point of interest from the object.",
                "maximum": 10000,
                "minimum": 0.01,
                "type": "number"
              },
              "step_minutes": {
                "default": 30,
                "maximum": 60,
                "minimum": 5,
                "type": "integer"
              }
            },
            "required": [
              "lat",
              "lon",
              "date",
              "object_height_m"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.002",
      "amount_atomic": "2000",
      "amount_encoding": "atomic_units",
      "amount_raw": "2000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "590c9208275094089c597ebb8aaa491ef9ee7c3eb3a5186a2ed3b658a9761c17",
  "schema_fingerprint": "22ff386106a5470ebd7dc569385580be7af7d559ed172a2eef94d9567c7700b5",
  "service_id": "3f8acf42d5cee5567528ca580ad1ef0c24d0f0121b62662b2ac0bce24077c9b0",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:29:52.43Z",
  "url": "https://solar.halowerk.com/shadow-simulator",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comThis is an astronomical and geometric calculation, not a forecast. It assumes a cloudless sky and states the models used; real yield is lower whenever there is cloud, haze, snow, soiling or high cell temperature. The system_derate factor covers cabling, controller and temperature losses as one flat number and defaults to 0.8. Shading is not modelled here. Times are UTC. Use the figure as an upper bound for sizing, not as an expected daily production.
https://solar.halowerk.com/clear-sky-yield
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "This is an astronomical and geometric calculation, not a forecast. It assumes a cloudless sky and states the models used; real yield is lower whenever there is cloud, haze, snow, soiling or high cell temperature. The system_derate factor covers cabling, controller and temperature losses as one flat number and defaults to 0.8. Shading is not modelled here. Times are UTC. Use the figure as an upper bound for sizing, not as an expected daily production.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "albedo": {
                "default": 0.2,
                "maximum": 1,
                "minimum": 0,
                "type": "number"
              },
              "azimuth_deg": {
                "default": 180,
                "description": "Module azimuth, 180 is south, 0 is north.",
                "maximum": 360,
                "minimum": 0,
                "type": "number"
              },
              "date": {
                "description": "Day as YYYY-MM-DD.",
                "type": "string"
              },
              "elevation_m": {
                "default": 0,
                "maximum": 6000,
                "minimum": -500,
                "type": "number"
              },
              "include_series": {
                "default": true,
                "type": "boolean"
              },
              "lat": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "lon": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "panel_wp": {
                "default": 415,
                "description": "Module rating at standard test conditions.",
                "maximum": 100000,
                "minimum": 1,
                "type": "number"
              },
              "step_minutes": {
                "default": 15,
                "maximum": 60,
                "minimum": 5,
                "type": "integer"
              },
              "system_derate": {
                "default": 0.8,
                "maximum": 1,
                "minimum": 0.1,
                "type": "number"
              },
              "tilt_deg": {
                "default": 30,
                "maximum": 90,
                "minimum": 0,
                "type": "number"
              }
            },
            "required": [
              "lat",
              "lon",
              "date"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "590c9208275094089c597ebb8aaa491ef9ee7c3eb3a5186a2ed3b658a9761c17",
  "schema_fingerprint": "5621f95548928616fece0db36c49b5b0f10c5f89d282b7177a669f839040a59b",
  "service_id": "63b819207d56be351569450b09107b63cfe7526cad32dfa1eb7ed96dbcbc383d",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:29:50.885Z",
  "url": "https://solar.halowerk.com/clear-sky-yield",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comIntegrates the supplied current over time by the trapezoidal rule, so the result is only as good as the sampling interval; gaps longer than the stated max_gap_seconds are excluded and reported. Sign convention: positive current is charging, negative is discharging. Internal resistance is estimated from the largest current step in the series and is a rough figure, not a measurement under defined conditions.
https://solar.halowerk.com/battery-cycle
NetworkAdvertised amountBillingPayee
eip155:84530.004 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Integrates the supplied current over time by the trapezoidal rule, so the result is only as good as the sampling interval; gaps longer than the stated max_gap_seconds are excluded and reported. Sign convention: positive current is charging, negative is discharging. Internal resistance is estimated from the largest current step in the series and is a rough figure, not a measurement under defined conditions.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "cells_in_series": {
                "default": 4,
                "maximum": 64,
                "minimum": 1,
                "type": "integer"
              },
              "max_gap_seconds": {
                "default": 300,
                "maximum": 86400,
                "minimum": 1,
                "type": "number"
              },
              "nominal_capacity_ah": {
                "maximum": 10000,
                "minimum": 0.1,
                "type": "number"
              },
              "rest_current_a": {
                "default": 0.5,
                "description": "Below this absolute current a sample counts as resting.",
                "maximum": 100,
                "minimum": 0,
                "type": "number"
              },
              "samples": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "current_a": {
                      "description": "Positive charging, negative discharging.",
                      "maximum": 2000,
                      "minimum": -2000,
                      "type": "number"
                    },
                    "t_s": {
                      "description": "Seconds since series start, strictly increasing.",
                      "maximum": 100000000,
                      "minimum": 0,
                      "type": "number"
                    },
                    "temperature_c": {
                      "maximum": 120,
                      "minimum": -60,
                      "type": "number"
                    },
                    "voltage_v": {
                      "description": "Pack voltage.",
                      "maximum": 1000,
                      "minimum": 0,
                      "type": "number"
                    }
                  },
                  "required": [
                    "t_s",
                    "voltage_v",
                    "current_a"
                  ],
                  "type": "object"
                },
                "maxItems": 5000,
                "minItems": 3,
                "type": "array"
              }
            },
            "required": [
              "samples"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.004",
      "amount_atomic": "4000",
      "amount_encoding": "atomic_units",
      "amount_raw": "4000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "590c9208275094089c597ebb8aaa491ef9ee7c3eb3a5186a2ed3b658a9761c17",
  "schema_fingerprint": "3f6ac0be2bb15fb75b1c6381be8dd973a1efddecc4fa093215a47f86b5f583d8",
  "service_id": "9b710bf445f4f5a917163177256bed7d7c70d2816805b22d776d1594d02b0b9d",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T07:30:16.096Z",
  "url": "https://solar.halowerk.com/battery-cycle",
  "usage_rights": "not_reviewed"
}
solar.halowerk.comDaily energy balance and straight run-down from the figures supplied. Solar input is caller data in watt-hours per day; nothing is fetched and no weather is assumed. Time to empty means time to the reserve floor, not to zero. Idle draw and conversion efficiency apply to AC loads only. Ageing, temperature and Peukert behaviour are not modelled, which matters for lead acid far more than for LiFePO4.
https://solar.halowerk.com/autonomy-forecast
NetworkAdvertised amountBillingPayee
eip155:84530.003 USDC0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913Not specifiedexact0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E
Source and evidence
{
  "description": "Daily energy balance and straight run-down from the figures supplied. Solar input is caller data in watt-hours per day; nothing is fetched and no weather is assumed. Time to empty means time to the reserve floor, not to zero. Idle draw and conversion efficiency apply to AC loads only. Ageing, temperature and Peukert behaviour are not modelled, which matters for lead acid far more than for LiFePO4.",
  "domain": "solar.halowerk.com",
  "evidence_mode": "raw",
  "extension_names": [
    "bazaar"
  ],
  "input_schema": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "properties": {
      "input": {
        "additionalProperties": false,
        "properties": {
          "body": {
            "additionalProperties": false,
            "properties": {
              "battery": {
                "additionalProperties": false,
                "properties": {
                  "capacity_ah": {
                    "maximum": 100000,
                    "minimum": 1,
                    "type": "number"
                  },
                  "capacity_wh": {
                    "maximum": 10000000,
                    "minimum": 10,
                    "type": "number"
                  },
                  "nominal_voltage_v": {
                    "default": 12,
                    "maximum": 1000,
                    "minimum": 6,
                    "type": "number"
                  },
                  "reserve_soc_percent": {
                    "default": 20,
                    "description": "Floor not to be crossed.",
                    "maximum": 90,
                    "minimum": 0,
                    "type": "number"
                  },
                  "soc_percent": {
                    "maximum": 100,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "required": [
                  "soc_percent"
                ],
                "type": "object"
              },
              "daily_solar_input_wh": {
                "default": 0,
                "description": "Expected harvest per day.",
                "maximum": 1000000,
                "minimum": 0,
                "type": "number"
              },
              "inverter": {
                "additionalProperties": false,
                "properties": {
                  "efficiency": {
                    "default": 0.9,
                    "maximum": 1,
                    "minimum": 0.5,
                    "type": "number"
                  },
                  "hours_powered_per_day": {
                    "default": 24,
                    "maximum": 24,
                    "minimum": 0,
                    "type": "number"
                  },
                  "idle_w": {
                    "default": 15,
                    "maximum": 500,
                    "minimum": 0,
                    "type": "number"
                  }
                },
                "type": "object"
              },
              "loads": {
                "items": {
                  "additionalProperties": false,
                  "properties": {
                    "dc": {
                      "default": false,
                      "description": "True for loads fed straight from the battery.",
                      "type": "boolean"
                    },
                    "hours_per_day": {
                      "default": 24,
                      "maximum": 24,
                      "minimum": 0,
                      "type": "number"
                    },
                    "name": {
                      "type": "string"
                    },
                    "watts": {
                      "maximum": 50000,
                      "minimum": 0,
                      "type": "number"
                    }
                  },
                  "required": [
                    "name",
                    "watts"
                  ],
                  "type": "object"
                },
                "maxItems": 60,
                "minItems": 1,
                "type": "array"
              }
            },
            "required": [
              "battery",
              "loads"
            ],
            "type": "object"
          },
          "bodyType": {
            "enum": [
              "json",
              "form-data",
              "text"
            ],
            "type": "string"
          },
          "method": {
            "enum": [
              "POST",
              "PUT",
              "PATCH"
            ],
            "type": "string"
          },
          "type": {
            "const": "http",
            "type": "string"
          }
        },
        "required": [
          "type",
          "method",
          "bodyType",
          "body"
        ],
        "type": "object"
      }
    },
    "required": [
      "input"
    ],
    "type": "object"
  },
  "legacy_network": null,
  "legacy_pay_to": null,
  "legacy_price_basis": null,
  "legacy_price_usd": null,
  "metadata": null,
  "method": "POST",
  "observed_at": 1789165815.545,
  "offers": [
    {
      "amount": "0.003",
      "amount_atomic": "3000",
      "amount_encoding": "atomic_units",
      "amount_raw": "3000",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "billing_unit": null,
      "billing_unit_basis": "withdrawn_protocol_inference",
      "currency": "USDC",
      "decimals": 6,
      "decimals_basis": "known_token_mapping",
      "extra": {
        "asset": "USDC",
        "assetTransferMethod": "eip3009",
        "eip712Domain": {
          "chainId": 8453,
          "name": "USD Coin",
          "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "version": "2"
        },
        "name": "USD Coin",
        "network_name": "Base Mainnet",
        "version": "2"
      },
      "issuer": null,
      "network": "eip155:8453",
      "pay_to": "0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E",
      "price_basis": "advertised",
      "scheme": "exact",
      "timeout_seconds": 300,
      "usd_market_value": null
    }
  ],
  "operator_identity": "not_verified",
  "output_schema": null,
  "protocol": "x402",
  "protocol_version": 2,
  "quality": "not_evaluated",
  "run_id": "590c9208275094089c597ebb8aaa491ef9ee7c3eb3a5186a2ed3b658a9761c17",
  "schema_fingerprint": "5af6fc837b11a7eb7d48a8e04df6892f13da97f6a3e339a6ece4b1f71b9c1c8e",
  "service_id": "a0635c1267ca0cf2e11664481bd5fc7b7a6f1c7e996220513e32a2ec1198a05e",
  "source": "cdp-bazaar",
  "source_updated_at": "2026-08-14T08:09:04.261Z",
  "url": "https://solar.halowerk.com/autonomy-forecast",
  "usage_rights": "not_reviewed"
}

Outcome evidence starts with your workflow.

Private intake is ready for task IDs, charges, retries, result fingerprints and your evaluation criteria. Public performance comparisons need measured results; we do not have that benchmark yet.

Discuss an outcome integration
Collection coverage

Discovery comes from configured registries. Endpoint checks record responses, not task success. Older snapshots retain less detail. Customer usage, commercial terms and task evaluations require additional evidence.

1,423 historical or current source records quarantined during normalization; they are excluded from public comparisons.

43 of 43 archive objects verified in Backblaze. Last verification: Sep 12, 2026, 05:56 UTC.

Collection status JSON