immudb mascot


immudb - the lightweight, high-speed immutable database for systems and applications. Open Source and easy to integrate into any existing application.

Get started now



Any kind of key-value. Clients can choose how to structure data.

No data mutation APIs are provided.

Data is never overwritten, so multiple versions of the same key co-exist and are verifiable.



Tamper-evident history system.

Clients and auditors want cryptographic proof of data inclusion and historical consistency in real time.

If tampered, clients and auditors will notice that and take actions.



Data ownership is verifiable by clients and auditors.

Sign your data using Public-Key Cryptography.

Keys additions and revocations is immutably stored into the database

Runs on

Easy setup

Build Docker images based on the Dockerfiles in the GitHub repository for the most common architectures or use the prebuild ones on Dockerhub for Linux.
docker run -it -d -p 3322:3322 -p 9497:9497 --name immudb codenotary/immudb:latest

Unmatched performance

immudb has been designed with read and write performance in mind while being tamper-proof. The benchmarks we've done show great results.
sequential write
Concurrency: 128
Iterations: 1000000
Elapsed t.: 3.06 sec
Throughput: 326626 tx/sec
batch write (async commit)
Concurrency: 16
Iterations: 1000000
Elapsed t.: 0.36 sec
Throughput: 2772181 tx/sec
  • 4 cores
  • ·
  • 16GB memory
  • ·
  • single SSD drive
immudb is often compared to Amazon QLDB. We compared the performance using a simple demo application to write data (without using any unfair optimization).
Immudb - Throughput read
Immudb - Throughput write
Immudb - Written records per ms
Immudb - Queried records per ms

Why immudb?

immudb is a ledger database that has been developed with performance, scalability and versatility in mind. The user feedback has shown that they love the very high throughput and being able to store hashes as well as data. They see it as a great alternative to using a blockchain or ledger service.

  • Easy setup
  • Fast and reliable immutable database
  • Secure REST API gateway
  • Powerful, easy to use admin
  • Open source
Immudb - Made for the real world

Very high throughput, immutable database with cryptographic verification

immudb is an indispensable asset when it comes to tamper-proof data:

  • Store every update to sensitive database fields (credit card or bank account data) of an existing application database
  • Store CI/CD recipes to build and deployment pipelines
  • Store public certificates
  • Store tamper-proof log streams (i. e. audit logs)
// Store any key, value auditproof and tamperproof
key2, value2 := []byte("myClient"), []byte("Visa 6679499384784022 11/23")
verifiedIndex, err := client.SafeSet(ctx, key2, value2)
if err != nil {
fmt.Println("   SafeSet - add and verify entry:")
printItem(key2, value2, verifiedIndex)
# install immudb service
./immuadmin service immudb install

# check current immudb service status
./immuadmin service immudb status

# install immugw service
./immuadmin service immugw install

# check immugw service
./immuadmin service immugw status
immudb - intuitive setup

Intuitive setup

immudb is built with simplicity in mind:

  • Use the prebuilt binaries or Docker container images for a fast start
  • Install, manage and run immudb and immugw as services (use 'immuadmin service')
  • Simple make command integration if you want to build the applications yourself
  • RESTful interfaces and easy to use clients
  • Combine with any existing application
Immudb - Made for the real world

Consistency check built-in

immudb architecture has built-in verification and audit functionality:

  • immudb server is continuously checking disk/memory consistency
  • immugw is continuously checking the data consistency and integrity
  • immuclient has built-in data consistency and integrity checks
  • API's provide data ownership proof, verification and integrity functions
// built-in verification for every entry
verifiedItem, err := client.SafeGet(ctx, key2)
if err != nil {
fmt.Println("   SafeGet - fetch and verify entry:")
printItem(nil, nil, verifiedItem)



A super-fast, immutable, and cryptographically verifiable ledger database that provides::
  • Transactional integrity
  • ·
  • ACID compliance
  • ·
  • Auditor
  • ·
  • SDKs for Python, Node.js, Java, Go

By developers, for developers

We have carefully designed immudb to be the one-stop intuitive immutable database solution, simple to write and simple to use.

The open-source immutable database

Run immudb easily on Linux, FreeBSD, Microsoft Windows, and macOS, along with other systems derived from them, such as Kubernetes and Docker.