Hierarchical Authenticated Data Structure Database
A high-performance, cryptographically verifiable database that organizes data as a "grove" — a forest of Merkle AVL trees (Merk). Enables efficient queries on any indexed field while maintaining cryptographic proofs throughout the hierarchy.
Read the GroveDB Book — comprehensive documentation covering architecture, element types, proofs, queries, and more. Available in 16 languages.
| Branch | Tests | Coverage |
|---|---|---|
| develop |
Per-Crate Coverage
| Crate | Coverage |
|---|---|
| grovedb | |
| merk | |
| storage | |
| commitment-tree | |
| mmr | |
| bulk-append-tree | |
| element |
[dependencies]
grovedb = "3.0"
use grovedb::{GroveDb, Element};
use grovedb_version::version::GroveVersion;
let db = GroveDb::open("./my_db")?;
let v = GroveVersion::latest();
// Create trees
db.insert(&[], b"users", Element::new_tree(None), None, None, v)?;
db.insert(&[b"users"], b"alice", Element::new_tree(None), None, None, v)?;
// Insert data
db.insert(&[b"users", b"alice"], b"age", Element::new_item(b"30"), None, None, v)?;
// Query
let age = db.get(&[b"users", b"alice"], b"age", None, v)?;
// Generate and verify proofs
let path_query = PathQuery::new_unsized(vec![b"users".to_vec()], Query::new_range_full());
let proof = db.prove_query(&path_query, None, None, v)?;
let (root_hash, results) = GroveDb::verify_query(&proof, &path_query, v)?;
cargo build --release
cargo test
cargo bench
Install pre-commit to catch formatting and lint issues before CI:
pip install pre-commit # or: brew install pre-commit
pre-commit install # fmt + typos on every commit
pre-commit install --hook-type pre-push # clippy on push
GroveDB is built in three layers:
For deep dives into each layer, see the GroveDB Book.
GroveDB implements concepts from Database Outsourcing with Hierarchical Authenticated Data Structures (Etemad & Kupcu, 2015) — using a forest of Merkle AVL trees where each tree can contain other trees, solving the fundamental limitation of flat authenticated structures.
Built by Dash Core Group as the storage layer for Dash Platform.
MIT — see LICENSE.
$ claude mcp add grovedb \
-- python -m otcore.mcp_server <graph>