{"x402Version":2,"service":"HALOWERK propwerk","version":"1.0.0","network":"eip155:8453","network_name":"Base Mainnet","chain_id":8453,"recipient":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","asset":{"symbol":"USDC","address":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","decimals":6},"facilitators":["CDP","https://facilitator.xpay.sh"],"payment_headers":{"primary":"PAYMENT-SIGNATURE","accepted":["PAYMENT-SIGNATURE","X-Payment","PAYMENT"],"challenge":["PAYMENT-REQUIRED"],"response":["PAYMENT-RESPONSE"]},"resources":[{"url":"https://prop.halowerk.com/v1/yield-forecast","method":"POST","name":"propwerk_yield_forecast","description":"Compounds supplied rent and expense growth assumptions, applies vacancy and collection loss, subtracts operating expenses and capital reserve, and divides net operating income by a caller-supplied property value. This is scenario arithmetic, not a valuation, market forecast, investment recommendation, tax calculation or guarantee of income.","summary":"Projects property net operating income and unlevered yield from supplied assumptions.","inputSchema":{"type":"object","required":["property_value","current_annual_gross_rent","vacancy_fraction","collection_loss_fraction","current_annual_operating_expenses","annual_capital_reserve","annual_rent_growth_fraction","annual_expense_growth_fraction","projection_years"],"additionalProperties":false,"properties":{"property_value":{"type":"number","minimum":0.01,"maximum":1000000000000000,"description":"Value in a caller-selected currency."},"current_annual_gross_rent":{"type":"number","minimum":0,"maximum":1000000000000000},"vacancy_fraction":{"type":"number","minimum":0,"maximum":1},"collection_loss_fraction":{"type":"number","minimum":0,"maximum":1},"current_annual_operating_expenses":{"type":"number","minimum":0,"maximum":1000000000000000},"annual_capital_reserve":{"type":"number","minimum":0,"maximum":1000000000000000},"annual_rent_growth_fraction":{"type":"number","minimum":-0.99,"maximum":10},"annual_expense_growth_fraction":{"type":"number","minimum":-0.99,"maximum":10},"projection_years":{"type":"integer","minimum":1,"maximum":50}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://prop.halowerk.com/v1/zoning-intel","method":"POST","name":"propwerk_zoning_intel","description":"Calculates floor-area ratio and lot coverage and compares use, height, parking and geometry with an explicit caller-supplied rule set. It does not retrieve or interpret current law, resolve overlays or variances, establish entitlements or provide legal advice; an official planning authority must verify any real project.","summary":"Checks a development proposal against zoning constraints supplied by the caller.","inputSchema":{"type":"object","required":["parcel","supplied_rules","proposal"],"additionalProperties":false,"properties":{"parcel":{"type":"object","required":["parcel_id","lot_area_m2","zoning_label"],"additionalProperties":false,"properties":{"parcel_id":{"type":"string","minLength":1,"maxLength":128},"lot_area_m2":{"type":"number","minimum":0.01,"maximum":1000000000000},"zoning_label":{"type":"string","minLength":1,"maxLength":128}}},"supplied_rules":{"type":"object","required":["allowed_uses","maximum_floor_area_ratio","maximum_lot_coverage_fraction","maximum_height_m","minimum_parking_spaces"],"additionalProperties":false,"properties":{"allowed_uses":{"type":"array","minItems":1,"maxItems":1000,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}},"maximum_floor_area_ratio":{"type":"number","minimum":0,"maximum":1000},"maximum_lot_coverage_fraction":{"type":"number","minimum":0,"maximum":1},"maximum_height_m":{"type":"number","minimum":0,"maximum":10000},"minimum_parking_spaces":{"type":"integer","minimum":0,"maximum":1000000}}},"proposal":{"type":"object","required":["proposed_use","gross_floor_area_m2","building_footprint_m2","height_m","parking_spaces"],"additionalProperties":false,"properties":{"proposed_use":{"type":"string","minLength":1,"maxLength":128},"gross_floor_area_m2":{"type":"number","minimum":0,"maximum":1000000000000},"building_footprint_m2":{"type":"number","minimum":0,"maximum":1000000000000},"height_m":{"type":"number","minimum":0,"maximum":10000},"parking_spaces":{"type":"integer","minimum":0,"maximum":1000000}}}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"4000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://prop.halowerk.com/v1/hvac-fault-detect","method":"POST","name":"propwerk_hvac_fault_detect","description":"Applies caller-selected thresholds to supply/return temperature differences, commanded operation, fan state and electrical power. It identifies rule violations in supplied observations only; it does not connect to building controls, establish root cause, replace commissioning or authorize maintenance actions.","summary":"Flags supplied HVAC observations that violate transparent operating rules.","inputSchema":{"type":"object","required":["observations","rules"],"additionalProperties":false,"properties":{"observations":{"type":"array","minItems":1,"maxItems":10000,"items":{"type":"object","required":["observation_id","mode","commanded_on","fan_on","return_air_temperature_c","supply_air_temperature_c","electrical_power_kw"],"additionalProperties":false,"properties":{"observation_id":{"type":"string","minLength":1,"maxLength":128},"mode":{"type":"string","enum":["cooling","heating","idle"]},"commanded_on":{"type":"boolean"},"fan_on":{"type":"boolean"},"return_air_temperature_c":{"type":"number","minimum":-100,"maximum":100},"supply_air_temperature_c":{"type":"number","minimum":-100,"maximum":100},"electrical_power_kw":{"type":"number","minimum":0,"maximum":1000000}}}},"rules":{"type":"object","required":["minimum_active_temperature_delta_c","maximum_active_temperature_delta_c","maximum_idle_power_kw"],"additionalProperties":false,"properties":{"minimum_active_temperature_delta_c":{"type":"number","minimum":0,"maximum":100},"maximum_active_temperature_delta_c":{"type":"number","minimum":0,"maximum":200},"maximum_idle_power_kw":{"type":"number","minimum":0,"maximum":1000000}}}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://prop.halowerk.com/v1/foot-traffic-retail","method":"POST","name":"propwerk_foot_traffic_retail","description":"Compares supplied visits, mean dwell time and conversions with explicit baselines and combines the three ratios using caller-supplied weights. It does not collect location data, count people, infer demographics or forecast demand. Inputs should be aggregated and lawfully collected.","summary":"Builds a transparent retail activity index from supplied interval counts.","inputSchema":{"type":"object","required":["intervals","weights"],"additionalProperties":false,"properties":{"intervals":{"type":"array","minItems":1,"maxItems":10000,"items":{"type":"object","required":["interval_id","visits","mean_dwell_minutes","conversions","baseline_visits","baseline_dwell_minutes","baseline_conversion_rate"],"additionalProperties":false,"properties":{"interval_id":{"type":"string","minLength":1,"maxLength":128},"visits":{"type":"integer","minimum":0,"maximum":1000000000},"mean_dwell_minutes":{"type":"number","minimum":0,"maximum":100000},"conversions":{"type":"integer","minimum":0,"maximum":1000000000},"baseline_visits":{"type":"number","minimum":0.001,"maximum":1000000000},"baseline_dwell_minutes":{"type":"number","minimum":0.001,"maximum":100000},"baseline_conversion_rate":{"type":"number","minimum":0.000001,"maximum":1}}}},"weights":{"type":"object","required":["visits","dwell","conversion"],"additionalProperties":false,"properties":{"visits":{"type":"number","minimum":0,"maximum":1},"dwell":{"type":"number","minimum":0,"maximum":1},"conversion":{"type":"number","minimum":0,"maximum":1}}}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://prop.halowerk.com/v1/token-dividend","method":"POST","name":"propwerk_token_dividend","description":"Sums non-negative eligible balances and allocates a caller-supplied pool by balance share. It performs no transfer, wallet lookup, securities analysis, tax withholding, rounding-to-token-decimals or compliance check; output is calculation data only.","summary":"Allocates a supplied dividend pool pro rata across eligible balances.","inputSchema":{"type":"object","required":["total_dividend","holders"],"additionalProperties":false,"properties":{"total_dividend":{"type":"number","minimum":0,"maximum":1000000000000000,"description":"Amount in a caller-selected currency or token unit."},"holders":{"type":"array","minItems":1,"maxItems":100000,"items":{"type":"object","required":["account_id","balance","eligible"],"additionalProperties":false,"properties":{"account_id":{"type":"string","minLength":1,"maxLength":256},"balance":{"type":"number","minimum":0,"maximum":1e+30},"eligible":{"type":"boolean"}}}}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"2000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://prop.halowerk.com/v1/gentrification-index","method":"POST","name":"propwerk_gentrification_index","description":"Standardizes current-minus-baseline change by a supplied scale, applies an explicit direction and weight, clips extreme components, and maps the weighted result to a 0–100 descriptive index. Metric selection and interpretation remain with the caller. It does not obtain data, identify individuals, establish causation, rank residents or justify displacement decisions.","summary":"Combines caller-selected neighborhood-change metrics into a transparent index.","inputSchema":{"type":"object","required":["metrics"],"additionalProperties":false,"properties":{"metrics":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"object","required":["metric_id","baseline_value","current_value","normalization_scale","pressure_direction","weight"],"additionalProperties":false,"properties":{"metric_id":{"type":"string","minLength":1,"maxLength":128},"baseline_value":{"type":"number","minimum":-1000000000000000,"maximum":1000000000000000},"current_value":{"type":"number","minimum":-1000000000000000,"maximum":1000000000000000},"normalization_scale":{"type":"number","minimum":1e-9,"maximum":1000000000000000},"pressure_direction":{"type":"string","enum":["increase","decrease"]},"weight":{"type":"number","minimum":0,"maximum":1000000}}}}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://prop.halowerk.com/v1/flood-risk-asset","method":"POST","name":"propwerk_flood_risk_asset","description":"Multiplies each mutually exclusive supplied scenario probability by its supplied damage fraction and asset replacement value, then sums expected loss. It does not obtain hazard maps, model hydrology, validate damage curves, price insurance or predict a particular event.","summary":"Calculates expected annual flood loss from supplied event scenarios.","inputSchema":{"type":"object","required":["asset_replacement_value","scenarios"],"additionalProperties":false,"properties":{"asset_replacement_value":{"type":"number","minimum":0,"maximum":1000000000000000,"description":"Value in a caller-selected currency."},"scenarios":{"type":"array","minItems":1,"maxItems":10000,"items":{"type":"object","required":["scenario_id","annual_probability","inundation_depth_m","supplied_damage_fraction"],"additionalProperties":false,"properties":{"scenario_id":{"type":"string","minLength":1,"maxLength":128},"annual_probability":{"type":"number","minimum":0,"maximum":1},"inundation_depth_m":{"type":"number","minimum":0,"maximum":1000},"supplied_damage_fraction":{"type":"number","minimum":0,"maximum":1}}}}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"4000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://prop.halowerk.com/v1/energy-certificate","method":"POST","name":"propwerk_energy_certificate","description":"Subtracts exported energy from supplied site energy, divides by conditioned floor area and selects the first caller-supplied ascending maximum-intensity band. It does not normalize climate or occupancy, convert primary energy, audit meters or issue a legally recognized energy certificate.","summary":"Classifies supplied annual building energy use against explicit intensity bands.","inputSchema":{"type":"object","required":["conditioned_floor_area_m2","annual_imported_energy_kwh","annual_exported_energy_kwh","supplied_bands"],"additionalProperties":false,"properties":{"conditioned_floor_area_m2":{"type":"number","minimum":0.01,"maximum":1000000000000},"annual_imported_energy_kwh":{"type":"number","minimum":0,"maximum":1000000000000000000},"annual_exported_energy_kwh":{"type":"number","minimum":0,"maximum":1000000000000000000},"supplied_bands":{"type":"array","minItems":1,"maxItems":100,"items":{"type":"object","required":["label","maximum_kwh_per_m2_year"],"additionalProperties":false,"properties":{"label":{"type":"string","minLength":1,"maxLength":64},"maximum_kwh_per_m2_year":{"type":"number","minimum":0,"maximum":1000000000000}}}}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"2000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://prop.halowerk.com/v1/occupancy-optimize","method":"POST","name":"propwerk_occupancy_optimize","description":"Sorts groups by size, then assigns each to the available room that has all required features and minimizes unused capacity, hourly cost and room identifier in that order. This fast heuristic is not guaranteed globally optimal and does not handle time overlap, accessibility beyond supplied features, movement, privacy or building-code constraints.","summary":"Assigns groups to rooms using a deterministic capacity-and-feature best-fit heuristic.","inputSchema":{"type":"object","required":["rooms","groups"],"additionalProperties":false,"properties":{"rooms":{"type":"array","minItems":1,"maxItems":10000,"items":{"type":"object","required":["room_id","capacity","hourly_cost","features"],"additionalProperties":false,"properties":{"room_id":{"type":"string","minLength":1,"maxLength":128},"capacity":{"type":"integer","minimum":1,"maximum":1000000},"hourly_cost":{"type":"number","minimum":0,"maximum":1000000000000},"features":{"type":"array","maxItems":1000,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}}}}},"groups":{"type":"array","minItems":1,"maxItems":10000,"items":{"type":"object","required":["group_id","people","required_features"],"additionalProperties":false,"properties":{"group_id":{"type":"string","minLength":1,"maxLength":128},"people":{"type":"integer","minimum":1,"maximum":1000000},"required_features":{"type":"array","maxItems":1000,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128}}}}}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"4000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]},{"url":"https://prop.halowerk.com/v1/materials-lca","method":"POST","name":"propwerk_materials_lca","description":"Multiplies installed quantities by supplied waste-adjusted production factors and adds tonne-kilometre transport factors. It reports a transparent partial embodied-carbon inventory only; it does not supply verified EPD data, include use/end-of-life stages unless represented by inputs, compare functional equivalence or constitute a certified life-cycle assessment.","summary":"Totals supplied material-production, waste and transport emission factors.","inputSchema":{"type":"object","required":["materials"],"additionalProperties":false,"properties":{"materials":{"type":"array","minItems":1,"maxItems":10000,"items":{"type":"object","required":["material_id","installed_mass_kg","waste_fraction","production_factor_kgco2e_per_kg","transport_distance_km","transport_factor_kgco2e_per_tonne_km"],"additionalProperties":false,"properties":{"material_id":{"type":"string","minLength":1,"maxLength":128},"installed_mass_kg":{"type":"number","minimum":0,"maximum":1000000000000000},"waste_fraction":{"type":"number","minimum":0,"maximum":0.99},"production_factor_kgco2e_per_kg":{"type":"number","minimum":-1000000,"maximum":1000000},"transport_distance_km":{"type":"number","minimum":0,"maximum":10000000},"transport_factor_kgco2e_per_tonne_km":{"type":"number","minimum":0,"maximum":1000000}}}}}},"mimeType":"application/json","accepts":[{"scheme":"exact","network":"eip155:8453","payTo":"0x2880EdfFF13100677Bf97A3CBdF3Bc34771C4E5E","price":{"amount":"3000","asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","extra":{"asset":"USDC","network_name":"Base Mainnet","name":"USD Coin","version":"2","assetTransferMethod":"eip3009","eip712Domain":{"name":"USD Coin","version":"2","chainId":8453,"verifyingContract":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"}}},"maxTimeoutSeconds":300}]}]}