Skip to content

bloxbean/yaci-store

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Cardano blockchain indexer and datastore built with Yaci

Clean, Build

Overview

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.

Key Features

  • 🚀 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

Latest Releases

  • 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

Core Stores

  • 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

Aggregation Modules

  • Account: Address balance tracking
  • Ledger State: Full ledger state calculations
  • Governance State: Governance state calculations

Quick Start

Pre-requisites: Java 21

Option 1: Download Release

  1. Download the latest binary from release page
  2. Check store.yaci.xyz for how to run in Docker or non-Docker environments

Option 2: Build from Source

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

Configuration

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

Used By

Yaci Store powers various production applications in the Cardano ecosystem:

Is your project using Yaci Store? We'd love to feature it here! Please open a PR or create an issue.

Documentation

Community & Support

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

YourKit

YourKit has generously granted the BloxBean projects an Open Source licence to use their excellent Java Profiler.

YourKit

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.

About

A Cardano datastore implementation using Yaci

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 9

Languages