The CIP-60 Music Token Indexer is a specialized blockchain indexing tool designed to track and catalog music-related NFTs on the Cardano blockchain that comply with the CIP-60 NFT Metadata Standard. This tool provides real-time monitoring and indexing of music tokens, enabling efficient querying and analysis of on-chain music assets.
- Real-time indexing of CIP-60 compliant music tokens
- Support for all three versions of the music metadata standard
- Automatic state management and recovery
- Live dashboard for monitoring indexing progress
- RESTful API for querying indexed assets
- PostgreSQL persistence layer
The indexer consists of three main components:
- Core Indexer: Connects to Cardano network via Ogmios RPC calls (we recommend using the cardano-node-ogmios build!), processes blocks, and extracts music token metadata
- API Server: Provides basic REST endpoints for querying indexed data
- Dashboard: Web interface for monitoring indexing progress and system status
- Git (2.30.0 or higher)
- Node.js (v22.5.1 or higher)
- PostgreSQL (14.0 or higher)
- Ogmios (v6.1.1 or higher)
-
Clone the repository:
git clone https://github.com/arpradio/cip60Indexer.git cd cip60Indexer
-
Install dependencies:
npm install
-
Set up the database:
psql -U postgres -f cip60.sql
-
Configure environment variables:
cp .env.example .env
Edit
.env
with your configuration:OGMIOS_URL=ws://<ogmios-host>:<port> DB_HOST=localhost DB_PORT=5432 DB_USER=postgres DB_PASSWORD=<your-password> DB_NAME=cip60
-
Start the indexer:
npm run dev
Returns current indexing statistics and network state.
Returns the 10 most recently indexed assets.
Keyword search the metadata
npm test
npm run build
-
Connection to Ogmios fails
- Verify Ogmios is running and accessible
- Check firewall settings
- Ensure correct WebSocket URL in .env
-
Database Connection Issues
- Verify PostgreSQL is running
- Check credentials in .env
- Ensure database exists and schema is initialized
-
Indexer Crashes During Sync
- Check available disk space
- Verify RAM usage
- Review logs for specific errors
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add 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.
- The Psyence Lab for development of the CIP standard and tooling
- Ogmios team for the fantastic chain sync implementation
- All contributors to this project
- Discord: Join THE BLOCKCHAIN MUSIC COLLECTIVE
- Twitter: @psyencelab
- Website: psyencelab.media