# CAN 2.0 Classic Bit-Stuffing & CRC15 Frame Reconstruction

> CAN 2.0 Classic Bit-Stuffing & CRC15 Frame Reconstruction is a paid API for AI agents from detect.halowerk.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-11-04).

Reconstructs complete classical CAN 2.0 base and extended data or remote frames from stuffed bit streams, computing and validating exact CRC15 and arbitration winners.

## Facts

- Endpoint: POST https://detect.halowerk.com/v1/F-TD2000-DATASTRUCTURES-06/can20-classic-bit-stuff-crc15-frame-and-arbitration-reconstruction?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-04
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/can-2-0-classic-bit-stuffing-crc15-frame-reconstruction-b0cdd3f2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_WX-K-Adlhtd3AlhI5MutQ

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 can-2-0-classic-bit-stuffing-crc15-frame-reconstruction-b0cdd3f2 -d '<json body>'
```

Example prompt: I have a batch of raw stuffed bit strings captured from a CAN bus — can you reconstruct the complete CAN 2.0 frames from them, including CRC15 validation, arbitration winners, and whether any frames are remote or extended frames?

## When to prefer this

Use this endpoint when you need low-level, bit-exact reconstruction of CAN 2.0 classical frames from raw stuffed bit streams — including CRC15 computation and verification, arbitration resolution, and remote/extended frame detection. Prefer this over higher-level CAN decoders when you need the precise wire-level detail (stuff bit counts, raw arbitration bits, exact CRC values) rather than just payload extraction.

## Known failure modes

- Malformed or truncated bit strings causing frame parse failure
- Bit strings exceeding the 20000-character length limit per frame
- More than 512 frames submitted in a single call
- Invalid stuffing sequences that cannot be decoded into a valid CAN frame
- CRC15 mismatch reported as crc_valid=false (not an API error but a logical failure)
- Payload content that cannot produce a valid SHA256 due to malformed DLC

## How this service works

Reconstruct complete classical CAN base/extended data or remote frames from stuffed bits and exact CRC15.

## Output

Returns an array of fully reconstructed CAN 2.0 frames, each with: identifier, extended/remote flags, DLC, payload byte count, payload SHA256, wire bit count, stuff bit count, computed CRC15, received CRC15, CRC validity flag, acknowledged flag, and arbitration bits. Also returns the list of arbitration winner frame indices and a flag indicating equal-arbitration payload conflicts.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "artifact": {
   "type": "object",
   "required": [
    "can"
   ],
   "properties": {
    "can": {
     "type": "object",
     "required": [
      "data",
      "claim"
     ],
     "properties": {
      "data": {
       "type": "object",
       "required": [
        "frames_bits"
       ],
       "properties": {
        "frames_bits": {
         "type": "array",
         "items": {
          "type": "string",
          "maxLength": 20000
         },
         "maxItems": 512
        }
       },
       "additionalProperties": false
      },
      "claim": {
       "anyOf": [
        {
         "type": "null"
        },
        {
         "type": "object",
         "required": [
          "arbitration_winners",
          "equal_arbitration_payload_conflict",
          "frames"
         ],
         "properties": {
          "frames": {
           "type": "array",
           "items": {
            "type": "object",
            "required": [
             "acknowledged",
             "arbitration_bits",
             "computed_crc",
             "crc_valid",
             "dlc",
             "extended",
             "identifier",
             "payload_bytes",
             "payload_sha256",
             "received_crc",
             "remote",
             "stuff_bits",
             "wire_bits"
            ],
            "properties": {
             "dlc": {
              "type": "number"
             },
             "remote": {
              "type": "boolean"
             },
             "extended": {
              "type": "boolean"
             },
             "crc_valid": {
              "type": "boolean"
             },
             "wire_bits": {
              "type": "number"
             },
             "identifier": {
              "type": "number"
             },
             "stuff_bits": {
              "type": "number"
             },
             "acknowledged": {
              "type": "boolean"
             },
             "computed_crc": {
              "type": "number"
             },
             "received_crc": {
              "type": "number"
             },
             "payload_bytes": {
              "type": "number"
             },
             "payload_sha256": {
              "type": "string",
              "maxLength": 20000
             },
             "arbitration_bits": {
              "type": "string",
              "maxLength": 20000
             }
            },
            "additionalProperties
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/can-2-0-classic-bit-stuffing-crc15-frame-reconstruction-b0cdd3f2/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from detect.halowerk.com](https://www.zero.xyz/host/detect.halowerk.com/llms.txt)
