# EIP-2612 Permit Calldata Builder

> EIP-2612 Permit Calldata Builder is a paid API for AI agents from evm-canon-base.onrender.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-15).

Builds EIP-2612 permit calldata for signature-based ERC-20 token allowances without requiring a separate approval transaction

## Facts

- Endpoint: POST https://evm-canon-base.onrender.com/encode/permit
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/eip-2612-permit-calldata-builder-5e79241f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_exndz3eOJS2IwTDIZNCXH

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-2612-permit-calldata-builder-5e79241f -d '<json body>'
```

Example prompt: Build me the EIP-2612 permit calldata so that Uniswap's router contract at 0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24 can spend up to 500 USDC from my wallet 0xAbCd...1234 on Base — use nonce 0 and set the deadline 1 hour from now.

## When to prefer this

Use this endpoint when you need to construct EIP-2612 permit calldata for gasless, signature-based ERC-20 allowances on EVM chains, particularly when you want to avoid a separate on-chain approve transaction. Prefer this over manual ABI encoding when you need deterministic, validated calldata with human-readable amount inputs resolved through the pinned token registry. Best suited for DeFi workflows involving DEX swaps, lending protocols, or any protocol that accepts permit signatures in lieu of prior approvals.

## Known failure modes

- Token does not implement EIP-2612 permit interface — returns error indicating unsupported token
- Invalid or mismatched nonce — calldata may be built but will revert on-chain if nonce is stale
- Deadline already expired at encode time — may return a validation warning
- Malformed address inputs — returns 400-level error with field-level validation message
- Unsupported chain ID — returns error if the token registry cannot resolve decimals or domain separator

## How this service works

Build EIP-2612 permit calldata for signature-based allowances

## Output

Returns ABI-encoded calldata for the ERC-20 permit function conforming to EIP-2612, including the encoded owner, spender, value, deadline, and nonce parameters ready to be signed and submitted as part of a gasless token approval flow.

## 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",
    "bodyType",
    "body"
   ],
   "properties": {
    "body": {
     "type": "object",
     "required": [
      "args"
     ],
     "properties": {
      "args": {
       "type": "object",
       "description": "arguments keyed by parameter name"
      },
      "chain": {
       "description": "chain name, alias or numeric chainId"
      },
      "token": {
       "type": "string",
       "description": "symbol or contract address"
      },
      "value": {
       "type": "string",
       "description": "native value in wei"
      },
      "function": {
       "type": "string",
       "description": "name or full signature (generic route only)"
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST",
      "PUT",
      "PATCH"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "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/eip-2612-permit-calldata-builder-5e79241f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from evm-canon-base.onrender.com](https://www.zero.xyz/host/evm-canon-base.onrender.com/llms.txt)
