CryptoTon is a modern, real-time cryptocurrency dashboard built with React and Tailwind CSS. It provides live price tracking, portfolio management, and market insights using the CoinGecko API.
β’ π Live Data Tracking: Real-time price updates every 15 seconds with a visual countdown timer.
β’ Multi-Category Views:
β’ π Top: Market cap leaders.
β’ π₯ Trending: Coins trending on CoinGecko.
β’ ποΈ Most Visited: High traffic assets.
β’ π New: Recently listed cryptocurrencies.
β’ β‘ Gainers & Losers: Top movers in the last 24 hours.
β’ π Real-World Assets (RWA): Tracking tokens backed by real-world assets.
β’ Portfolio Manager: * Input your holdings for any coin.
β’ Automatically calculates your total value based on live prices.
β’ Data persists locally in your browser (LocalStorage).
β’ Smart Sorting: Sort by Price, 1h %, 24h %, Market Cap, or your Personal Holdings Value.
β’ Price Alerts: Set custom "Above" or "Below" price alerts and get visual notifications when thresholds are hit.
β’ Robust Fallback: Includes a "Demo Mode" that automatically generates realistic mock data if the API rate limit is reached.
β’ Framework: React (Vite)
β’ Styling: Tailwind CSS
β’ Icons: Lucide React
β’ Data Source: CoinGecko API
Follow these steps to run the project locally.
Prerequisites
Make sure you have Node.js installed on your machine.
Installation
- Clone the repository
git clone https://github.com/abhranilsingharoy-cloud/CryptoTon cd cryptoton
- Install dependencies
npm install
- Run the development server
npm run dev
- Open your browser Navigate to http://localhost:5173 to view the app.
cryptoton/ βββ src/ β βββ App.jsx # Main application logic β βββ index.css # Global styles & Tailwind imports β βββ main.jsx # Entry point βββ public/ βββ index.html βββ tailwind.config.js # Tailwind configuration βββ package.json
This project uses the free tier of the CoinGecko API, which has a rate limit of approximately 10-30 calls per minute.
CryptoTon handles this automatically:
β’ If the API limit is hit, the app switches to Demo Mode (indicated by an orange WiFi icon).
β’ It generates realistic mock data so the UI remains functional for testing features like sorting and pagination.
β’ It will attempt to reconnect to the live API automatically.
Contributions are welcome! Please feel free to submit a Pull Request.
-
Fork the Project
-
Create your Feature Branch (git checkout -b feature/AmazingFeature)
-
Commit your Changes (git commit -m 'Add some AmazingFeature')
-
Push to the Branch (git push origin feature/AmazingFeature)
-
Open a Pull Request
Built by Abhranil Singha Roy.