# Lumen EIP-712 Typed Data Decoder

> Lumen EIP-712 Typed Data Decoder is a paid API for AI agents from lumenworks-x402-decoder.onrender.com, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-11).

Decodes EIP-712 typed data into its domain separator, signing digest, message fields, and plain-language risk notes covering Permit, Permit2, EIP-3009, and unlimited-value patterns.

## Facts

- Endpoint: POST https://lumenworks-x402-decoder.onrender.com/v1/eip712/decode?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/lumen-eip-712-typed-data-decoder-c8557ee3
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MNOuf0uggi5jV0kmN3BLg

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 lumen-eip-712-typed-data-decoder-c8557ee3 -d '<json body>'
```

Example prompt: Can you decode this EIP-712 typed data for me and tell me in plain language what I'd be agreeing to if I sign it — especially flag if it's granting unlimited token allowance or has a suspicious deadline?

## When to prefer this

Choose this endpoint when you have a raw EIP-712 typed data structure (Permit, Permit2, EIP-3009, or other) and need to programmatically extract its decoded components and receive human-readable risk notes before presenting to a user or making a signing decision. It is distinct from a general transaction decoder (use the calldata endpoint for raw EVM calldata) and from the x402 payment header decoder (a separate sibling endpoint). Ideal for wallet agents, DeFi automation, and pre-sign safety checks on token approval flows.

## Known failure modes

- Malformed or invalid EIP-712 typed data input returns a parsing error
- Missing required typed data fields (types, domain, message) causes decode failure
- Unknown or non-standard primary types may produce incomplete notes
- Network/service unavailability on the Render-hosted endpoint
- Ambiguous chainId may limit contract identification context

## How this service works

Decode EIP-712 typed data: domain separator, signing digest, message, and plain-language risk notes (Permit, Permit2, EIP-3009, unlimited values).

## Output

Returns a JSON object containing: the decoded domain object (name, chainId, version, verifyingContract), the primaryType, the decoded message fields (e.g. owner, spender, value, deadline, nonce), the domainSeparator hex, the signing digest hex, and an array of plain-language notes flagging risks such as ERC-2612 Permit grants, Permit2 patterns, EIP-3009 authorization, unlimited values, and chain/contract identity.

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "notes": [
   "verifyingContract 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 on chainId 8453",
   "ERC-2612 Permit: grants token allowance to spender, check value/deadline"
  ],
  "digest": "0x23e8c55a0b5d344e0f50581dd1210e0656d001958874ac7ac06c60f1c4ad9704",
  "domain": {
   "name": "USD Coin",
   "chainId": 8453,
   "version": "2",
   "verifyingContract": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
  },
  "message": {
   "nonce": "0",
   "owner": "0x1111111111111111111111111111111111111111",
   "value": "1000000",
   "spender": "0x111111125421cA6dc452d289314280a0f8842A65",
   "deadline": "1893456000"
  },
  "primaryType": "Permit",
  "domainSeparator": "0x02fa7265e7c5d81118673727957699e4d68f74cd74b7db77da710fe8a2c7834f"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/lumen-eip-712-typed-data-decoder-c8557ee3/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from lumenworks-x402-decoder.onrender.com](https://www.zero.xyz/host/lumenworks-x402-decoder.onrender.com/llms.txt)
