TROLLPUMP.FUN
A game of attention, not promises.
💰 Treasury: Loading... SOL
This pool is community-funded. Participation is optional.
🧠 MAD
MAD is not a token.
MAD is a measurement.
attention loss. curiosity decay. meme addiction.
The longer you stay — the more MAD you become.
“I’m MAD.” “YOU MAD?” “we all MAD.”
System: WAITING
No active bounty. The system is idle.
💬 Troll Feed
🔴 LIVE TROLL ACTIVITY
const feed = document.getElementById("feed"); const solElement = document.getElementById("sol"); const solUnitElement = document.getElementById("solUnit"); let sol = null; const trollMessages = [ "🟢 0.2 SOL — don’t rug me bro 😭", "🟢 1.0 SOL — this is definitely a scam (I sent anyway)", "🟢 0.3 SOL — I feel nothing anymore", "🟢 0.5 SOL — make me MAD pls", "🟢 2.0 SOL — I told my gf this is investment", "🟢 0.1 SOL — why am I here again", "🟢 1.5 SOL — if this rugs I deserve it", "🟢 0.4 SOL — WAGMI (I’m lying)", "🟢 0.8 SOL — chasing dopamine again", "🟢 3.0 SOL — I am not ok" ]; const systemTrolls = [ "🤡 You are still here...", "🤡 Most users left already.", "🤡 Interesting behavior detected.", "🤡 The pool is watching you.", "🤡 You might already be MAD.", "🤡 Exit not found.", "🤡 Trust is optional here.", "🤡 Welcome to the loop." ]; function updateStatus() { const status = document.getElementById("status"); const desc = document.getElementById("desc"); if (!Number.isFinite(sol)) { status.innerText = "System: CHECKING TREASURY"; desc.innerText = "Reading the project wallet from Solana mainnet."; return; } if (sol < 2) { status.innerText = "System: BUILDING (3-day pool)"; desc.innerText = "Crowd is still funding chaos."; } else if (sol < 5) { status.innerText = "System: LIVE (1-week pool)"; desc.innerText = "Attention game activated."; } else { status.innerText = "System: FINAL STAGE (1-month pool)"; desc.innerText = "Maximum MAD detected."; } } function addFeed() { const isSystem = Math.random() < 0.3; const msg = isSystem ? systemTrolls[Math.floor(Math.random() * systemTrolls.length)] : trollMessages[Math.floor(Math.random() * trollMessages.length)]; const div = document.createElement("div"); div.className = "feed-line"; div.innerText = msg; feed.prepend(div); if (feed.children.length > 12) { feed.removeChild(feed.lastChild); } } setInterval(addFeed, 1400); /* SIMPLE TREASURY SUPPORT POPUP */ const TREASURY_WALLET = "BJcMfK5qRVghxKa1FjgrjaquixgsWB3GQuvkMzbDwxut"; /* Public RPC is sufficient for a lightweight balance display. For a high-traffic production page, replace these with a private RPC URL. */ const SOLANA_RPC_ENDPOINTS = [ "https://api.mainnet-beta.solana.com", "https://api.mainnet.solana.com" ]; let balanceRequestRunning = false; function formatSolBalance(value) { if (!Number.isFinite(value)) return "Unavailable"; return value.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 4 }); } async function requestWalletBalance(endpoint) { const controller = typeof AbortController === "function" ? new AbortController() : null; const timeout = controller ? setTimeout(() => controller.abort(), 8000) : null; try { const response = await fetch(endpoint, { method: "POST", mode: "cors", cache: "no-store", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ jsonrpc: "2.0", id: 1, method: "getBalance", params: [ TREASURY_WALLET, { commitment: "confirmed" } ] }), signal: controller ? controller.signal : undefined }); if (!response.ok) { throw new Error(`RPC HTTP ${response.status}`); } const payload = await response.json(); if (payload.error) { throw new Error(payload.error.message || "Solana RPC error"); } const lamports = Number(payload?.result?.value); if (!Number.isFinite(lamports)) { throw new Error("Invalid balance response"); } return lamports / 1_000_000_000; } finally { if (timeout) clearTimeout(timeout); } } async function updateTreasuryBalance() { if (balanceRequestRunning) return; balanceRequestRunning = true; solElement.textContent = Number.isFinite(sol) ? formatSolBalance(sol) : "Loading..."; solUnitElement.textContent = " SOL"; let lastError = null; try { for (const endpoint of SOLANA_RPC_ENDPOINTS) { try { sol = await requestWalletBalance(endpoint); solElement.textContent = formatSolBalance(sol); solUnitElement.textContent = " SOL"; updateStatus(); return; } catch (error) { lastError = error; } } throw lastError || new Error("Unable to read treasury balance"); } catch (error) { console.error("Treasury balance update failed:", error); if (!Number.isFinite(sol)) { solElement.textContent = "Unavailable"; solUnitElement.textContent = ""; } updateStatus(); } finally { balanceRequestRunning = false; } } updateStatus(); updateTreasuryBalance(); /* Refresh periodically and when the visitor returns to the page. */ setInterval(updateTreasuryBalance, 30000); document.addEventListener("visibilitychange", () => { if (!document.hidden) updateTreasuryBalance(); }); const supportPoolBtn = document.getElementById("supportPoolBtn"); const supportModal = document.getElementById("supportModal"); const supportCloseBtn = document.getElementById("supportCloseBtn"); const treasuryWalletText = document.getElementById("treasuryWalletText"); const copyTreasuryBtn = document.getElementById("copyTreasuryBtn"); const supportNote = document.getElementById("supportNote"); function openSupportPopup() { updateTreasuryBalance(); treasuryWalletText.textContent = TREASURY_WALLET; supportModal.classList.add("show"); supportModal.setAttribute("aria-hidden", "false"); document.body.classList.add("modal-open"); supportNote.textContent = "Always verify the wallet address before sending."; supportNote.classList.remove("error", "success"); } function closeSupportPopup() { supportModal.classList.remove("show"); supportModal.setAttribute("aria-hidden", "true"); document.body.classList.remove("modal-open"); } async function copyText(value) { if (navigator.clipboard && window.isSecureContext) { await navigator.clipboard.writeText(value); return; } const temp = document.createElement("textarea"); temp.value = value; temp.style.position = "fixed"; temp.style.opacity = "0"; document.body.appendChild(temp); temp.select(); document.execCommand("copy"); temp.remove(); } supportPoolBtn.addEventListener("click", openSupportPopup); supportCloseBtn.addEventListener("click", closeSupportPopup); supportModal.addEventListener("click", event => { if (event.target === supportModal) closeSupportPopup(); }); document.addEventListener("keydown", event => { if (event.key === "Escape" && supportModal.classList.contains("show")) { closeSupportPopup(); } }); copyTreasuryBtn.addEventListener("click", async () => { try { await copyText(TREASURY_WALLET); supportNote.textContent = "Wallet address copied."; supportNote.classList.remove("error"); supportNote.classList.add("success"); copyTreasuryBtn.textContent = "COPIED"; setTimeout(() => { copyTreasuryBtn.textContent = "COPY"; }, 1600); } catch (error) { console.error(error); supportNote.textContent = "Could not copy. Select the address manually."; supportNote.classList.remove("success"); supportNote.classList.add("error"); } });
    COUNTDOWN TO THE END OF 2026: Loading...
    TROLLPUMP TV • LIVE
    🔥 EPISODE SPONSOR 🔥
    TOKEN
    LIVE PRICE • MCAP • VOL
    PRICELoading...
    MCAPLoading...
    VOL 24HLoading...
    VIEW TOKEN
    🤡 YOU MAD?
    ● TROLLPUMP 24/7 • PURE CHAOS
    12,487 people have been trolled 🔥