import { WebSocket, WebSocketServer } from 'ws'; export class BuyEventWebSocketServer { constructor({ port = 8080 } = {}) { this.port = port; this.wss = null; this.heartbeatInterval = null; } start() { if (this.wss) { console.log('[ws] WebSocket server already running.'); return; } this.wss = new WebSocketServer({ port: this.port, perMessageDeflate: false }); this.wss.on('listening', () => { console.log(`[ws] WebSocket server listening on ws://0.0.0.0:${this.port}`); }); this.wss.on('connection', (socket, request) => { const clientIp = request.socket.remoteAddress; socket.isAlive = true; console.log(`[ws] Client connected (${clientIp}). total=${this.wss.clients.size}`); socket.on('pong', () => { socket.isAlive = true; }); socket.on('close', () => { console.log(`[ws] Client disconnected (${clientIp}). total=${this.wss.clients.size}`); }); socket.on('error', (error) => { console.error(`[ws] Client error (${clientIp}):`, error.message); }); socket.send( JSON.stringify({ type: 'welcome', message: 'Connected to Pump.fun buy stream', timestamp: new Date().toISOString() }) ); }); this.wss.on('error', (error) => { console.error('[ws] WebSocket server error:', error.message); }); this.startHeartbeat(); } startHeartbeat() { this.heartbeatInterval = setInterval(() => { if (!this.wss) { return; } this.wss.clients.forEach((socket) => { if (socket.isAlive === false) { socket.terminate(); return; } socket.isAlive = false; socket.ping(); }); }, 30_000); } broadcastBuyEvent(event) { if (!this.wss) { return; } const payload = JSON.stringify({ type: 'buy_event', data: event, timestamp: new Date().toISOString() }); let sent = 0; this.wss.clients.forEach((socket) => { if (socket.readyState === WebSocket.OPEN) { socket.send(payload); sent += 1; } }); if (sent > 0) { console.log(`[ws] Broadcasted buy event to ${sent} client(s): ${event.signature}`); } } stop() { if (this.heartbeatInterval) { clearInterval(this.heartbeatInterval); this.heartbeatInterval = null; } if (this.wss) { this.wss.close(); this.wss = null; console.log('[ws] WebSocket server stopped.'); } } } WorldWideBlunt Coin • WWBC
blunt icon WWBC WorldWideBlunt Coin
Currently smoking @ —
WWBC blunt fallback
Top Pass Loading…
Time: — Lat: — Lng: — USD: — Amount: —
#avatartimecitylatlngusdamount

Stats

Powered by pump.fun data • Auto-refreshes on load

Loading stats from pump.fun…
Price (USD)
Market Cap
Liquidity
24h Volume
Holders
Supply
View on pump.fun ↗ Last updated: —

Chat

About WWBC

Ticker: WWBC Chain: Solana

WWBC is a community‑driven token on Solana, built for fast, low‑fee transactions and playful culture. The goal is simple: make it fun to pass the blunt around the world—digitally—while showcasing what Solana can do for real‑time, low‑latency apps.

  • Ultra‑low fees: Solana’s throughput enables micro‑purchases and rich UI updates.
  • Speed: Sub‑second UX for “purchase → update map → share” flows.
  • Community first: On‑chain activity powers the live “Pass History” feed.
  • Open integrations: Add wallets (Phantom, Solflare), swaps (Jupiter), or a custom mint flow.
  • Data‑lite: No PII stored; geolocation is optional and best‑effort with an IP fallback.

Follow the official channels below for verified token details, contracts, and updates.

Powered by
Solana (SPL)
High TPS • Low Fees • Fun UX
🌍
WorldWide
Pass the blunt globally
Latest purchase centers the globe and updates the live feed.
🧩
Composable
Plug in your stack
Wallet connect, swaps, and mint UI can be added easily.

Contact