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.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
no tools enumerated yet for this server.
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
- agent-rulesnirholas-cryptocurrency.cv-b342686/AGENTS.md
- agent-rulesnirholas-cryptocurrency.cv-b342686/CLAUDE.md
- agent-rulesnirholas-cryptocurrency.cv-b342686/docs/AGENTS.md
- agent-rulesnirholas-cryptocurrency.cv-b342686/docs/examples/agents.md
- agent-rulesnirholas-cryptocurrency.cv-b342686/examples/ai-platforms/claude.md
danger signals10
- suspicious endpointt.menirholas-cryptocurrency.cv-b342686/memescope-monday/app/pricing/page.tsx:168
<Link href="https://t.me/nichxbt" target="_blank" rel="noopener noreferrer"> - suspicious endpointt.menirholas-cryptocurrency.cv-b342686/memescope-monday/components/coin/coin-links.tsx:136
url: `https://t.me/${coingeckoExtra.telegramChannel}`, - suspicious endpointt.menirholas-cryptocurrency.cv-b342686/memescope-monday/components/project/submit-form.tsx:985
placeholder="https://t.me/yourchannel" - suspicious endpointt.menirholas-cryptocurrency.cv-b342686/memescope-monday/lib/coin-data/enrichment.ts:100
result.telegramUrl = `https://t.me/${cg.links.telegram_channel_identifier}` - suspicious endpointt.menirholas-cryptocurrency.cv-b342686/src/app/[locale]/coin/[id]/page.tsx:335
href={`https://t.me/${coin.links.telegram_channel_identifier}`} - suspicious endpointt.menirholas-cryptocurrency.cv-b342686/src/app/[locale]/podcast/PodcastClient.tsx:276
: `https://t.me/share/url?url=${encodedUrl}&text=${text}`; - suspicious endpointt.menirholas-cryptocurrency.cv-b342686/src/app/api/v1/coin/[coinId]/route.ts:83
? `https://t.me/${data.links.telegram_channel_identifier}` - suspicious endpointt.menirholas-cryptocurrency.cv-b342686/src/components/Footer.tsx:119
href: 'https://t.me/freecryptonews', - suspicious endpointt.menirholas-cryptocurrency.cv-b342686/src/components/ShareBar.tsx:149
href: `https://t.me/share/url?url=${encodedUrl}&text=${encodedTitle}`, - suspicious endpointapi.telegram.orgnirholas-cryptocurrency.cv-b342686/src/lib/social-intelligence.ts:38
TELEGRAM_API: 'https://api.telegram.org',
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