github re-analysis due

nirholas/cryptocurrency.cv

github

Free crypto news API - real-time aggregator for Bitcoin, Ethereum, DeFi, Solana & altcoins. No API key required. RSS/Atom feeds, JSON REST API, historical archive with market context, embeddable widgets, ChatGPT plugin, Claude MCP server, SDKs (Python, TypeScript, Go, React, PHP). AI/LLM ready. Vibe coding friendly. Open source.

maintainer
nirholas
license
NOASSERTION
first seen
2026-06-01
last seen
2026-06-04
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 0 tools
transport stdio counts 0 tools · 0 res · 0 prompts permission surface via code analysis

no tools enumerated yet for this server.

skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit b342686 · analyzer v17 · 2d ago

skills & prompt files 5

danger signals10

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 13

  • fs nirholas-cryptocurrency.cv-b342686/memescope-monday/components/blog/reading-time.ts :1 import fs from "fs"
  • fs nirholas-cryptocurrency.cv-b342686/patch-next-write-atomic.js :12 const fs = require('fs');
  • fs nirholas-cryptocurrency.cv-b342686/scripts/generate-api-docs.js :12 const fs = require("fs");
  • fs nirholas-cryptocurrency.cv-b342686/scripts/generate-endpoint-metadata.js :13 const fs = require("fs");
  • fs nirholas-cryptocurrency.cv-b342686/scripts/generate-route-manifest.js :11 const fs = require('fs');
  • fs nirholas-cryptocurrency.cv-b342686/scripts/i18n/translate.ts :15 import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
  • fs nirholas-cryptocurrency.cv-b342686/scripts/validate-endpoint-docs.js :12 const fs = require("fs");
  • fs nirholas-cryptocurrency.cv-b342686/src/app/[locale]/blog/page.tsx :23 import fs from "node:fs";
  • fs nirholas-cryptocurrency.cv-b342686/src/app/api/health/route.ts :21 import { readFileSync } from 'fs';
  • fs nirholas-cryptocurrency.cv-b342686/src/app/api/llms-full.txt/route.ts :24 import { readFile, readdir, stat } from 'fs/promises';
  • fs nirholas-cryptocurrency.cv-b342686/src/app/api/llms.txt/route.ts :19 import { readFile } from 'fs/promises';
  • fs nirholas-cryptocurrency.cv-b342686/src/app/api/onchain/correlate/route.ts :22 import fs from 'fs';
  • fs nirholas-cryptocurrency.cv-b342686/src/app/api/predictions/history/route.ts :20 import { promises as fs } from 'fs';

