# HALOWERK kettenwerk Transaction Decoder

> HALOWERK kettenwerk Transaction Decoder is a paid API for AI agents from kette.halowerk.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-11).

Decodes raw Ethereum call data or signed transactions into human-readable function names and parameters, resolving method signatures from verified contract sources, a common-signature hub, or the open 4byte selector directory — noting which source matched and listing collisions.

## Facts

- Endpoint: POST https://kette.halowerk.com/tx/decode?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/halowerk-kettenwerk-transaction-decoder-238afb0a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_n0tCJDOvkKXg01dPGpgd_

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 halowerk-kettenwerk-transaction-decoder-238afb0a -d '<json body>'
```

Example prompt: Before I sign this transaction, can you decode what it actually does? Here's the raw signed tx: 0x02f8...abc on Ethereum — tell me what function is being called, what the parameters are, and where you found the method signature.

## When to prefer this

Use this endpoint when an agent or user needs to understand what a transaction will do before signing it, or wants to audit an already-mined transaction. It is the right choice over generic ABI decoders because it cascades through three resolution sources (verified contract ABI → hub common signatures → 4byte directory) and always names its source, making it safe for pre-signature review even when the contract ABI is not locally available. Prefer it on any of the six supported chains (Ethereum, Base, Arbitrum, Optimism, Polygon, BSC) when transparency about selector collision risk matters.

## Known failure modes

- Unknown selector: parameters returned raw, no function name guessed
- Invalid or malformed calldata hex returns a parse error
- Unsupported chain returns a validation error
- Transaction hash not yet mined returns an unconfirmed or pending status
- Selector collision: multiple matching signatures listed, none chosen automatically
- Malformed raw transaction fails EIP-2718 parsing

## How this service works

Turns opaque call data into something an agent can reason about before signing. The method signature is resolved from the verified source of the contract first, then from this hub's own list of common signatures, then from the open selector directory — and the answer always names which of the three was used, because a four-byte selector is short enough to collide and colliding entries are listed. An unknown selector stays unknown: parameters are returned raw and nothing is guessed. Approvals and

## Output

Returns the decoded function name, resolved parameter names and values, the source used to resolve the method signature (verified contract ABI, hub common-signature list, or 4byte open selector directory), any colliding signatures for the same selector, and for mined transactions (when a tx_hash is provided), decoded receipt logs. Unknown selectors are returned with raw parameters and no guess is made.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "to": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]{40}$",
   "description": "Target address, when passing call data directly."
  },
  "raw": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]{20,}$",
   "description": "Raw signed transaction (any EIP-2718 type). It is only parsed, never broadcast."
  },
  "data": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]*$",
   "description": "Call data, when passing it directly."
  },
  "chain": {
   "enum": [
    "ethereum",
    "base",
    "arbitrum",
    "optimism",
    "polygon",
    "bsc"
   ],
   "type": "string",
   "description": "Chain the call belongs to."
  },
  "value": {
   "type": "string",
   "description": "Value in wei as a decimal or 0x string. Optional, defaults to 0."
  },
  "tx_hash": {
   "type": "string",
   "pattern": "^0x[0-9a-fA-F]{64}$",
   "description": "Hash of an existing transaction. Its receipt logs are decoded too when it is mined."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/halowerk-kettenwerk-transaction-decoder-238afb0a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from kette.halowerk.com](https://www.zero.xyz/host/kette.halowerk.com/llms.txt)
