https://github.com/shayanb/ethertrip
Ethereum Blockchain Visualizer (Psychedelic Edition)
https://github.com/shayanb/ethertrip
Last synced: 11 months ago
JSON representation
Ethereum Blockchain Visualizer (Psychedelic Edition)
- Host: GitHub
- URL: https://github.com/shayanb/ethertrip
- Owner: shayanb
- License: gpl-3.0
- Created: 2025-05-30T18:41:41.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-27T17:50:06.000Z (12 months ago)
- Last Synced: 2025-07-15T06:07:03.907Z (11 months ago)
- Language: JavaScript
- Homepage: https://ethertrip.me/
- Size: 960 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# EtherTrip - Psychedelic Ethereum Visualizer 🌈🎵
Take a psychedelic journey through the Ethereum blockchain with real-time 3D visualization and immersive audio synthesis.
## Features
- **Pure Graph Visualization**: Spheres (EOA addresses) and pyramids (smart contracts) connected by animated transaction edges
- **Real-time Blockchain Streaming**: Live transaction and block data via WebSocket RPC connections
- **Smart Contract Distinction**: Randomized colorful pyramid shapes for visual contract identification
- **Persistent Graph Edges**: Transaction connections remain visible for full block duration (12+ seconds)
- **Distance-Adaptive Scaling**: Objects remain visible when zooming out to large distances
- **Interactive 3D Navigation**: Full camera controls with orbit, zoom, and pan
- **Multiple RPC Providers**: Support for Infura, Alchemy, Tenderly, and free public nodes
- **Advanced Audio Engine**: 6 sound styles (Retro Synth, Piano, Acid Techno, Jazz, Electronic, Minimal)
- **Value-Based Audio**: Transaction sounds reflect ETH amounts and gas prices
- **ERC20 Token Support**: Visualizes token transfers with distinct audio and visual cues
- **Responsive UI**: Clean controls panel with floating buttons and connection status
## Setup
1. **Clone or download this project**
2. **Get an Ethereum RPC endpoint**:
- you can use the publicly available ones but they will be rate limited or might be down.
- Sign up for a free account at [Infura](https://infura.io) or [Alchemy](https://www.alchemy.com)
- Create a new project and get your WebSocket endpoint URL
- It should look like: `wss://mainnet.infura.io/ws/v3/YOUR_PROJECT_ID`
3. **Run the visualizer**:
- Option 1: Use a local web server (recommended)
```bash
# Using Python 3
python -m http.server 8000
# Using Node.js (install http-server globally first)
npm install -g http-server
http-server
```
- Option 2: Open `index.html` directly in a modern web browser (some features may be limited)
4. **Connect to Ethereum**:
- Enter your WebSocket RPC URL in the connection field
- Click "Connect to Ethereum"
- Click anywhere on the screen to enable audio
## Visual Elements
- **Address Nodes**:
- **EOA Addresses**: Spherical nodes in various colors that scale with activity
- **Smart Contracts**: Pyramid shapes with randomized colors for visual distinction
- **Transaction Edges**: Curved 3D lines connecting sender and receiver nodes
- **ETH Transfers**: Cyan colored curves with dynamic arc heights
- **ERC20 Transfers**: Green colored curves with token-specific styling
- **Persistent Duration**: Edges remain visible for 12+ seconds (full block time)
- **Distance-Adaptive Scaling**: All objects scale up when camera zooms out for better visibility
- **Particles**: Dynamic background particle field
- **Gas Price Effects**: Background color intensity responds to current gas prices
- **Interactive Labels**: Hover tooltips show transaction details and address information
## Audio System
- **6 Sound Styles**:
- **Retro Synth** (default): Classic synthesizer sounds
- **Piano**: Harmonic piano tones with natural decay
- **Acid Techno**: 303-style bass with resonant filter sweeps
- **Jazz**: Warm chords with reverb and complex harmonies
- **Electronic**: Modulated synthesizers with delay effects
- **Minimal**: Simple sine wave tones for subtle ambience
- **Dynamic Audio**: Transaction sounds vary by value, gas price, and type
- **ETH Transactions**: Rich tones reflecting transaction amounts
- **ERC20 Transfers**: Distinctive token transfer audio signatures
- **Smart Contract Calls**: Unique modulated tones for contract interactions
- **Audio Controls**: Floating mute/unmute and pause/play buttons
- **Customizable Effects**: Adjustable reverb, delay, filter, and volume controls
## Controls
### Connection Settings
- **RPC Endpoint**: Choose from Infura, Alchemy, Tenderly, or free public nodes
- **API Key Support**: Built-in API key management for premium providers
- **Connection Status**: Real-time connection monitoring
### Visual Settings
- **Color Intensity**: Adjusts the vibrancy of colors
- **Particle Density**: Number of background particles
- **Rotation Speed**: Speed of object rotations
- **Wave Amplitude**: Intensity of wave effects
- **Item Lifespan**: How long visual elements persist (2-30 seconds)
- **Blockchain Focus**: Balance between effects and data visualization
- **Show Address Graph**: Toggle the transaction graph visualization
### Audio Settings
- **Sound Style**: Choose from 6 different audio engines
- **Master Volume**: Overall sound level
- **Transaction Pitch**: Base frequency for transaction sounds
- **Block Bass Frequency**: Low frequency for block sounds
- **Reverb Amount**: Spatial echo effect
- **Filter Cutoff & Resonance**: Real-time audio filtering
- **Delay Time & Feedback**: Echo and repeat effects
## Browser Requirements
- Modern browser with WebGL support (Chrome, Firefox, Safari, Edge)
- Web Audio API support
- WebSocket support
## Performance Tips
- Lower particle density if experiencing lag
- Reduce item lifespan for better performance with high transaction volumes
- Use free public nodes if you don't have an API key
- Close other browser tabs for optimal performance
## Known Issues & Limitations
- **Performance Degradation**: With high transaction volumes, performance may decrease over time due to accumulating visual elements
- **Memory Usage**: Extended sessions may consume increasing amounts of memory as the graph grows
- **Mobile Compatibility**: Touch controls and mobile browsers may have limited functionality
- **Network Sensitivity**: Unstable internet connections can cause visualization interruptions
- **RPC Rate Limits**: Some free RPC providers have rate limits that may affect real-time streaming
- **Audio Context**: Some browsers require user interaction before audio can play (click anywhere to enable)
- **Large Distance Scaling**: At extreme zoom levels, objects may become too large and overlap
- **Connection Recovery**: Manual reconnection may be required if WebSocket connection drops