Terminal Overview
The terminal combines a real-time NFT mint stream, a multi-mode contract sniper, a full-featured DEX trading terminal, a holder-only encrypted messenger, custom price alert monitors, and a shareable PNL card generator • all inside a single cyberpunk interface.
0xe638...5c69 • Supply: 2,222 unique Apes. Verification is 100% on-chain via direct RPC balanceOf call.Supported Wallets
| Wallet | Detection |
|---|---|
| Rabby Wallet | EIP-6963 • window.rabby • isRabby |
| MetaMask | EIP-6963 • isMetaMask (excluding overlays) |
| Phantom (EVM) | EIP-6963 • window.phantom.ethereum |
| Coinbase Wallet | EIP-6963 • isCoinbaseWallet |
| OKX Wallet | EIP-6963 • window.okxwallet |
| Trust Wallet | EIP-6963 • isTrust |
| Any EIP-6963 | Rainbow, Zerion, Brave, Backpack, Frame, Ledger Live, etc. |
| Browser Default | Fallback to window.ethereum |
Network Configuration
Key Contracts
| Contract | Address | Purpose |
|---|---|---|
| Suited Ape Society | 0xe638...5c69 | ERC-721 holder gate (2,222 supply) |
| SeaDrop | 0x0000...24bf5 | NFT minting protocol |
| Multicall3 | 0xca11...ca11 | Batch RPC calls |
| Universal Router | 0x204f...0498 | V3/V4 swap execution |
| V2 Router | 0x89e5...9eba | V2 swap execution |
| WETH | 0x0bd7...dad73 | Wrapped ETH |
| Permit2 | 0x0000...8ba3 | Token approval protocol |
| Flap Portal | 0x2660...eb09 | Flap.sh DEX |
Authentication & Holder Gate
Multi-layer auth combining a cinematic video intro, EIP-6963 multi-wallet discovery, and on-chain ERC-721 holder verification. No backend database, no API key • the gate is 100% on-chain.
Video Intro Sequence
- Fullscreen viewport (100vw × 100vh) with poster frame • dual-format sources (MP4 + QuickTime)
- Auto-plays muted on mount (browser autoplay policy compliant)
- CRT scanline overlay effect for terminal aesthetic
- Video progress bar with animated fill and timecode HUD
- Auto-pauses at 0.6s before end to reveal the authentication HUD
- Controls: Mute/Unmute, Skip to Wallet Gate, Replay Intro
Wallet Discovery (EIP-6963)
- Dispatches
eip6963:requestProviderevent on module load - Listens for
eip6963:announceProviderevents from installed extensions - Each wallet announces
info(uuid, name, icon, rdns) andprovider(EIP-1193) - Results merged with legacy detection (
window.ethereum, etc.) - Wallets sorted: detected first • 350ms delayed re-scan catches late injections
- Selected wallet ID saved to
localStoragefor auto-reconnect
On-Chain Verification
eth_requestAccounts on the selected EIP-1193 providerwallet_switchEthereumChain (0x1237) • auto-adds if not configuredbalanceOf(address) on the Suited Ape contractContinuous Enforcement
- Account change listener • listens to
accountsChangedevents. Switching to a 0-balance wallet terminates the session. - Periodic re-verification • every 20 seconds via
verifySuitedApeBalance. If balance drops to 0, gate re-engages. - Skip intro on re-gate • video intro is skipped, user goes directly to wallet selection.
Live Mint Tape
Real-time on-chain event stream displaying every ERC-721 NFT mint on Robinhood Chain. Scans Transfer(address(0) → to, tokenId) logs directly from the chain via JSON-RPC.
Stream Filters
| Filter | Default | Description |
|---|---|---|
| HIDE DEX LP | ON | Hides LP mints from Uniswap V3/V4, Slipstream, Ramses, PancakeSwap (20+ contracts) |
| FREE MINTS ONLY | OFF | Shows only mints with 0 ETH value |
| WHALE SWEEPS (≥3) | OFF | Shows only mints where 3+ NFTs bought in a single tx |
| Search | Text filter by name, symbol, contract, or minter address |
Mint Event Row
- NFT Thumbnail • from on-chain tokenURI with multi-gateway IPFS fallback
- Collection Name + Token ID
- Batch Badge • ×N for multi-mint, 🐋 SWEEP ×N for 3+ mints
- Method Pill • decoded 4-byte selector (e.g. "SeaDrop: mintPublic()")
- Price • "FREE MINT" or exact ETH amount
- SNIPE Button • loads collection into the Sniper Deck
Controls
- Pause / Resume • freezes live polling
- Force Refresh • immediate RPC scan
- Block Window • dropdown: 3K / 9K / 22K blocks
Sniper & Direct Contract Mint
Load any Robinhood Chain NFT contract address and execute mints using one of four calldata execution modes. A smart pre-flight solver automatically selects the best mint method before execution.
Loading a Target
- Manual input • paste any 0x... address and click "LOAD CA"
- From Live Mint Tape or Trending Radar • click any row or card to auto-load
On load: name(), symbol(), totalSupply(), maxSupply(), SeaDrop getPublicDrop(), latest mint TX analysis, tokenURI(), OpenSea catalog lookup, Suited Ape Free Mint eligibility check.
Calldata Execution Modes
Smart Pre-Flight Solver
- Checks if the holder has an unused Suited Ape token ID for a free mint
- If yes, auto-switches to the free mint method
- Verifies exact SeaDrop mint price matches calldata value
- Falls back through methods until one passes
eth_callsimulation
Action Buttons
| Button | Action |
|---|---|
| SIMULATE | Dry-run via eth_call • no TX, no gas • reports success/failure + decoded revert reason |
| MINT Nx NOW | Live on-chain mint: ensures chain → pre-flight → broadcasts eth_sendTransaction → logs TX hash |
Execution Console
Terminal-style log with color-coded entries: info, ok, warn, err. Each entry timestamped [HH:MM:SS]. Auto-scrolls to latest.
Auto-Snipe System
Schedule a mint to fire automatically at the exact second a SeaDrop collection opens its public phase. Persistent countdown timer ticks down to the on-chain startTime, and at 00:00:00 the terminal fires the transaction through your wallet.
Arming
- Block-0 Deploys Radar • click "AUTO-SNIPE" on any upcoming deployment
- Sniper Deck Countdown Banner • "ARM AUTO-SNIPE" button on loaded collections with future startTime
localStorage key suited_armed_autosnipes_v2. On reload: entries restore, expired ones (30s+ past start) are pruned, active countdowns resume.Trigger Sequence
- Marks as triggered • one-shot, will not fire again
- Plays alert sound • ascending 3-note arpeggio via Web Audio API
- Block-readiness loop • up to 6 attempts (850ms apart, ~5s) verifying chain block timestamp
- Builds SeaDrop mintPublic calldata • exact mint price × quantity as msg.value
- Broadcasts via eth_sendTransaction
- Quantity fallback • if multi-qty fails, auto-retries with qty = 1
- Logs result • TX hash + explorer link, or decoded revert reason
Visual States
| State | Banner Display | Button |
|---|---|---|
| Upcoming (not armed) | WL PHASE ACTIVE // PUBLIC OPENS IN HH:MM:SS | ARM AUTO-SNIPE |
| Armed (counting) | AUTO-SNIPE ARMED // FIRING Nx IN HH:MM:SS | DISARM (HH:MM:SS) |
| Triggered | • | Fires automatically |
DEX Trading Terminal
3-pane trading interface combining a market scanner (DexScreener), interactive price charts (dual engine: DexScreener embed or custom HTML5 Canvas), live on-chain trade decoding, and a full swap execution panel.
Market Scanner
| Tab | Sort Logic |
|---|---|
| 🔥 HOT TXNS | Composite score of buys + sells in 1h and 5m intervals |
| 📊 24H VOL | 24h volume USD descending |
| 🚀 GAINERS | 24h price change % descending |
Chart Engine • DexScreener Embed
Full DexScreener iframe with dark theme • configurable candle interval • readout bar with 5M TX, 1H TX, 5M Volume, Last Sync.
Chart Engine • RPC Canvas
- Custom HTML5 Canvas candlestick chart with high-DPI support
- Green (#ccff00) bullish / Red (#ff2e54) bearish candles
- Area chart mode with gradient fill (toggleable)
- EMA overlays: 9-period (cyan) and 21-period (amber)
- Volume bars, live spot price line, crosshair, OHLCV readout, mouse wheel zoom
- Timeframes: 1M, 5M, 15M, 1H, 4H, 1D
Live On-Chain Trades
Decoded from Uniswap V3/V4 Swap event logs + GeckoTerminal API. Columns: TIME, TYPE (BUY/SELL), PRICE, AMOUNT, QUOTE, TOTAL USD, MAKER, TX. Up to 30 recent trades, color-coded by direction.
Swap Execution Engine
Handles all on-chain token trading. 5 DEX protocols, dual-path quoting (Relay.link primary, multi-DEX fallback), Permit2 approvals, and pre-flight simulation.
Supported Protocols
| Protocol | Route Types |
|---|---|
| Relay.link | Aggregated cross-DEX routing via external solver API |
| Uniswap V4 | 1-hop ETH pools, 2-hop via USDG |
| Uniswap V3 | Direct WETH pools (100/500/3000/10000 bps), USDG hop |
| Uniswap V2 | Direct WETH, USDG hop |
| Flap Portal | Direct portal buy/sell |
Quote Pipeline
Step 1 • Relay.link (Primary)
- Posts quote to
api.relay.link/quotewith user address, chain, tokens, amounts, slippage - Tries multiple slippage levels: user-set, max(user-set, 3%), and 10%
- Each quote verified via
eth_callsimulation before acceptance
Step 2 • Multi-DEX Fallback
- Builds ALL candidate TXs across Flap, V4, V3, V2 simultaneously
- Pass 1 (Strict): minOut = 85% of estimated output, validates via eth_call in parallel
- Pass 2 (Relaxed): if all strict fail, retries with minOut = 1 raw unit
Permit2 Approval Flow
Slippage
Portfolio (My Bag)
Real-time wallet portfolio on Robinhood Chain. Scans for all ERC-20 holdings, live USD valuations, 1-click quick sell, and PNL card generation per position.
Position Discovery
- Known DexScreener pairs • checks discovered pairs for wallet balances
- Transfer log scan • searches Transfer logs in last 28,000 blocks (~7.5h)
- Parallel balanceOf calls • queries all candidate tokens in parallel
- Cross-reference DexScreener • matches tokens for live pricing
1-Click Quick Sell
| Button | Action |
|---|---|
| SELL 25% | Sells 25% of your token balance |
| SELL 50% | Sells 50% of your token balance |
| SELL 100% | Sells your entire token balance |
Each sell: resolves verified swap quote → handles ERC-20 approval if needed (Permit2) → broadcasts via wallet → portfolio refreshes after execution.
Price Monitors & Alerts
Custom price alerts for any Robinhood Chain token. Polls DexScreener every 3.5s, triggers sound notifications, displays visual toast alerts, and auto-injects executable trade cards into Holder Chat.
7 Condition Types
| # | Type | Input |
|---|---|---|
| 1 | 📉 Price Drops by % | Percentage from baseline |
| 2 | 🚀 Price Pumps by % | Percentage from baseline |
| 3 | ⚡ 5m Candle Drops ≤ -X% | Percentage |
| 4 | ⚡ 5m Candle Pumps ≥ +X% | Percentage |
| 5 | 🎯 Price Falls Below ≤ $X | USD |
| 6 | 🎯 Price Breaks Above ≥ $X | USD |
| 7 | 🔥 5m Volume Surges ≥ $X | USD |
Instant Arm Presets
Trigger Sequence
- Status changes to triggered (one-shot)
- Sound alert • 3-note arpeggio via Web Audio API (buy: 587/880/1175 Hz, sell: 880/659/988 Hz)
- Toast banner • "🎯 MONITOR TRIGGERED: $SYMBOL" with "VIEW CHART" button
- Chat injection • executable trade card sent to configured channel
suited_terminal_custom_monitors_v1. Deduplication merges monitors with identical pair:condition:threshold:side.Holder Messenger Chat
Real-time messaging for verified Suited Ape holders. Messenger-style floating dock with 4 group channels, private wallet-to-wallet DMs, in-chat 1-click trade execution, emoji reactions, nicknames, and monitor alert auto-injection.
Channels
| Channel | Icon | Description |
|---|---|---|
| Suited Holders Lounge | 🦍 | General chat for verified holders |
| DEX Alpha & Signals | 📈 | Trading floor • token calls, charts, alpha |
| Live Price Monitors | 🎯 | Alert triggers and 1-click execution |
| Live Mint Snipers | ⚡ | ERC-721 mint alerts, sweeps, sniper calls |
Message Types
In-Chat Execution
DEX Trades: Buy/Sell toggle, amount presets (0.01/0.025/0.05/0.1 ETH for buy, 25%/50%/100% for sell), on-chain balance reading, full swap pipeline, SIM button, TX hash on success, entry price saved for PNL.
NFT Mints: Quantity presets (1x/2x/5x/10x), full mint pipeline, sold-out and WL-only detection, TX hash on success.
Features
- Reactions • 👍 🔥 🚀 💎 🦍 on every message (click to toggle, counts displayed)
- Nicknames • max 24 chars, persisted server-side, format: Nickname • Ape #ID
- Contacts Drawer • live/total holder count, search, activity labels
- Private DMs • wallet-to-wallet, auto-opens on incoming
- Admin • /clear, /clearall (admin wallet only)
PNL Flex Cards
1200×675 HD shareable images showing your trading P&L. Designed for X/Twitter, Discord and Telegram with cyberpunk visuals and your Suited Ape identity.
How to Generate
- DEX Token Info Header • "FLEX PNL" camera icon
- My Bag Portfolio • camera icon on any position card
- Holder Chat • "FLEX PNL" on any token call card
Editable Parameters
| Parameter | Description | Default |
|---|---|---|
| Entry / Call Price | Your entry price | Auto-detected from localStorage |
| Live Mark Price | Current market price | Live DexScreener price |
| Position Size | Position size in USD | $250 |
Canvas Design
- Deep cyberpunk gradient with perspective tactical grid
- Outer neon border with HUD corner brackets
- "SUITED TOOLS TERMINAL" header + chain badge
- Token pair title (54px bold) + position badge
- Massive ROI readout (116px JetBrains Mono with glow shadow)
- Entry/Mark price boxes side by side
- Suited Ape identity card: 236×236 avatar, nickname, verified badge, wallet
- Green (#ccff00) for profit, Red (#ff2e54) for loss
Export
| Button | Action |
|---|---|
| Copy to Clipboard | ClipboardItem API → paste directly into X/Discord |
| Download HD PNG | Saves SuitedApe-PnL-{SYMBOL}-{timestamp}.png |
Suited Ape Vault
On-chain inspector for the full 2,222-supply Suited Ape Society collection. Look up any Ape by token ID and view its owner, IPFS metadata, and traits directly from Robinhood Chain RPC.
Layout
- Search Form • number input (1–2222) + "INSPECT APE #N" button
- Quick Access • preset buttons: #1, #7, #42, #100, #420, #777, #1337, #2222
- Vault Detail Grid • displays on load
Inspection Data
| Source | Data |
|---|---|
| On-Chain RPC | ownerOf(tokenId) • current owner wallet with Etherscan link |
| On-Chain RPC | tokenURI(tokenId) • metadata URI (IPFS) |
| IPFS Metadata | Name, Description, Image (multi-gateway fallback), Attributes/Traits grid |
Technical Architecture
Single-page React app (Vite + TypeScript) with zero external wallet SDK dependencies. All blockchain interactions implemented from scratch in pure TypeScript.
Stack
| Layer | Technology |
|---|---|
| Framework | React 18 + TypeScript |
| Build | Vite |
| Styling | Custom CSS (no framework) |
| Blockchain | Pure TypeScript JSON-RPC (no ethers.js, no viem, no wagmi) |
| Wallet | EIP-6963 + EIP-1193 (raw provider) |
| Charts | HTML5 Canvas (custom) + DexScreener iframe |
| Audio | Web Audio API (synthesized tones) |
| Export | Canvas toBlob + ClipboardItem API |
RPC Engine • Batch Queue
- Individual rpcCall() requests pushed into a pending queue
- Queue auto-flushes: 12 requests = immediate, or 14ms idle = flush whatever is queued
- Batched as single JSON-RPC batch POST
- eth_getLogs bypasses batch queue (too large)
Retry: 3-attempt strategy with primary endpoint → fallback to direct RPC → exponential backoff (320ms × attempt + jitter) on 429/5xx.
Multicall3
- Pure TypeScript encoder/decoder for aggregate3(Call3[]) • no ABI library
- Chunked into groups of 210 to stay within gas limits
- allowFailure: true ensures single failed calls don't revert the batch
Data Flow
Polling Intervals
| System | Interval | Source |
|---|---|---|
| Live Mint Tape | 3.5s | Robinhood Chain RPC |
| Auto-Snipe Clock | 1.0s | Local system clock |
| Price Monitors | 3.5s | DexScreener API |
| Market Scanner | 6.0s | DexScreener API |
| Selected Pair | 5.0s | DexScreener + RPC |
| DexScreener Live | 3.0s | DexScreener API |
| Holder Chat | 2.5s | VPS Live API |
| Holder Re-Verify | 20.0s | Robinhood Chain RPC |
| Swap Quote | 220ms | Relay.link / on-chain |
ABI Decoding (Zero-Dependency)
- decodeAbiString() • ABI-encoded string values (offset → length → bytes → UTF-8)
- decodeSeaDropPublicDropHex() • 5-field struct: mintPrice, startTime, endTime, maxPerWallet, feeBps
- decodeRevertErrorData() • known error selectors → human-readable messages
- 30+ known 4-byte selectors mapped to function names
- V3/V4 Swap event decoding with signed int256 handling
IPFS Resolution
- gateway.pinata.cloud/ipfs/{CID}
- dweb.link/ipfs/{CID}
- ipfs.decentralized-content.com/ipfs/{CID}
- /api/ipfs/{CID} (VPS proxy)
Falls back to <video> for MP4 NFTs. Arweave URIs via arweave.net. Data URIs decoded inline.
LocalStorage Keys
| Key | Purpose |
|---|---|
| suited_selected_evm_wallet_id_v1 | Last selected wallet provider |
| suited_armed_autosnipes_v2 | Persisted auto-snipe schedules |
| suited_terminal_custom_monitors_v1 | Persisted price monitors |
| suited_entry_price_{pair} | Entry price per token (PNL) |
Backend Services (VPS)
| Service | PM2 Process | Port | Purpose |
|---|---|---|---|
| Live API | suited-live-api | 8765 | Chat, OpenSea proxy, Etherscan proxy, RPC proxy, ownership index |
| Feed Sync | suited-feed-sync | • | Twitter/X feed synchronization |
| WL Sentinel | suited-whitelist-sentinel | • | Whitelist announcement scanning |
| Mint Radar | suited-mint-radar | • | Free mint opportunity detection |
Security
- Holder gate • all execution requires ≥ 1 Suited Ape verified on-chain
- No private keys • signing delegated to browser wallet
- No external SDKs • no wagmi, ethers.js, Web3Modal (eliminates supply-chain risk)
- Pre-flight simulation • every swap/mint simulated via eth_call before broadcasting
- Rate limit handling • retry logic with exponential backoff on 429