Extrascan is a powerful tool for interacting with Ethereum smart contracts, whether they are verified or not. It uses AI models to extrapolate ABIs from unverified contract bytecode, making it possible to interact with contracts that aren't verified on block explorers.
Extrascan consists of two main applications:
- Web Application - A standalone web interface for contract interaction
- Browser Extension - Enhances blockchain explorers (like Etherscan and Blockscout) with Extrascan's capabilities
Both applications share core functionality through a common shared package, providing a consistent experience across platforms.
-
Smart Contract ABI Extraction and Interaction
- Direct interaction with verified contracts
- AI-powered ABI extrapolation for unverified contracts
- Interactive contract function calling (read/write)
-
Multi-Platform Support
- Web application for standalone use
- Browser extension that integrates directly with block explorers
-
Multi-Network Compatibility
- Support for Ethereum and compatible chains
- Easy network switching
-
AI Integration
- Currently supported: Google Gemini Pro
- Coming soon: OpenAI GPT-4, Anthropic Claude
- Confidence scores for extrapolated functions
-
Web3 Features
- Secure API key management
- Web3 wallet integration
- EIP-6963 compliant wallet connection
- Node.js >= 20.12.0
- pnpm >= 9.14.0
- Redis server (for caching)
/
├── apps/ # Applications
│ ├── extension/ # Browser extension
│ └── webapp/ # Web application
├── packages/ # Shared packages
│ └── shared/ # Common utilities and components
-
Clone the repository:
git clone https://github.com/AjayiMike/extrascan.git cd extrascan -
Install dependencies:
pnpm install
-
Environment Setup: Create appropriate
.envfiles in the webapp directory with necessary API keys:- ETHERSCAN_API_KEY
- REDIS_HOST
- REDIS_PASSWORD
- REDIS_PORT
# Run in watch mode
pnpm dev:shared
# Build for production
pnpm build:shared# Run development server
pnpm dev:webapp
# Build for production
pnpm build:webapp
# Start production server
pnpm start:webapp# Run development build
pnpm dev:extension
# Build for production
pnpm build:extensionFor extension development, load the appropriate build directory in your browser:
- Chrome/Edge (Manifest v3):
apps/extension/build/chrome-mv3-dev
- Navigate to the deployed web app or local development server
- Connect your Web3 wallet
- Select network and enter a contract address to analyze and interact with
- Install the extension from the Chrome Web Store (or load unpacked during development)
- Navigate to a contract address on Etherscan
- Click the "Extrascan" tab to access enhanced functionality
- Connect your wallet and interact with the contract
- Fork the repository
- Clone your forked version
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details
- WhatsABI for bytecode analysis
- openchain for function signature lookup
- Ethers.js for Ethereum interaction
- chainid.network for rich network data and RPC URL
- @reown/appkit for wallet connection
- Plasmo for browser extension development framework