Levitsky Concept
Initializing systems000%
Левицкий Концепт
All projects
Delivered kot.cash

KOT.CASH

Cryptocurrency exchange with smart routing

Instant exchange of 250+ cryptocurrencies with custom Multi-Hop and Split Swap routing, a full-featured account area, an admin panel and a 292-page SEO infrastructure.

Next.js 15React 19TypeScriptMongoDBMongooseTailwind CSSPM2Nginx
KOT.CASH

Technical architecture

  • 233 TypeScript/TSX files, 60+ API routes, 17 MongoDB models
  • 7 continuously running PM2 workers (Next.js server + 6 background processes)
  • Nginx as a reverse proxy with SSL/TLS (Let’s Encrypt), rate limiting and server-version hiding
  • A monolithic Next.js architecture with server/client separation following React 19 Server Components

Exchange Engine — three exchange modes

Integration with the Easybit API (liquidity provider).

  • Simple Swap — float (1%) and fixed (1.5%) rates, 250+ coins, instant quote, QR payment, tracking via Blockchair, guest exchange without registration.
  • Multi-Hop (custom implementation) — an automatic 2-step exchange through bridge wallets; a PM2 worker runs the hop1 → hop2 chain in the background, unlocking pairs that have no direct market.
  • Split Swap (custom implementation) — exchanging a single amount into 2–4 coins with configurable shares, a 3–5% fee, and a dedicated execution and monitoring worker.

Account area

  • Registration / login / password recovery via email tokens
  • TOTP 2FA (Google Authenticator, otplib + qrcode)
  • History of all exchanges (regular + multihop + split) in a single interface
  • Email change with confirmation, avatar upload, referral-code linking

Admin panel

A fully featured back office at a hidden URL.

  • Dashboard with statistics (all time / 30d / 7d / 24h), revenue and charts
  • Transactions with filters, detail pages and CSV export
  • Users, referral links with statistics, tickets and a live online chat
  • IP Blacklist and TOTP-protected admin login

SEO infrastructure

  • 292 static pages (EN + RU mirror): blog, 31 pair pages, 53 country pages
  • hreflang, JSON-LD Schema.org, canonical, sitemap, robots.txt
  • IndexNow — instant URL submission to Bing/Yandex/DuckDuckGo on publish
  • URL-based i18n (EN on /, RU on /ru/), Google Analytics GA4

Security

  • Content Security Policy and rate limiting at the nginx level (separate zones)
  • JWT in an httpOnly cookie, bcrypt, TOTP 2FA for admin and users
  • Blocking of common attacks (.php, .env, .git, wp-admin), one-year HSTS
  • Validation via Zod and a custom sanitize, a worker secret for internal APIs

Integrations

ServicePurpose
Easybit APILiquidity, quotes, orders, status
Blockchair / Mempool.spaceBlockchain transaction confirmations
CoinGecko APITickers / orderbook for aggregators
Telegram Bot APINotifications, promo posts, /rate bot
Brevo (Sendinblue)Email notifications via relay
geoip-liteUser geolocation

Telegram automation

  • Promo bot (@kotcashnews) — a daily post at 10:00 MSK with rates, a cat-themed tone of voice, rotating copy, ref links
  • Chat bot (@kotcashchat) — interactive /rate BTC from the site widget in real time, long-polling

Design and UX

  • Dark/light theme, 3D CSS animations, a live Rate Ticker and Rate Sparkline
  • Styled QR codes, country flags, skeleton loading, mobile-first
  • A demo worker generates a realistic stream of “completed exchanges” to showcase activity

Infrastructure

  • Ubuntu Server, Nginx (SSL, rate limiting, static files)
  • PM2 cluster: kot-cash + multihop / split-swap / promo / chat / news / demo workers
  • MongoDB (local, ~21K rate_snapshots), email via Dovecot + Roundcube through a relay

The client hasn't left a review yet.