# netz.halowerk.com Modbus/OPC UA Frame Decoder

> netz.halowerk.com Modbus/OPC UA Frame Decoder is a paid API for AI agents from netz.halowerk.com, paid per call via x402, $0.004/call, status unknown (last checked 2026-09-14).

Parses raw Modbus TCP, Modbus RTU, or OPC UA TCP frames up to 4096 bytes, extracting protocol fields, function codes, register addresses, values, and validation results without contacting any live equipment.

## Facts

- Endpoint: POST https://netz.halowerk.com/v1/modbus-decode
- Price: $0.004/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/netz-halowerk-com-modbus-opc-ua-frame-decoder-17f675ef
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8adg_LKTICpv6HaLaHkRm

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability netz-halowerk-com-modbus-opc-ua-frame-decoder-17f675ef -d '<json body>'
```

Example prompt: Decode this Modbus RTU frame for me — here's the raw hex: '0103006B00037634' — treat it as a request and validate the CRC.

## When to prefer this

Choose this endpoint when you need to inspect, debug, or log industrial protocol frames offline without connecting to live equipment. Ideal for SCADA/ICS forensics, CI/CD pipeline testing of protocol stacks, automated validation of captured traffic, and educational dissection of Modbus or OPC UA packets. Not appropriate if you need to actually communicate with a device, apply vendor-specific register maps, or scale raw register values to engineering units.

## Known failure modes

- Frame hex shorter than 8 characters or longer than 12288 characters returns validation error
- Invalid hex string (non-hex characters) causes parse failure
- CRC-16 mismatch reported for Modbus RTU frames but parsing may still continue
- Unknown or unsupported function codes may result in partial decode
- Malformed OPC UA frame with inconsistent length fields returns error
- Incorrect protocol selection (e.g. passing RTU frame as TCP) produces parse errors or wrong field mapping

## How this service works

Parses one frame up to 4096 bytes without contacting equipment. Modbus TCP includes MBAP fields and length validation; RTU includes CRC-16 validation; common function codes expose addresses, quantities, register values, bits and exceptions. OPC UA TCP exposes message/chunk headers and HEL/ACK negotiation fields. Register scaling, byte order beyond the protocol, device maps and vendor semantics are not guessed.

## Output

Returns a structured breakdown of the parsed frame including protocol-specific fields (MBAP header, unit ID, function code, register/coil addresses, quantities, data values, exception codes for Modbus; message type, chunk type, security channel, sequence numbers, HEL/ACK parameters for OPC UA), CRC-16 validity for RTU frames, and length validation results. Does not guess device semantics or apply register scaling.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "raw_hex": {
   "type": "string",
   "maxLength": 12288,
   "minLength": 8
  },
  "protocol": {
   "enum": [
    "modbus_tcp",
    "modbus_rtu",
    "opcua_tcp"
   ],
   "type": "string"
  },
  "direction": {
   "enum": [
    "request",
    "response",
    "auto"
   ],
   "type": "string",
   "default": "auto"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/netz-halowerk-com-modbus-opc-ua-frame-decoder-17f675ef/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from netz.halowerk.com](https://www.zero.xyz/host/netz.halowerk.com/llms.txt)