network 137

  • net nirholas-cryptocurrency.cv-b342686/cli/index.js :143 const res = await fetch(url.toString(), {
  • net nirholas-cryptocurrency.cv-b342686/copilot-extension/src/extension.ts :173 const response = await fetch(url, { signal: controller.signal });
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/app/actions/plausible.ts :30 const response = await fetch(`${PLAUSIBLE_URL}/api/v2/query`, {
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/app/api/coins/lookup/route.ts :18 ? fetch(`https://frontend-api-v3.pump.fun/coins/${address}`)
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/app/payment/success/page.tsx :52 const response = await fetch(`/api/payment/verify?session_id=${sessionId}`)
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/components/coin/trollbox.tsx :78 const res = await fetch(`/api/trollbox/${projectId}`)
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/components/home/trending-tokens.tsx :204 const res = await fetch("/api/coins/trending")
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/components/pricing/checkout-button.tsx :22 const res = await fetch("/api/payment/checkout", {
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/components/pricing/sponsor-checkout-button.tsx :27 const res = await fetch("/api/payment/checkout", {
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/components/project/submit-form.tsx :119 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/cmc.ts :25 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/coingecko.ts :41 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/cryptopanic.ts :18 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/detail.ts :107 const res = await fetch(`https://frontend-api-v3.pump.fun/coins/${mintAddress}`, {
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/dexscreener.ts :7 const res = await fetch(`${DEXSCREENER_API}/tokens/${contractAddress}`, {
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/helius.ts :8 const res = await fetch(`https://mainnet.helius-rpc.com/?api-key=${apiKey}`, {
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/pumpfun.ts :7 const res = await fetch(`${PUMPFUN_API}/coins/${mint}`, {
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/trending-birdeye.ts :46 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/trending-coingecko.ts :37 const res = await fetch(`${COINGECKO_API}/search/trending`, {
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/trending-dexscreener.ts :24 const res = await fetch("https://api.dexscreener.com/token-boosts/top/v1", {
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/trending-pumpfun.ts :15 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/discord-notification.ts :116 const response = await fetch(webhookUrl, {
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/hooks/use-search.ts :67 const response = await fetch(`/api/search?q=${encodeURIComponent(query)}`)
  • net nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/x-notification.ts :71 const res = await fetch(TWEET_URL, {
  • net nirholas-cryptocurrency.cv-b342686/public/sw.js :250 const networkResponse = await fetch(request);
  • net nirholas-cryptocurrency.cv-b342686/scripts/i18n/translate.ts :145 const res = await fetch(GEMINI_URL, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/bitcoin/page.tsx :69 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/coin/[id]/opengraph-image.tsx :32 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/coin/[id]/page.tsx :66 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/derivatives/page.tsx :27 const res = await fetch(`${BASE}${path}`, { next: { revalidate: 120 } });
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/developers/DevelopersContent.tsx :46 code: `const response = await fetch("https://cryptocurrency.cv/api/news?limit=10");
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/digest/page.tsx :104 const res = await fetch(`${SITE_URL}/api/digest?limit=1`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/ethereum/page.tsx :74 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/explore/page.tsx :52 const res = await fetch(`${BASE}/api/tags`, { next: { revalidate: 300 } });
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/fear-greed/page.tsx :66 const res = await fetch(`${baseUrl}/api/fear-greed?days=30`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/gas/page.tsx :181 const res = await fetch(`${BASE}/api/gas`, { next: { revalidate: 30 } });
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/heatmap/page.tsx :40 const res = await fetch(`${baseUrl}/api/market/coins?type=top&limit=100`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/l2/page.tsx :74 const res = await fetch(`${BASE}${path}`, { next: { revalidate: 300 } });
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/markets/page.tsx :47 const res = await fetch(`${BASE}${path}`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/nft/page.tsx :165 gamingDataChain.fetch({}),
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/notifications/page.tsx :353 fetch('/api/notifications/preferences', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/podcast/PodcastClient.tsx :200 const res = await fetch("/api/podcast");
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/press-releases/page.tsx :26 const res = await fetch('/api/press-release');
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/screener/page.tsx :40 const res = await fetch(`${baseUrl}/api/market/coins?type=top&limit=250`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/search/SearchContent.tsx :172 fetch("/api/sources")
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/sentiment/page.tsx :72 const res = await fetch(`${BASE}${path}`, { next: { revalidate: 300 } });
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/solana/page.tsx :71 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/stablecoins/page.tsx :54 const res = await fetch(`${BASE}${path}`, { next: { revalidate: 300 } });
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/status/page.tsx :114 const res = await fetch(`${SITE_URL}/api/health`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/submit-press-release/page.tsx :71 const res = await fetch('/api/press-release', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/team/page.tsx :43 const res = await fetch('https://api.github.com/repos/nirholas/free-crypto-news/contributors', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/trading/TradingPageClient.tsx :108 const res = await fetch("/api/signals?limit=20");
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/videos/VideosClient.tsx :53 const res = await fetch(`/api/videos?${params}`);
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/watchlist/WatchlistContent.tsx :590 const res = await fetch("/api/market/coins?type=top&limit=250");
  • net nirholas-cryptocurrency.cv-b342686/src/app/[locale]/whales/page.tsx :121 const res = await fetch(`${BASE}/api/on-chain`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/ai-anchor/route.ts :195 const newsRes = await fetch(`${API_BASE}/api/news?limit=5`);
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/ai/blog-generator/route.ts :84 const check = await fetch(apiUrl, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/ai/cross-lingual/route.ts :36 const response = await fetch('https://cryptocurrency.cv/api/news/international?limit=100&translate=true');
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/ai/oracle/route.ts :131 const response = await fetch(url, { next: { revalidate: 60 } });
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/ai/social/route.ts :61 const res = await fetch(url, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/ai/summarize/route.ts :39 const response = await fetch(url, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/alexa/route.ts :134 const res = await fetch(`${API_BASE}${endpoint}`);
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/analytics/forensics/route.ts :39 const response = await fetch(`${baseUrl}/api/news?limit=100`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/arbitrage/route.ts :206 await fetch(webhook_url, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/archive/ipfs/route.ts :63 const res = await fetch('https://api.nft.storage/upload', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/archive/status/route.ts :84 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/archive/webhook/route.ts :295 const getResponse = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/article/route.ts :110 const response = await fetch(url, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/batch/route.ts :156 const res = await fetch(url.toString(), {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/charts/route.ts :72 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/compare/route.ts :41 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/contributors/route.ts :14 const res = await fetch(GITHUB_API, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/cron/warm/route.ts :73 const res = await fetch(`${BASE}${route}`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/derivatives/aggregated/funding/route.ts :29 const result = await fundingRateChain.fetch(params);
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/derivatives/aggregated/open-interest/route.ts :28 const result = await derivativesChain.fetch(params);
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/derivatives/opportunities/route.ts :28 const result = await fundingRateChain.fetch({});
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/exchange-rates/convert/route.ts :47 const res = await fetch(`${COINGECKO_BASE}/exchange_rates`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/exchange-rates/route.ts :24 const res = await fetch(`${COINGECKO_BASE}/exchange_rates`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/extract/route.ts :37 * Validate a URL is safe to fetch (prevents SSRF attacks)
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/fear-greed/route.ts :119 fetch('https://api.alternative.me/fng/', { next: { revalidate: 300 } }),
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/flows/route.ts :68 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/frames/route.ts :109 const response = await fetch(`${API_BASE}/news?limit=${limit}`);
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/funding-rates/route.ts :56 const response = await fetch(`${BINANCE_FUTURES_BASE}/fapi/v1/premiumIndex`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/gaming/chains/route.ts :25 const result = await gamingDataChain.fetch({ extra: { breakdown: 'chains' } });
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/gaming/route.ts :25 const result = await gamingDataChain.fetch({});
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/gaming/top/route.ts :31 const result = await gamingDataChain.fetch({
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/gas/estimate/route.ts :74 const response = await fetch(etherscanUrl, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/gas/history/route.ts :70 const response = await fetch(etherscanUrl, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/gas/route.ts :60 const response = await fetch(etherscanUrl, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/geckoterminal/route.ts :68 const response = await fetch(url, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/health/route.ts :113 const response = await fetch(`${COINGECKO_BASE}/ping`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/hyperliquid/route.ts :38 const response = await fetch('https://api.hyperliquid.xyz/info', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/liquidations/route.ts :35 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/macro/correlations/route.ts :26 const btcRes = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/macro/dxy/route.ts :33 const result = await macroChain.fetch({
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/macro/fed/route.ts :32 const result = await macroChain.fetch({
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/macro/indicators/route.ts :34 const result = await macroChain.fetch({ extra: { period } });
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/macro/risk-appetite/route.ts :25 const result = await macroChain.fetch({});
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/macro/route.ts :27 const result = await macroChain.fetch({});
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/news/extract/route.ts :135 * Validate that a URL is safe to fetch (prevent SSRF attacks).
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/newsletter/subscribe/route.ts :168 const response = await fetch('https://api.buttondown.email/v1/subscribers', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/on-chain/route.ts :91 fetch(`${BLOCKCHAIN_INFO_BASE}/stats`),
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/oracle/chainlink/route.ts :54 fetch(`${API_BASE}/api/sentiment?limit=20`),
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/oracle/prices/route.ts :48 const res = await fetch(url, { next: { revalidate: 60 } });
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/oracle/route.ts :22 * const response = await fetch('/api/oracle', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/portfolio/performance/route.ts :291 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/portfolio/route.ts :105 const response = await fetch(url, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/premium/alerts/whales/route.ts :109 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/premium/portfolio/analytics/route.ts :197 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/push/route.ts :127 await fetch('${baseUrl}/api/push', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/rss-proxy/route.ts :97 const response = await fetch(feedUrl, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/signals/narrative/route.ts :157 const res = await fetch(`${baseUrl}/api/signals?limit=10`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/social/discord/route.ts :169 const response = await fetch(`${DISCORD_API}/guilds/${guildId}/channels`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/stablecoins/[symbol]/route.ts :31 const result = await stablecoinFlowsChain.fetch({ limit: 100 });
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/stablecoins/chains/route.ts :29 const result = await stablecoinFlowsChain.fetch({ limit: 100 });
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/stablecoins/dominance/route.ts :28 const result = await stablecoinFlowsChain.fetch({ limit: 100 });
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/stablecoins/flows/route.ts :29 const result = await stablecoinFlowsChain.fetch({ limit: Math.min(limit, 100) });
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/stablecoins/route.ts :40 // Chain breakdown mode — direct fetch (not covered by provider chain)
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/translate/route.ts :100 const response = await fetch('https://api.groq.com/openai/v1/chat/completions', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/unlocks/route.ts :84 const response = await fetch('https://api.llama.fi/unlocks', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/alerts/route.ts :53 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/assets/route.ts :27 * - id: Specific asset ID to fetch (returns single asset)
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/coin/[coinId]/route.ts :48 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/defi/route.ts :43 const response = await fetch('https://api.llama.fi/protocols', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/derivatives/route.ts :164 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/dex/route.ts :164 const res = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/exchanges/route.ts :43 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/export/route.ts :58 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/fear-greed/route.ts :157 fetch('https://api.alternative.me/fng/', { next: { revalidate: 300 } }),
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/fundamentals/route.ts :74 fetch('https://api.llama.fi/protocols', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/gas/route.ts :173 const response = await fetch('https://api.blocknative.com/gasprices/blockprices', {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/historical/[coinId]/route.ts :52 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/liquidations/route.ts :40 const response = await fetch(
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/market-data/route.ts :41 fetch(`${COINGECKO_BASE}/global`, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/ohlcv/route.ts :120 const res = await fetch(url, {
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/onchain/route.ts :91 fetch('https://api.blockchain.info/stats', { next: { revalidate: 300 } }),
  • net nirholas-cryptocurrency.cv-b342686/src/app/api/v1/orderbook/route.ts :77 const res = await fetch(url, {

secrets 48

  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/app/actions/plausible.ts :11 const PLAUSIBLE_API_KEY = process.env.PLAUSIBLE_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/app/api/auth/stripe/webhook/route.ts :11 if (!process.env.STRIPE_SECRET_KEY || !process.env.STRIPE_WEBHOOK_SECRET) {
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/app/api/coins/lookup/route.ts :29 chain === "solana" && process.env.HELIUS_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/app/api/cron/enrich-coins/route.ts :9 const API_KEY = process.env.CRON_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/app/api/cron/send-ongoing-reminders/route.ts :10 const API_KEY = process.env.CRON_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/app/api/cron/send-winner-notifications/route.ts :10 const API_KEY = process.env.CRON_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/app/api/cron/update-launches/route.ts :9 const API_KEY = process.env.CRON_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/app/api/payment/checkout/route.ts :39 if (!process.env.STRIPE_SECRET_KEY) {
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/app/api/payment/verify/route.ts :10 const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!)
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/components/auth/turnstile-captcha.tsx :12 const siteKey = process.env.NEXT_PUBLIC_TURNSTILE_SITE_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/auth.ts :11 process.env.STRIPE_SECRET_KEY && !process.env.STRIPE_SECRET_KEY.includes("placeholder")
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/cmc.ts :21 const apiKey = process.env.CMC_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/coingecko.ts :38 const apiKey = process.env.COINGECKO_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/cryptopanic.ts :14 const apiKey = process.env.CRYPTOPANIC_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/detail.ts :171 const apiKey = process.env.COINGECKO_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/helius.ts :4 const apiKey = process.env.HELIUS_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/trending-birdeye.ts :35 const apiKey = process.env.BIRDEYE_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/trending-coingecko.ts :34 const apiKey = process.env.COINGECKO_API_KEY
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/email.ts :7 resend = new Resend(process.env.RESEND_API_KEY)
  • secrets nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/x-notification.ts :24 const apiKey = process.env.X_API_KEY!
  • secrets nirholas-cryptocurrency.cv-b342686/scripts/i18n/translate.ts :66 const rawKeys = process.env.GOOGLE_API_KEYS ?? process.env.GOOGLE_API_KEY ?? '';
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/ai/blog-generator/route.ts :74 const token = process.env.GITHUB_TOKEN;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/analytics/events/route.ts :79 const adminToken = process.env.ADMIN_TOKEN;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/archive/ipfs/route.ts :60 const nftStorageKey = process.env.NFT_STORAGE_API_KEY;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/archive/status/route.ts :40 if (!process.env.KV_REST_API_URL || !process.env.KV_REST_API_TOKEN) {
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/archive/webhook/route.ts :98 const cronSecret = process.env.CRON_SECRET;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/cron/archive/route.ts :74 const cronSecret = process.env.CRON_SECRET;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/cron/expire-subscriptions/route.ts :40 const cronSecret = process.env.CRON_SECRET;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/cron/warm/route.ts :49 const cronSecret = process.env.CRON_SECRET;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/flows/route.ts :195 const cryptoquantKey = process.env.CRYPTOQUANT_API_KEY;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/gas/estimate/route.ts :71 const etherscanKey = process.env.ETHERSCAN_API_KEY || '';
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/gas/history/route.ts :67 const etherscanKey = process.env.ETHERSCAN_API_KEY || '';
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/gas/route.ts :57 const etherscanKey = process.env.ETHERSCAN_API_KEY || '';
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/health/route.ts :79 if (process.env.KV_REST_API_URL && process.env.KV_REST_API_TOKEN) {
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/macro/correlations/route.ts :43 const avKey = process.env.ALPHA_VANTAGE_API_KEY;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/monitor/route.ts :56 const expected = process.env.ADMIN_TOKEN || process.env.CRON_SECRET;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/newsletter/subscribe/route.ts :159 const buttondownApiKey = process.env.BUTTONDOWN_API_KEY;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/nostr/route.ts :147 const SERVICE_PUBKEY = process.env.NOSTR_PUBKEY || null;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/on-chain/route.ts :121 const ethKey = process.env.ETHERSCAN_API_KEY;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/oracle/route.ts :242 const kvToken = process.env.KV_REST_API_TOKEN ?? process.env.UPSTASH_REDIS_REST_TOKEN;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/pipelines/route.ts :49 const cronSecret = process.env.CRON_SECRET ?? process.env.ADMIN_TOKEN;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/premium/alerts/whales/route.ts :89 const apiKey = process.env.WHALE_ALERT_API_KEY;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/push/route.ts :79 const VAPID_PUBLIC_KEY = process.env.VAPID_PUBLIC_KEY;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/social/discord/route.ts :84 const botToken = process.env.DISCORD_BOT_TOKEN;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/social/route.ts :190 enabled: !!process.env.DISCORD_BOT_TOKEN,
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/translate/route.ts :35 const groqApiKey = process.env.GROQ_API_KEY;
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/v1/ohlcv/route.ts :167 const apiKey = process.env.CRYPTOCOMPARE_API_KEY || '';
  • secrets nirholas-cryptocurrency.cv-b342686/src/app/api/v1/onchain/route.ts :124 const etherscanKey = process.env.ETHERSCAN_API_KEY || '';

database 2

  • db nirholas-cryptocurrency.cv-b342686/memescope-monday/lib/rate-limit.ts :1 import Redis from "ioredis"
  • db nirholas-cryptocurrency.cv-b342686/memescope-monday/scripts/set-admin.mjs :1 import pg from "pg";

install hooks 1

  • postinstall (suspicious) nirholas-cryptocurrency.cv-b342686/package.json :93 node -e "const fs=require('fs');const c=JSON.stringify({compilerOptions:{strict:true,esModuleInterop:true,skipLibCheck:true,moduleResolution:'bundler',module:'esnext',target:'es2021',lib:['es2021','do

declared dependencies 114

  • @google/generative-ai@^0.24.1
  • @heroicons/react@^2.2.0
  • @neondatabase/serverless@^1.0.2
  • @next/third-parties@^16.1.6
  • @noble/curves@^2.0.1
  • @opentelemetry/api@^1.9.0
  • @opentelemetry/exporter-metrics-otlp-http@^0.214.0
  • @opentelemetry/exporter-trace-otlp-http@^0.214.0
  • @opentelemetry/resources@^2.5.1
  • @opentelemetry/sdk-metrics@^2.5.1
  • @opentelemetry/sdk-node@^0.214.0
  • @opentelemetry/semantic-conventions@^1.40.0
  • @radix-ui/react-dialog@^1.1.15
  • @radix-ui/react-dropdown-menu@^2.1.16
  • @radix-ui/react-navigation-menu@^1.2.14
  • @radix-ui/react-separator@^1.1.8
  • @radix-ui/react-slot@^1.2.4
  • @radix-ui/react-tabs@^1.1.13
  • @radix-ui/react-tooltip@^1.2.8
  • @tailwindcss/typography@^0.5.19
  • @types/three@^0.183.1
  • @upstash/ratelimit@^2.0.8
  • @upstash/redis@^1.36.3
  • @vercel/analytics@^2.0.1
  • @vercel/kv@^3.0.0
  • @vercel/og@^0.11.1
  • @vercel/speed-insights@^2.0.0
  • @x402/core@^2.5.0
  • @x402/evm@^2.5.0
  • @x402/next@^2.5.0
  • class-variance-authority@^0.7.1
  • clsx@^2.1.1
  • critters@^0.0.25
  • dompurify@^3.3.3
  • drizzle-orm@^0.45.1
  • framer-motion@^12.34.3
  • gray-matter@^4.0.3
  • inngest@^3.52.4
  • ioredis@^5.10.0
  • isomorphic-dompurify@^3.7.1
  • jose@^6.1.3
  • lightweight-charts@^5.1.0
  • lucide-react@^1.7.0
  • next@^16.1.7
  • next-intl@^4.8.3
  • next-mdx-remote@^6.0.0
  • pino@^10.3.1
  • pino-pretty@^13.1.3
  • react@^19.2.4
  • react-dom@^19.2.4
  • reading-time@^1.5.0
  • recharts@^3.7.0
  • redis@^5.11.0
  • rehype-highlight@^7.0.2
  • rehype-slug@^6.0.0
  • remark-gfm@^4.0.1
  • resend@^6.9.3
  • sanitize-html@^2.17.1
  • swagger-ui-react@^5.32.0
  • swr@^2.4.1
  • tailwind-merge@^3.5.0
  • three@^0.183.2
  • viem@^2.46.3
  • web-vitals@^5.1.0
  • ws@^8.19.0
  • zod@^4.3.6
  • zod-to-json-schema@^3.25.1
  • @axe-core/cli@^4.11.1
  • @axe-core/playwright@^4.11.1
  • @eslint/eslintrc@^3.3.4
  • @next/bundle-analyzer@^16.1.6
  • @playwright/test@^1.58.2
  • @secretlint/secretlint-rule-preset-recommend@^11.3.1
  • @storybook/addon-a11y@^10.2.13
  • @storybook/addon-essentials@^8.6.18
  • @storybook/addon-interactions@^8.6.18
  • @storybook/addon-links@^10.2.13
  • @storybook/nextjs@^10.2.13
  • @storybook/react@^10.2.13
  • @tailwindcss/postcss@^4.2.1
  • @testing-library/dom@^10.4.1
  • @testing-library/jest-dom@^6.9.1
  • @testing-library/react@^16.3.2
  • @testing-library/user-event@^14.6.1
  • @types/dompurify@^3.2.0
  • @types/ioredis-mock@^8.2.6
  • @types/node@^25.3.3
  • @types/react@^19.2.14
  • @types/react-dom@^19.2.3
  • @types/sanitize-html@^2.16.0
  • @types/ws@^8.18.1
  • @typescript-eslint/eslint-plugin@^8.56.1
  • @typescript-eslint/parser@^8.56.1
  • @typescript-eslint/scope-manager@^8.56.1
  • @vitejs/plugin-react@^5.1.4
  • @vitest/coverage-v8@^4.0.18
  • @vitest/ui@^4.0.18
  • drizzle-kit@^0.31.9
  • eslint@^10.0.2
  • eslint-plugin-jsx-a11y@^6.10.2
  • ioredis-mock@^8.13.1
  • jsdom@^29.0.1
  • lighthouse@^13.0.3
  • pa11y@^9.1.1
  • postcss@^8.5.6
  • prettier-plugin-tailwindcss@^0.7.2
  • secretlint@^11.3.1
  • sharp@^0.34.5
  • storybook@^10.2.13
  • stylelint@^17.4.0
  • stylelint-config-standard@^40.0.0
  • tailwindcss@^4.2.1
  • typescript@^5.9.3
  • vitest@^4.0.18