SolIndexer is a robust blockchain indexing platform that enables developers to seamlessly integrate and index Solana blockchain data into PostgreSQL databases. By leveraging Helius webhooks, CrypTracker eliminates the complexity of managing RPC nodes, Geyser plugins, validators, or custom webhook infrastructure.
- Simplified Blockchain Indexing: Connect directly to your PostgreSQL database and start indexing blockchain data with minimal setup
- Customizable Data Tracking: Select specific data categories to track based on your application needs
- Real-time Updates: Leverages Helius webhooks for real-time blockchain data synchronization
- User-friendly Interface: Intuitive dashboard for managing database connections and indexing configurations
- Scalable Architecture: Designed to handle multiple users and high data throughput
CrypTracker supports indexing various blockchain data categories, including:
- NFT market data (bids, listings, floor prices)
- Token pricing from multiple DEXs
- DeFi lending pool availability
- Transaction histories for specific wallets/programs
- Custom event tracking for specific programs
CRYPTRACKER/
├── backend/ # Main backend server
├── cryptracker-web/ # Frontend web application
├── indexing-backend/ # Blockchain indexing service
├── prisma-shared/ # Shared Prisma schema and DB utilities
├── .env # Environment variables
├── .env.example # Example environment configuration
├── .gitignore # Git ignore file
├── docker-compose.yml # Docker configuration
├── README.md # Project documentation
- Backend: Node.js, Express
- Frontend: React, TypeScript
- Database: PostgreSQL, Prisma ORM
- Blockchain Integration: Helius API, Solana Web3.js
- Authentication: JWT, OAuth2
- Deployment: Docker, Kubernetes support
- Node.js (v16+)
- PostgreSQL (v14+)
- Helius API key (get one at https://helius.dev)
- Solana wallet (for submitting test transactions)
-
Clone the repository:
git clone https://github.com/ketan27j/cryptracker.git cd cryptracker
-
Set up environment variables:
cp .env.example .env # Edit .env with your configurations
-
Install dependencies:
# Install root dependencies npm install # Install dependencies for each package cd backend && npm install cd ../cryptracker-web && npm install cd ../indexing-backend && npm install
-
Set up the database:
npx prisma migrate dev
-
Start the development servers:
# In separate terminals cd backend && npm run dev cd indexing-backend && npm run dev cd cryptracker-web && npm run dev
Alternatively, you can use Docker to run the entire stack:
docker-compose up
Key environment variables to configure:
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/cryptracker
# Helius API
HELIUS_API_KEY=your_helius_api_key
HELIUS_WEBHOOK_SECRET=your_webhook_secret
# Authentication
JWT_SECRET=your_jwt_secret
SESSION_SECRET=your_session_secret
# Solana
SOLANA_NETWORK=devnet # or mainnet-beta
- Create an account on the CrypTracker platform
- Navigate to the "Database Configuration" section
- Enter your PostgreSQL database credentials
- Test and save the connection
- Go to the "Indexing Configuration" dashboard
- Select data categories you want to track:
- NFT market data
- Token pricing
- Lending pool availability
- Custom program events
- Configure specific parameters for each category
- Click "Start Indexing" to begin the process
- View real-time indexing status on the dashboard
- Check synchronization logs for any issues
- Modify indexing parameters as needed
CrypTracker consists of three main components:
- Backend API Server: Handles user authentication, database credential management, and configuration storage
- Indexing Backend: Processes blockchain data from Helius webhooks and populates the user's database
- Web Interface: Provides an intuitive UI for managing the platform
To add support for new data categories:
- Define the schema in
prisma-shared/schema.prisma
- Create a new indexer module in
indexing-backend/src/indexers/
- Implement the corresponding API endpoints in
backend/src/controllers/
- Add UI components in the web interface
Run tests with:
# Run all tests
npm test
# Run specific tests
npm test -- --grep "Database Integration"
To validate functionality against Solana devnet:
- Configure your environment to use devnet
- Run the provided test scripts:
npm run test:devnet
For production deployment, we recommend:
- Using Docker containers with orchestration (Kubernetes/Docker Swarm)
- Setting up proper monitoring and alerting
- Implementing database backups
- Using a reverse proxy for SSL termination
Example deployment command:
# Build production images
docker-compose -f docker-compose.production.yml build
# Deploy
docker-compose -f docker-compose.production.yml up -d
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.