Developers

Build with Colibri Stateless

Colibri Stateless is a compact prover/verifier stack for Ethereum (with more chains on the roadmap). The core is written in C; bindings include JavaScript/TypeScript, Kotlin/Java, Swift, Python, Dart, and Flutter—so you can verify proofs in browsers, mobile apps, servers, and embedded targets.

Architecture

Colibri architecture

Colibri Stateless is anchored in a compact C library that implements proof verification, SSZ handling, and orchestration of verified JSON-RPC calls. That shared core is the trust boundary and performance baseline for every supported target.

Above that core, Colibri exposes platform-specific integration layers. On native targets, the same shared library is reached through bindings suited to each runtime: JNI for Kotlin and Java, C interop for Swift, a Python binding layer, and dart:ffi for Dart. Flutter consumes the Dart layer rather than introducing a separate native interface.

For web deployments, the C sources compile to WebAssembly and are hosted from TypeScript or JavaScript in the browser, as in the interactive sandbox. The delivery surface changes, but proof rules, serialization formats, and verification behaviour remain aligned across targets.

One core, two delivery paths: Web via WebAssembly, and native platforms via language-specific bindings.

Languages

Web

TypeScript / JavaScript

Browser host layer

Native

Kotlin / Java

JVM languages

Native

Swift

Apple platforms

Native

Python

Server or scripting

Native

Dart

Flutter via Dart binding

Interfaces And Bindings

WebAssembly

Compiled from the same C sources

JNI

JVM native bridge

C interop

Direct native linkage

Python binding

ctypes / cffi / extension

dart:ffi

Used by Dart and Flutter

Foundation

Colibri core

C library

Proof verification, SSZ handling, and verified JSON-RPC orchestration live in the same shared core across both deployment paths.

Language bindings

Choose a language to see install steps and a minimal example. Full APIs and platform notes are in the specification.

JavaScript / TypeScript

npm package for Node and bundlers.

Install
npm install @corpus-core/colibri-stateless
Minimal example
1import Colibri from "@corpus-core/colibri-stateless";
2
3const client = new Colibri({
4  prover: ["https://mainnet.colibri-proof.tech"],
5});
6
7const block = await client.request("eth_getBlockByNumber", ["latest", false]);
8console.log("Latest block:", block.number);

Build from source

Clone the repository, configure a Release build with CMake, run tests, then try the CLI verifier against a public prover endpoint.

Clone & build
1# Clone
2git clone https://github.com/corpus-core/colibri-stateless.git
3cd colibri-stateless
4
5mkdir build && cd build
6cmake -DCMAKE_BUILD_TYPE=Release -DTEST=true ..
7make -j4
8make test
Smoke-test the CLI
bin/verify -i https://mainnet1.colibri-proof.tech eth_blockNumber

CLI reference

Docker prover

Run your own prover with the published image; pair with Memcached for caching outbound RPC (see the repository docker docs).

Docker
1# Pull
2docker pull ghcr.io/corpus-core/colibri-prover:latest
3
4# Run
5docker run -p 8090:8090 ghcr.io/corpus-core/colibri-prover:latest
6
7# Compose + Memcached: see bindings/docker/README.md in the repo

Useful tags

  • latest — stable (linux/amd64, linux/arm64)
  • main — main branch (linux/amd64)
  • dev — development (linux/amd64)
  • vX.Y.Z — pinned releases

Full documentation

Architecture, RPC coverage, SSZ types, and binding guides are published in the specification.

  • Concepts and proof flow
  • API reference and supported RPC methods
  • SSZ definitions
  • Per-platform binding guides