Yaci Store is a modular, high-performance Cardano blockchain indexer and datastore that provides a flexible foundation for building blockchain applications. Built on top of the Yaci library, it offers both out-of-the-box functionality and extensive customization options through its plugin framework.
- 🚀 High Performance: Parallel processing with virtual thread support for optimal throughput
- 📦 Modular Architecture: Enable only the stores you need, reducing resource usage
- 🔌 Plugin Framework: Extend and customize functionality without forking
- 🗄️ Multi-Database Support: PostgreSQL, MySQL, and H2 out of the box
- 🌐 Multi-Network: Support for mainnet, preprod, preview, sanchonet, and custom networks
- 📊 REST APIs: Essential Blockfrost-compatible APIs for transaction building and submission, plus custom endpoints
- 🔧 Flexible Deployment: Run as standalone application, embed as library, or deploy with Docker
- ✂️ Data Pruning: Configurable pruning strategies for sustainable storage
- 🎯 Production Ready: Battle-tested in multiple production environments
- Stable Release: v0.1.4 - Production-ready release
- Beta Release: v2.0.0-beta3 - Next generation release with enhanced features
- All core modules and stores are production-ready
- Note: Ledger State module is still in beta
- Assets: Native tokens, NFTs, and fungible tokens
- Blocks: Block data
- Transactions: Transaction details
- UTxO: Unspent transaction outputs
- Staking: Pools, delegations, registrations
- Governance: Proposals, votes, and DRep data
- Scripts: Plutus scripts and native scripts
- Metadata: Transaction metadata
- Epoch: Epoch boundaries and parameters
- Account: Address balance tracking
- Ledger State: Full ledger state calculations
- Governance State: Governance state calculations
Pre-requisites: Java 21
- Download the latest binary from release page
- Check store.yaci.xyz for how to run in Docker or non-Docker environments
git clone https://github.com/bloxbean/yaci-store
cd yaci-store
./gradlew clean build
java -jar applications/all/build/libs/yaci-store-all-<version>.jar
Basic configuration example (application.properties):
# Network
store.cardano.host=preprod-node.play.dev.cardano.org
store.cardano.port=3001
store.cardano.protocol-magic=1
# Database
spring.datasource.url=jdbc:postgresql://localhost:5432/yaci_store
spring.datasource.username=postgres
spring.datasource.password=password
# Enable/Disable stores
store.utxo.enabled=true
store.assets.enabled=true
store.governance.enabled=false
Yaci Store powers various production applications in the Cardano ecosystem:
- Cardano Rosetta Java - Cardano Foundation's Rosetta API implementation
- FluidTokens Aquarium Node
- CF Cardano Ballot - Cardano Foundation's voting platform
- CF Reeve Platform - Cardano Foundation's Ledger on the Blockchain Project
- CF AdaHandle Resolver - AdaHandle resolution service
- AdaMatic - Cardano automation platform
- SundaeSwap Scooper Analytics - DEX analytics platform
Is your project using Yaci Store? We'd love to feature it here! Please open a PR or create an issue.
- 📚 Full Documentation
- 🏗️ Architecture & Design
- 🚀 Getting Started Guide
- 🔧 Configuration Guide
- 🔌 Plugin Development
- 💬 Discord Server - Join our community
- 💡 Discussions - Share ideas and ask questions
- 🐛 Issues - Report bugs or request features
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
YourKit has generously granted the BloxBean projects an Open Source licence to use their excellent Java Profiler.
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.