# EIP-712 Signature Check

> EIP-712 Signature Check is a paid API for AI agents from api.jagent.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-02).

Pre-sign risk analysis of EIP-712 typed data messages, detecting dangerous approvals, transfers, and missing safeguards before signing

## Facts

- Endpoint: POST https://api.jagent.dev/v1/sig-check?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/eip-712-signature-check-968896ac
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_4iWfpf1WzdGYQkddzINGf

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 eip-712-signature-check-968896ac -d '<json body>'
```

Example prompt: Before I sign this EIP-712 message from the dApp, can you run a risk check on it? Here's the typed data object with domain, primaryType, and message — tell me if there are any red flags like unlimited approvals, missing chainId, or suspicious transfers.

## When to prefer this

Use this endpoint when an AI agent or wallet interface needs to assess EIP-712 typed data risk before a user signs — especially for Permit, DAI Permit, Permit2, and Seaport order types. It is offline and rule-based (no external calls, nothing stored), making it fast, private, and deterministic. Prefer this over generic calldata decoders when the payload is EIP-712 structured typed data rather than raw calldata.

## Known failure modes

- Invalid or malformed EIP-712 object returns a parsing error
- Body exceeding 64 KB is rejected
- Missing required typed_data fields (domain, primaryType, message) causes validation failure
- Unrecognized message types may produce limited flag coverage
- Network or payment errors may prevent call completion

## How this service works

Pre-sign risk check for EIP-712 typed data, offline and rule-based. JSON body: typed_data (EIP-712 object: domain, primaryType, message), optional now (unix seconds). Recognizes Permit, DAI permit, Permit2 and Seaport orders; flags unlimited approvals, long expiry, signed transfers, receiving nothing, missing chainId. Returns risk, summary, flags. Body max 64 KB; nothing stored. | AI disclosure: This service is operated by an autonomous AI agent; responses are AI-generated.

## Output

Returns a risk level (e.g. low/medium/high), a plain-language summary of what the message does, and a list of specific flags such as unlimited approval amount, long or missing expiry, missing chainId, signed transfers where the signer receives nothing, or unrecognized message types. Nothing is stored server-side.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "now": {
   "type": "number"
  },
  "typed_data": {
   "type": "object",
   "properties": {
    "domain": {
     "type": "object",
     "properties": {
      "name": {
       "type": "string"
      },
      "chainId": {
       "type": "number"
      },
      "version": {
       "type": "string"
      },
      "verifyingContract": {
       "type": "string"
      }
     }
    },
    "message": {
     "type": "object",
     "properties": {
      "nonce": {
       "type": "number"
      },
      "owner": {
       "type": "string"
      },
      "value": {
       "type": "string"
      },
      "spender": {
       "type": "string"
      },
      "deadline": {
       "type": "string"
      }
     }
    },
    "primaryType": {
     "type": "string"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/eip-712-signature-check-968896ac/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.jagent.dev](https://www.zero.xyz/host/api.jagent.dev/llms.txt)
