848 lines
21 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Solana Meme Coin Trading Bot</title>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'Inter', sans-serif;
background: #0a0a1a;
color: #e0e0f0;
width: 1200px;
padding: 0;
}
.infographic {
width: 1200px;
background: linear-gradient(170deg, #0d0d2b 0%, #0a0a1a 30%, #0f0a20 60%, #0a0a1a 100%);
padding: 60px 50px 50px;
position: relative;
overflow: hidden;
}
/* Subtle grid background */
.infographic::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background-image:
linear-gradient(rgba(100, 60, 255, 0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(100, 60, 255, 0.03) 1px, transparent 1px);
background-size: 40px 40px;
pointer-events: none;
}
/* Glow orbs */
.glow-1 {
position: absolute;
top: -100px; right: -100px;
width: 400px; height: 400px;
background: radial-gradient(circle, rgba(153, 69, 255, 0.15) 0%, transparent 70%);
border-radius: 50%;
pointer-events: none;
}
.glow-2 {
position: absolute;
bottom: 200px; left: -150px;
width: 500px; height: 500px;
background: radial-gradient(circle, rgba(20, 241, 149, 0.08) 0%, transparent 70%);
border-radius: 50%;
pointer-events: none;
}
.glow-3 {
position: absolute;
bottom: -100px; right: 200px;
width: 400px; height: 400px;
background: radial-gradient(circle, rgba(255, 107, 53, 0.08) 0%, transparent 70%);
border-radius: 50%;
pointer-events: none;
}
/* Header */
.header {
text-align: center;
margin-bottom: 50px;
position: relative;
z-index: 1;
}
.header-badge {
display: inline-block;
background: linear-gradient(135deg, rgba(153, 69, 255, 0.2), rgba(20, 241, 149, 0.2));
border: 1px solid rgba(153, 69, 255, 0.3);
border-radius: 50px;
padding: 8px 24px;
font-size: 13px;
font-weight: 600;
letter-spacing: 2px;
text-transform: uppercase;
color: #b48aff;
margin-bottom: 20px;
}
.header h1 {
font-size: 52px;
font-weight: 900;
background: linear-gradient(135deg, #ffffff 0%, #b48aff 50%, #14f195 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
line-height: 1.1;
margin-bottom: 12px;
}
.header p {
font-size: 18px;
color: #8888aa;
font-weight: 400;
}
/* Strategy badges row */
.strategy-row {
display: flex;
justify-content: center;
gap: 16px;
margin-bottom: 50px;
position: relative;
z-index: 1;
}
.strategy-badge {
background: rgba(255,255,255,0.04);
border: 1px solid rgba(255,255,255,0.08);
border-radius: 14px;
padding: 16px 24px;
text-align: center;
flex: 1;
max-width: 260px;
}
.strategy-badge .icon {
font-size: 28px;
margin-bottom: 8px;
}
.strategy-badge .label {
font-size: 14px;
font-weight: 700;
color: #fff;
margin-bottom: 4px;
}
.strategy-badge .desc {
font-size: 11px;
color: #7777aa;
line-height: 1.4;
}
.strategy-badge.primary {
border-color: rgba(153, 69, 255, 0.4);
background: rgba(153, 69, 255, 0.08);
}
.strategy-badge.primary .label {
color: #c9a0ff;
}
/* Section Title */
.section-title {
font-size: 13px;
font-weight: 700;
letter-spacing: 3px;
text-transform: uppercase;
color: #14f195;
margin-bottom: 24px;
position: relative;
z-index: 1;
display: flex;
align-items: center;
gap: 12px;
}
.section-title::after {
content: '';
flex: 1;
height: 1px;
background: linear-gradient(90deg, rgba(20, 241, 149, 0.3), transparent);
}
/* Pipeline flow */
.pipeline {
display: flex;
gap: 0;
margin-bottom: 50px;
position: relative;
z-index: 1;
}
.pipeline-step {
flex: 1;
position: relative;
padding: 0 8px;
}
.pipeline-card {
background: rgba(255,255,255,0.03);
border: 1px solid rgba(255,255,255,0.08);
border-radius: 16px;
padding: 24px 20px;
height: 100%;
position: relative;
transition: all 0.3s;
}
.pipeline-step:nth-child(1) .pipeline-card {
border-top: 3px solid #9945FF;
}
.pipeline-step:nth-child(2) .pipeline-card {
border-top: 3px solid #FF6B35;
}
.pipeline-step:nth-child(3) .pipeline-card {
border-top: 3px solid #14F195;
}
.pipeline-step:nth-child(4) .pipeline-card {
border-top: 3px solid #00D4FF;
}
.pipeline-number {
font-size: 11px;
font-weight: 800;
color: #555;
letter-spacing: 1px;
margin-bottom: 10px;
}
.pipeline-card h3 {
font-size: 18px;
font-weight: 800;
color: #fff;
margin-bottom: 6px;
}
.pipeline-card .subtitle {
font-size: 12px;
color: #8888aa;
margin-bottom: 14px;
line-height: 1.4;
}
.pipeline-card ul {
list-style: none;
padding: 0;
}
.pipeline-card ul li {
font-size: 12px;
color: #aaaacc;
padding: 4px 0;
padding-left: 16px;
position: relative;
line-height: 1.5;
}
.pipeline-card ul li::before {
content: '';
position: absolute;
left: 0;
font-weight: 700;
}
.pipeline-step:nth-child(1) li::before { color: #9945FF; }
.pipeline-step:nth-child(2) li::before { color: #FF6B35; }
.pipeline-step:nth-child(3) li::before { color: #14F195; }
.pipeline-step:nth-child(4) li::before { color: #00D4FF; }
/* Arrow connectors */
.pipeline-step:not(:last-child)::after {
content: '→';
position: absolute;
right: -8px;
top: 50%;
transform: translateY(-50%);
font-size: 22px;
color: #333355;
z-index: 2;
font-weight: 300;
}
/* Safety & Exit split */
.split-row {
display: flex;
gap: 24px;
margin-bottom: 50px;
position: relative;
z-index: 1;
}
.split-card {
flex: 1;
background: rgba(255,255,255,0.03);
border: 1px solid rgba(255,255,255,0.08);
border-radius: 16px;
padding: 28px;
}
.split-card h3 {
font-size: 18px;
font-weight: 800;
color: #fff;
margin-bottom: 18px;
display: flex;
align-items: center;
gap: 10px;
}
.split-card h3 .dot {
width: 10px;
height: 10px;
border-radius: 50%;
display: inline-block;
}
/* Safety items */
.safety-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
}
.safety-item {
display: flex;
align-items: center;
gap: 10px;
background: rgba(255, 50, 50, 0.05);
border: 1px solid rgba(255, 50, 50, 0.1);
border-radius: 10px;
padding: 10px 14px;
}
.safety-icon {
font-size: 18px;
flex-shrink: 0;
}
.safety-text {
font-size: 12px;
font-weight: 600;
color: #ff8888;
}
.safety-desc {
font-size: 10px;
color: #886666;
margin-top: 2px;
}
/* Exit strategy */
.exit-tiers {
display: flex;
flex-direction: column;
gap: 8px;
}
.exit-tier {
display: flex;
align-items: center;
gap: 14px;
padding: 10px 14px;
border-radius: 10px;
background: rgba(20, 241, 149, 0.04);
border: 1px solid rgba(20, 241, 149, 0.08);
}
.tier-bar {
height: 6px;
border-radius: 3px;
background: linear-gradient(90deg, #14f195, #00d4ff);
flex-shrink: 0;
}
.tier-label {
font-size: 13px;
font-weight: 700;
color: #14f195;
white-space: nowrap;
min-width: 70px;
}
.tier-action {
font-size: 12px;
color: #aaaacc;
flex: 1;
}
.tier-pct {
font-size: 13px;
font-weight: 800;
color: #fff;
white-space: nowrap;
}
/* Tech stack bar */
.tech-bar {
display: flex;
gap: 12px;
margin-bottom: 50px;
position: relative;
z-index: 1;
flex-wrap: wrap;
}
.tech-chip {
background: rgba(255,255,255,0.04);
border: 1px solid rgba(255,255,255,0.1);
border-radius: 10px;
padding: 12px 18px;
display: flex;
align-items: center;
gap: 8px;
flex: 1;
min-width: 160px;
}
.tech-chip .tech-label {
font-size: 10px;
font-weight: 600;
color: #666688;
text-transform: uppercase;
letter-spacing: 1px;
}
.tech-chip .tech-value {
font-size: 13px;
font-weight: 700;
color: #ddddf0;
}
/* Phases timeline */
.phases {
position: relative;
z-index: 1;
margin-bottom: 40px;
}
.phase-row {
display: flex;
gap: 12px;
margin-bottom: 10px;
}
.phase-item {
flex: 1;
background: rgba(255,255,255,0.03);
border: 1px solid rgba(255,255,255,0.06);
border-radius: 12px;
padding: 16px 18px;
position: relative;
overflow: hidden;
}
.phase-item::before {
content: '';
position: absolute;
bottom: 0;
left: 0;
right: 0;
height: 3px;
}
.phase-item:nth-child(1)::before { background: #9945FF; }
.phase-item:nth-child(2)::before { background: #FF6B35; }
.phase-item:nth-child(3)::before { background: #14F195; }
.phase-item:nth-child(4)::before { background: #00D4FF; }
.phase-item:nth-child(5)::before { background: #FFD700; }
.phase-item:nth-child(6)::before { background: #FF69B4; }
.phase-num {
font-size: 10px;
font-weight: 800;
color: #555;
letter-spacing: 1px;
margin-bottom: 4px;
}
.phase-name {
font-size: 13px;
font-weight: 700;
color: #fff;
margin-bottom: 2px;
}
.phase-time {
font-size: 11px;
color: #666688;
}
/* Footer */
.footer {
text-align: center;
padding-top: 30px;
border-top: 1px solid rgba(255,255,255,0.05);
position: relative;
z-index: 1;
}
.footer-text {
font-size: 13px;
color: #555577;
font-weight: 500;
}
.footer-warning {
display: inline-block;
background: rgba(255, 200, 50, 0.08);
border: 1px solid rgba(255, 200, 50, 0.2);
border-radius: 10px;
padding: 12px 24px;
margin-top: 14px;
font-size: 12px;
color: #ccaa55;
font-weight: 600;
}
/* Rug check section */
.rug-checks {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
margin-bottom: 14px;
}
.rug-check-item {
text-align: center;
padding: 14px 10px;
background: rgba(255, 107, 53, 0.05);
border: 1px solid rgba(255, 107, 53, 0.12);
border-radius: 12px;
}
.rug-check-item .check-icon {
font-size: 22px;
margin-bottom: 6px;
}
.rug-check-item .check-label {
font-size: 11px;
font-weight: 700;
color: #ffaa77;
}
.rug-check-item .check-desc {
font-size: 10px;
color: #886655;
margin-top: 2px;
}
</style>
</head>
<body>
<div class="infographic">
<div class="glow-1"></div>
<div class="glow-2"></div>
<div class="glow-3"></div>
<!-- Header -->
<div class="header">
<div class="header-badge">Automated Trading System</div>
<h1>Solana Meme Coin<br>Trading Bot</h1>
<p>Detect. Analyze. Execute. Profit. — Built by Buba</p>
</div>
<!-- Strategy Options -->
<div class="strategy-row">
<div class="strategy-badge primary">
<div class="icon"></div>
<div class="label">Token Sniper</div>
<div class="desc">Detect new pump.fun launches, buy early before the crowd</div>
</div>
<div class="strategy-badge primary">
<div class="icon">👁</div>
<div class="label">Copy Trading</div>
<div class="desc">Track profitable wallets, automatically mirror their trades</div>
</div>
<div class="strategy-badge">
<div class="icon">📊</div>
<div class="label">DEX Arbitrage</div>
<div class="desc">Exploit price gaps between Raydium, Jupiter & Orca</div>
</div>
<div class="strategy-badge">
<div class="icon">🔥</div>
<div class="label">Volume Scanner</div>
<div class="desc">Spot unusual activity spikes and ride the momentum wave</div>
</div>
</div>
<!-- Pipeline -->
<div class="section-title">How It Works — The Pipeline</div>
<div class="pipeline">
<div class="pipeline-step">
<div class="pipeline-card">
<div class="pipeline-number">MODULE 01</div>
<h3>Scanner</h3>
<div class="subtitle">Token Discovery</div>
<ul>
<li>WebSocket to pump.fun program</li>
<li>Detect new token launches</li>
<li>Monitor Raydium new pools</li>
<li>Track "sharp wallets" buys</li>
<li>Bonding curve graduations</li>
</ul>
</div>
</div>
<div class="pipeline-step">
<div class="pipeline-card">
<div class="pipeline-number">MODULE 02</div>
<h3>Analyzer</h3>
<div class="subtitle">Safety & Scoring</div>
<ul>
<li>Mint/Freeze authority check</li>
<li>Liquidity lock verification</li>
<li>Top holder concentration</li>
<li>Rugcheck.xyz API score</li>
<li>Dev wallet history scan</li>
</ul>
</div>
</div>
<div class="pipeline-step">
<div class="pipeline-card">
<div class="pipeline-number">MODULE 03</div>
<h3>Executor</h3>
<div class="subtitle">Trade Execution</div>
<ul>
<li>Jupiter V6 optimal routing</li>
<li>Jito bundles for speed</li>
<li>Priority fee management</li>
<li>Auto-retry on failure</li>
<li>Configurable slippage</li>
</ul>
</div>
</div>
<div class="pipeline-step">
<div class="pipeline-card">
<div class="pipeline-number">MODULE 04</div>
<h3>Portfolio</h3>
<div class="subtitle">Position Management</div>
<ul>
<li>Tiered take-profit exits</li>
<li>Automatic stop loss</li>
<li>Trailing stop at 2x+</li>
<li>Time-based dead exits</li>
<li>Emergency rug detection</li>
</ul>
</div>
</div>
</div>
<!-- Rug Detection -->
<div class="section-title">Anti-Rug Analysis — Token Scoring (0-100)</div>
<div class="rug-checks">
<div class="rug-check-item">
<div class="check-icon">🔓</div>
<div class="check-label">Mint Authority</div>
<div class="check-desc">Must be revoked</div>
</div>
<div class="rug-check-item">
<div class="check-icon">❄️</div>
<div class="check-label">Freeze Authority</div>
<div class="check-desc">Must be revoked</div>
</div>
<div class="rug-check-item">
<div class="check-icon">🔒</div>
<div class="check-label">LP Locked</div>
<div class="check-desc">Burned or locked</div>
</div>
<div class="rug-check-item">
<div class="check-icon">👥</div>
<div class="check-label">Holder Spread</div>
<div class="check-desc">Top 10 &lt; 50%</div>
</div>
<div class="rug-check-item">
<div class="check-icon">🕵️</div>
<div class="check-label">Dev History</div>
<div class="check-desc">No prior rug pulls</div>
</div>
<div class="rug-check-item">
<div class="check-icon">📱</div>
<div class="check-label">Socials Check</div>
<div class="check-desc">Twitter/TG/Website</div>
</div>
<div class="rug-check-item">
<div class="check-icon">📈</div>
<div class="check-label">Vol/MCap Ratio</div>
<div class="check-desc">Filter wash trading</div>
</div>
<div class="rug-check-item">
<div class="check-icon"></div>
<div class="check-label">Rugcheck API</div>
<div class="check-desc">External risk score</div>
</div>
</div>
<!-- Safety & Exit Strategy -->
<div class="split-row">
<div class="split-card">
<h3><span class="dot" style="background:#ff4444"></span> Safety Rails</h3>
<div class="safety-grid">
<div class="safety-item">
<div class="safety-text">Paper Trade First
<div class="safety-desc">No real money until validated</div>
</div>
</div>
<div class="safety-item">
<div class="safety-text">Max Position Cap
<div class="safety-desc">Never risk more than X SOL/trade</div>
</div>
</div>
<div class="safety-item">
<div class="safety-text">Daily Loss Limit
<div class="safety-desc">Auto-shutdown after X SOL lost</div>
</div>
</div>
<div class="safety-item">
<div class="safety-text">Kill Switch
<div class="safety-desc">One command closes everything</div>
</div>
</div>
<div class="safety-item">
<div class="safety-text">Wallet Isolation
<div class="safety-desc">Dedicated bot wallet only</div>
</div>
</div>
<div class="safety-item">
<div class="safety-text">Spot Only
<div class="safety-desc">No leverage, no borrowing</div>
</div>
</div>
</div>
</div>
<div class="split-card">
<h3><span class="dot" style="background:#14f195"></span> Exit Strategy</h3>
<div class="exit-tiers">
<div class="exit-tier">
<div class="tier-label">@ 2x</div>
<div class="tier-action">Take initial profit — secure the bag</div>
<div class="tier-pct">Sell 25%</div>
</div>
<div class="exit-tier">
<div class="tier-label">@ 3x</div>
<div class="tier-action">Scale out — playing with house money</div>
<div class="tier-pct">Sell 25%</div>
</div>
<div class="exit-tier">
<div class="tier-label">@ 5x</div>
<div class="tier-action">Major profit taking — lock it in</div>
<div class="tier-pct">Sell 25%</div>
</div>
<div class="exit-tier">
<div class="tier-label">Moon 🌙</div>
<div class="tier-action">Let it ride with trailing stop (-20%)</div>
<div class="tier-pct">Hold 25%</div>
</div>
<div class="exit-tier" style="background: rgba(255,50,50,0.06); border-color: rgba(255,50,50,0.12);">
<div class="tier-label" style="color:#ff6666">Stop Loss</div>
<div class="tier-action">Cut losses, protect capital</div>
<div class="tier-pct" style="color:#ff6666">@ -30%</div>
</div>
</div>
</div>
</div>
<!-- Tech Stack -->
<div class="section-title">Tech Stack</div>
<div class="tech-bar">
<div class="tech-chip">
<div>
<div class="tech-label">Language</div>
<div class="tech-value">TypeScript</div>
</div>
</div>
<div class="tech-chip">
<div>
<div class="tech-label">RPC</div>
<div class="tech-value">Helius / QuickNode</div>
</div>
</div>
<div class="tech-chip">
<div>
<div class="tech-label">TX Engine</div>
<div class="tech-value">Jito Bundles</div>
</div>
</div>
<div class="tech-chip">
<div>
<div class="tech-label">DEX</div>
<div class="tech-value">Jupiter V6 SDK</div>
</div>
</div>
<div class="tech-chip">
<div>
<div class="tech-label">Data</div>
<div class="tech-value">Helius Webhooks</div>
</div>
</div>
<div class="tech-chip">
<div>
<div class="tech-label">Storage</div>
<div class="tech-value">SQLite</div>
</div>
</div>
<div class="tech-chip">
<div>
<div class="tech-label">Alerts</div>
<div class="tech-value">Discord Bot</div>
</div>
</div>
</div>
<!-- Build Phases -->
<div class="section-title">Build Phases — ~12-16 Hours Total</div>
<div class="phases">
<div class="phase-row">
<div class="phase-item">
<div class="phase-num">PHASE 1</div>
<div class="phase-name">Core Infra</div>
<div class="phase-time">Wallet + RPC + Jupiter swaps — 2-3h</div>
</div>
<div class="phase-item">
<div class="phase-num">PHASE 2</div>
<div class="phase-name">Scanner</div>
<div class="phase-time">pump.fun WebSocket + detection — 2-3h</div>
</div>
<div class="phase-item">
<div class="phase-num">PHASE 3</div>
<div class="phase-name">Analyzer</div>
<div class="phase-time">Rug checks + token scoring — 2-3h</div>
</div>
</div>
<div class="phase-row">
<div class="phase-item">
<div class="phase-num">PHASE 4</div>
<div class="phase-name">Portfolio Mgr</div>
<div class="phase-time">TP / SL / trailing stops — 1-2h</div>
</div>
<div class="phase-item">
<div class="phase-num">PHASE 5</div>
<div class="phase-name">Control Layer</div>
<div class="phase-time">Discord alerts + kill switch — 1-2h</div>
</div>
<div class="phase-item">
<div class="phase-num">PHASE 6</div>
<div class="phase-name">Copy Trading</div>
<div class="phase-time">Wallet tracking + mirroring — 2-3h</div>
</div>
</div>
</div>
<!-- Footer -->
<div class="footer">
<div class="footer-warning">⚠️ Meme coin trading is extremely high risk. Most tokens go to zero. Start with paper trading, then small amounts only.</div>
<div class="footer-text" style="margin-top: 16px;">Built with Buba ♥ — Starts in paper trading mode. No real money until validated.</div>
</div>
</div>
</body>
</html>