.claude/skills/permit2-addresses/SKILL.md
Canonical Permit2 contract addresses by chain. Use when configuring multi-chain support.
npx skillsauth add cyotee/crane permit2-addressesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
All chains use the same address:
0x000000000022D473030F116dDEE9F6B43aC78BA3
| Chain | Chain ID | Status | |-------|----------|--------| | Ethereum Mainnet | 1 | ✅ | | Arbitrum | 42161 | ✅ | | Optimism | 10 | ✅ | | Base | 8453 | ✅ | | Polygon | 137 | ✅ | | Avalanche | 43114 | ✅ | | BNB Chain | 56 | ✅ | | Sepolia (testnet) | 11155111 | ✅ | | Arbitrum Sepolia | 421614 | ✅ | | Base Sepolia | 84532 | ✅ | | Optimism Sepolia | 11155420 | ✅ | | Foundry (local) | 31337 | ✅ |
import { PERMIT2_ADDRESS } from '@uniswap/permit2-sdk'
// Or hardcoded (canonical)
const PERMIT2 = '0x000000000022D473030F116dDEE9F6B43aC78BA3'
import { permit2Address } from '@uniswap/permit2-sdk'
const permit2 = permit2Address(chainId)
The frontend stores addresses in:
frontend/app/addresses/{chain}/base_deployments.json
Example usage:
import platformSepolia from './app/addresses/sepolia/base_deployments.json'
import platformFoundry from './app/addresses/anvil_base_main/base_deployments.json'
const permit2Address = chainId === sepolia.id
? platformSepolia.permit2
: platformFoundry.permit2
development
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
documentation
Write to contracts and send transactions. Use when executing state-changing contract functions.
development
HTTP and WebSocket transports for blockchain connectivity. Use when configuring network connections.
data-ai
Read contract data with type-safe ABI. Use when querying smart contract view/pure functions.