# Base ERC-20 EIP-2612 Permit Support Probe

> Base ERC-20 EIP-2612 Permit Support Probe is a paid API for AI agents from x402-data-api.bodhinindustries.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Checks whether a Base ERC-20 token supports EIP-2612 gasless permit signatures, returning permit style, current nonce, and domain separator — all computed live from chain.

## Facts

- Endpoint: GET https://x402-data-api.bodhinindustries.workers.dev/permit
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/base-erc-20-eip-2612-permit-support-probe-fa46f21c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_vN7h45PyRMQIGknDXCW0_

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 base-erc-20-eip-2612-permit-support-probe-fa46f21c
```

Example prompt: Can you check whether the USDC token at 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 on Base supports EIP-2612 permit signatures, and if so, what's the current permit nonce for my wallet 0xYourAddressHere?

## When to prefer this

Use this endpoint when you need to verify whether a Base ERC-20 token supports gasless approvals via EIP-2612 permit before constructing a meta-transaction or Permit2 flow. Prefer this over generic block explorers when you need live, chain-computed permit nonce and domain separator data without relying on third-party APIs or cached data.

## Known failure modes

- Invalid or non-existent token address returns isContract: false and supportsPermit: false
- Non-ERC-20 contract returns none for permitStyle
- Network latency or Base RPC issues may cause timeouts
- Malformed address input returns an error response
- Token with non-standard permit implementation returns dai_style_or_custom

## How this service works

Self-computed Base onchain toolkit for AI agents: ERC-20 safety scan, manipulation-resistant TWAP price oracle, gas/fee oracle, calldata decoder, token/address/contract intel, wallet approval-risk audit, and batch token triage — all computed live from raw Base chain, no third-party data.

## Output

Returns the permit style (eip2612, dai_style_or_custom, or none), the current nonce for the specified owner, the EIP-712 domain separator, boolean flags for each permit-related read (nonces, version, PERMIT_TYPEHASH, DOMAIN_SEPARATOR), the canonical Uniswap Permit2 fallback address, the block height at computation, and an ISO-8601 timestamp — all sourced directly from Base chain with no third-party data.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "token"
 ],
 "properties": {
  "owner": {
   "type": "string",
   "description": "Address whose current permit nonce to read (defaults to the zero address)."
  },
  "token": {
   "type": "string",
   "description": "Base ERC-20 to probe for EIP-2612 permit support."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "block": {
   "type": "integer",
   "description": "Base block height"
  },
  "nonce": {
   "type": "string",
   "description": "current nonce = value to sign (or null)"
  },
  "owner": {
   "type": "string",
   "description": "nonce subject"
  },
  "reads": {
   "type": "object",
   "properties": {
    "nonces": {
     "type": "boolean",
     "description": "read ok"
    },
    "version": {
     "type": "boolean",
     "description": "read ok"
    },
    "PERMIT_TYPEHASH": {
     "type": "boolean",
     "description": "read ok"
    },
    "DOMAIN_SEPARATOR": {
     "type": "boolean",
     "description": "read ok"
    }
   }
  },
  "token": {
   "type": "string",
   "description": "token probed"
  },
  "permit2": {
   "type": "string",
   "description": "canonical Uniswap Permit2 fallback address"
  },
  "computedAt": {
   "type": "string",
   "description": "ISO-8601 timestamp"
  },
  "isContract": {
   "type": "boolean",
   "description": "has bytecode"
  },
  "permitStyle": {
   "type": "string",
   "description": "eip2612 | dai_style_or_custom | none"
  },
  "supportsPermit": {
   "type": "boolean",
   "description": "EIP-2612 permit supported"
  },
  "domainSeparator": {
   "type": "string",
   "description": "EIP-712 domain separator (or null)"
  },
  "thirdPartyDataUsed": {
   "type": "boolean",
   "description": "always false"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/base-erc-20-eip-2612-permit-support-probe-fa46f21c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-data-api.bodhinindustries.workers.dev](https://www.zero.xyz/host/x402-data-api.bodhinindustries.workers.dev/llms.txt)
