# Calldata Decoder

> Calldata Decoder is a paid API for AI agents from bess-x402.onrender.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-30).

Decodes raw EVM transaction calldata by resolving the 4-byte function selector and unpacking all arguments into human-readable form.

## Facts

- Endpoint: GET https://bess-x402.onrender.com/v1/evm/decode-calldata?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/calldata-decoder-887c02b3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_M-fcpFlRadEJqJkIa9ETk

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 calldata-decoder-887c02b3
```

Example prompt: Can you decode this EVM calldata and tell me what function it calls and what all the arguments are: 0xa9059cbb000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa960450000000000000000000000000000000000000000000000056bc75e2d63100000

## When to prefer this

Use this endpoint when you need to understand what an EVM transaction or signing request will actually do before approving or broadcasting it, or when auditing historical on-chain transactions. It is specifically suited for decoding raw hex calldata without needing to supply your own ABI — the endpoint performs the selector lookup automatically. Prefer this over manual ABI decoding tools when working in an automated agent pipeline that needs structured argument output.

## Known failure modes

- Unknown 4-byte selector not in lookup database — function name cannot be resolved
- Malformed or truncated calldata — ABI decoding fails with a parse error
- Non-hex or missing 0x prefix in input — returns validation error
- Empty calldata (e.g. plain ETH transfer with no input) — no function to decode
- ABI ambiguity when multiple functions share the same 4-byte selector

## How this service works

Decode EVM transaction input data: looks up the 4-byte function selector and decodes every argument (addresses, amounts, arrays). Use to see what a transaction or signing request will really do.

## Output

Returns the resolved function name and signature derived from the 4-byte selector, plus each decoded argument with its type and value — including addresses (checksummed), token amounts, booleans, arrays, and nested tuples — giving a complete human-readable breakdown of what the transaction will execute.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "data"
     ],
     "properties": {
      "data": {
       "type": "string",
       "description": "0x calldata"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/calldata-decoder-887c02b3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from bess-x402.onrender.com](https://www.zero.xyz/host/bess-x402.onrender.com/llms.txt)
