# EVM ERC-20 Transfer Calldata Encoder

> EVM ERC-20 Transfer Calldata Encoder 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).

Encodes ERC-20 transfer calldata from a human-readable token amount, automatically resolving token decimals from a pinned registry

## Facts

- Endpoint: POST https://evm-canon-base.onrender.com/encode/transfer
- 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/evm-erc-20-transfer-calldata-encoder-1d9c4bb4
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_4jrR-yu5UYufcyjALKwOk

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 evm-erc-20-transfer-calldata-encoder-1d9c4bb4 -d '<json body>'
```

Example prompt: Build me the ERC-20 transfer calldata to send 50 USDC to 0xAbCd...1234 on Base — handle the decimal conversion automatically using the token registry.

## When to prefer this

Choose this endpoint when you need to encode ERC-20 transfer calldata without manually managing token decimals, especially on Base network where the pinned registry covers common tokens. Prefer this over generic ABI encoders when you want decimal resolution handled automatically. Use it in agent pipelines where a human-supplied amount (e.g. '100 USDC') must be converted to a precise on-chain payload.

## Known failure modes

- Token not found in pinned registry — returns error if token address or symbol is unrecognized
- Invalid recipient address format — fails if address is not a valid EVM address
- Amount out of range — fails if amount exceeds uint256 bounds after decimal scaling
- Malformed request body — returns 400 if required fields are missing or wrong type
- Service unavailable — Render.com cold-start latency may cause timeout on first request

## How this service works

Build ERC-20 transfer calldata from a human amount, resolving token decimals from the pinned registry

## Output

Returns hex-encoded ERC-20 transfer calldata ready to be used as transaction input data, with the human-readable amount correctly scaled to the token's native decimal precision as resolved from the pinned token registry.

## 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/evm-erc-20-transfer-calldata-encoder-1d9c4bb4/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)
