Evor-porate your approvals on any chain safely in a single click
evor.app is the EIP-7702 application for batch token approval revocation.
The Problem: Users grant unlimited token approvals to DeFi protocols, stacks them over time and never revoke, because it takes time and gas. When protocols get hacked, these approvals drain wallets. $2B+ lost in 2023 alone. There are existing solutions for batching like revoke.cash or rabby's revoke utility, first one is overwhlemed with details and user still has to sign each one despite they even charge a fee for this, second doesn't allow to do anything else, user has to keep the extension active, and it still takes much time
The Solution: Scan all approvals across 12 chains in 3 seconds using Envio HyperSync (100x faster than RPC) Revoke up to 250 approvals in ONE transaction using EIP-7702 via a custom lightweight, stateless and renounced contract. Supports ERC20, ERC721, ERC1155, and dangerous Permit2 approvals
How it works: User connects wallet, selects chain HyperSync scans entire blockchain history for approval events Optionally excludes some of the approvals from the revoking One-click to sign EIP-7702 authorization Delegate contract revokes all approvals in single transaction Optional: Clear delegation to restore original EOA state
Stack: React + TypeScript + Viem + Wagmi + TailwindCSS, deployed on Vercel
Envio HyperSync: Core scanning engine. Queries Approval and ApprovalForAll events across 12 chains. Custom query builder with token metadata caching. Reduced 30+ second scans to 2-5 seconds.
Hardhat 3.0: Smart contract development with Viem toolbox. EvorDelegate is a stateless contract (no storage) designed for EIP-7702 temporary delegation. Supports batch revocations with ReentrancyGuard protection.
EIP-7702 Implementation: Manual EIP-712 authorization signature for delegation Transaction calls user's own address with authorizationList Wallet compatibility: Added 500ms delay between signatures to prevent Rabby popup stacking
Key Challenges: Grasp EIP-7702 and understand how to use it despite poor infrustructure support by now, especially for external delegators Token type detection: ERC721 vs ERC1155 both emit same event → try supportsInterface() HyperSync Proxy Routing: Had to build serverless API proxy to handle CORS and routing to different HyperSync endpoints per chain Delegation persistence: Compare getCode(userAddress) vs getCode(delegate) to skip redundant authorizations To make onchain events show historical approvals, had to query current on-chain allowances to filter out revoked ones. Implemented fetchCurrentAllowances() with multicall batching Multi-chain RPC rate limits, had to accustom Ankr API Gas optimization: Multicall batching (50 per batch), metadata caching, efficient deduplication Designing frontend :)
Partner Tech: Envio: HyperSync made multi-chain real-time scanning possible Hardhat 3.0: Viem integration for modern contract development

