eip-reference

Provides canonical interfaces, encoding rules, and implementation patterns for Ethereum EIP and ERC standards.

6|20|Updated Mar 14, 2026
One-click install
npx skills add https://github.com/andresdefi/cryptoskills --skill eip-reference-andresdefi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: eip-reference
Source: https://github.com/andresdefi/cryptoskills/tree/main/skills/eip-reference
Command: npx skills add https://github.com/andresdefi/cryptoskills --skill eip-reference-andresdefi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? AI agents and developers frequently produce incorrect Ethereum code due to stale knowledge of EIP/ERC standards — wrong function signatures, missing chainId in EIP-712 domains, ERC-20 approve race conditions, and confused ERC-4337 gas accounting. This Skill supplies verified interface definitions, behavioral rules, and the common misconceptions that cause bugs. ## Core Features & Use Cases - Canonical Interface Reference: Copy-paste Solidity interfaces for ERC-20, ERC-721, ERC-1155, ERC-4626, ERC-2981, ERC-1271, ERC-4337, and more, with function selectors and ERC-165 interface IDs. - On-Demand Spec Lookup: Fetch any EIP or ERC specification directly from the ethereum/EIPs and ethereum/ERCs GitHub repositories when a standard is not covered inline. - Implementation Patterns & Gotchas: Covers EIP-712 domain separator construction, ERC-2612 permit flows, EIP-7702 delegation, ERC-4337 EntryPoint v0.7, proxy storage slots (EIP-1967), and first-depositor vault attack mitigations. - Use Case: When implementing a gasless token approval, use this Skill to get the correct ERC-2612 permit signature structure, nonce handling, and front-running protections instead of relying on potentially outdated training data. ## Quick Start Ask the agent to show the correct ERC-4626 vault interface and explain the rounding rules for deposit and redeem.

Frequently Asked Questions about eip-reference

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I look up any EIP or ERC specification?

Fetch the raw markdown from the ethereum/ERCs repo for application standards (erc-{number}.md) or ethereum/EIPs repo for protocol changes (eip-{number}.md). The Skill provides exact URL patterns and parsing guidance for the spec's frontmatter and sections.

What is the difference between an EIP and an ERC?

An EIP covers the entire Ethereum proposal process including protocol-level changes, while an ERC is the subset defining application-layer standards like tokens and signatures. ERC-20 started as EIP-20 and became an ERC upon reaching Final status.

How do I fix the ERC-20 approve race condition?

Reset the allowance to zero before setting a new nonzero value, use increaseAllowance/decreaseAllowance, or use ERC-2612 permit. USDT specifically reverts on nonzero-to-nonzero approve, so OpenZeppelin SafeERC20 forceApprove handles this pattern.

Why does my EIP-712 signature fail verification on another chain?

The domain separator must include chainId and verifyingContract, and must be recomputed if block.chainid changes after a fork. Hardcoded chainId values in frontend code or cached separators cause cross-chain replay or verification failures.

Does ERC-20 support ERC-165 interface detection?

No, ERC-20 predates ERC-165, so most ERC-20 tokens do not implement supportsInterface. Detect ERC-20 tokens with a try/catch call to balanceOf or totalSupply instead of relying on interface detection.

What changed between ERC-4337 EntryPoint v0.6 and v0.7?

v0.7 packs gas limits and fees into bytes32 fields, uses a 192-bit key plus 64-bit sequence nonce scheme, and deploys at a new EntryPoint address. Accounts, bundlers, and paymasters cannot mix versions across the two EntryPoints.