Extrascan
Interact with EVM smart contracts, verified or not. Perfect for developers and researchers who need to interact with smart contracts, especially when working with unverified contracts where traditional block explorers fall short.
Install / Use
/learn @AjayiMike/ExtrascanREADME
Extrascan
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.
Project Overview
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.
Features
-
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
Prerequisites
- Node.js >= 20.12.0
- pnpm >= 9.14.0
- Redis server (for caching)
Project Structure
/
├── apps/ # Applications
│ ├── extension/ # Browser extension
│ └── webapp/ # Web application
├── packages/ # Shared packages
│ └── shared/ # Common utilities and components
Installation
-
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
Development
Shared Package
# Run in watch mode
pnpm dev:shared
# Build for production
pnpm build:shared
Web Application
# Run development server
pnpm dev:webapp
# Build for production
pnpm build:webapp
# Start production server
pnpm start:webapp
Browser Extension
# Run development build
pnpm dev:extension
# Build for production
pnpm build:extension
For extension development, load the appropriate build directory in your browser:
- Chrome/Edge (Manifest v3):
apps/extension/build/chrome-mv3-dev
Usage
Web Application
- 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
Browser Extension
- 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
Contributing
- 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
License
This project is licensed under the MIT License - see the LICENSE file for details
Acknowledgments
- 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
