A comprehensive example application demonstrating how to index, verify, and visualize Reeve on-chain financial data from the Cardano blockchain. This project showcases blockchain data integration with modern web technologies.
Additionally, it servers as the reference implemenation how to verify vLEI credentials using KERI identifiers based on the proposal of CIP-170.
Reeve is a transparency and accountability platform developed by the Cardano Foundation that publishes financial data of organizations directly onto the Cardano blockchain. This repository provides a complete solution for:
- Indexing Reeve transactions from Cardano mainnet
- Parsing and storing financial reports and organizational data
- Exposing REST APIs for data access
- Visualizing data through a modern React frontend
- Verifying KERI identifiers for vLEI credentials
This repository also provides the known oobis for resolving credential chains on the Cardano Mainnet. These oobis need to be added to the runtime environment to ensure proper resolution and verification of vLEI credentials.
The detailed explanation of the oobis can be found here and they are also added ready to use in the .env.example file.
- Reeve Platform - Official Reeve website
- Reeve Backend Repository - Official Cardano Foundation Reeve implementation
- Yaci Store - Modular Cardano indexer used in this project
- Example Reeve Transaction - Live transaction on Cardano Explorer
- Java 21 or higher
- Node.js v20.10.0+ and npm
- Docker & Docker Compose (recommended)
- Git
-
Clone the repository:
git clone <repository-url> cd reeve-indexing-example
-
Start the application: Prepare the environment variables:
cp .env.example .env
And adjust the values in
.envas needed.On Mainnet:
docker compose up
On Yaci Devkit:
docker compose -f docker-compose-devkit.yml up -d
With Reeve together:
docker compose -f docker-compose-reeve.yml up -d
-
Access the applications:
- Backend API: http://localhost:9000
- OpenAPI Documentation: http://localhost:9000/swagger-ui.html
- Database: localhost:5432 (postgres/postgres)
- Frontend: http://localhost:3003
-
Start PostgreSQL database:
docker run --name postgres-reeve -e POSTGRES_DB=reeve-verifier -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:15-alpine
-
Run the backend:
./gradlew clean bootRun
-
Run the frontend:
cd frontend npm install npm run dev
Key configuration options in application.yml:
reeve:
label: 1447 # Reeve metadata label
store:
cardano:
host: backbone.mainnet.cardanofoundation.org
port: 3001
sync-start-slot: 159983856 # Starting sync pointBuilt with ❤️ for the Cardano ecosystem