Skip to main content

Python bindings for Colibri stateless Ethereum proof library

Project description

C4 Logo

Colibri Python Bindings (corpus core colibri client)

ETH2.0_Spec_Version 1.4.0

The colibri client is a stateless and trustless ethereum client, which is optimized for the mobile apps or embedded devices, because it does not hols the state, but verifies on demand.

🚀 Quick Start

Installation

pip install colibri-stateless

Basic Usage

import asyncio
from colibri import Colibri

async def main():
    # Initialize client for Ethereum Mainnet
    client = Colibri(chain_id=1, provers=["https://mainnet.colibri-proof.tech"])
    
    # Make verified RPC call
    result = await client.rpc("eth_blockNumber", [])
    print(f"Current block: {result}")
    
    # Get account balance with proof verification
    balance = await client.rpc("eth_getBalance", [
        "0x95222290DD7278Aa3Ddd389Cc1E1d165CC4BAfe5", 
        "latest"
    ])
    print(f"Balance: {balance}")

# Run async function
asyncio.run(main())

✨ Key Features

  • 🔐 Cryptographic Verification - All RPC responses verified with Merkle proofs
  • 🚀 Async/Await Support - Modern Python async support for network operations
  • 💾 Pluggable Storage - Customizable storage backends for caching
  • 🧪 Comprehensive Testing - Mock HTTP requests and storage for testing
  • 🌐 Multi-Chain Support - Ethereum Mainnet, Sepolia, Gnosis Chain, and more
  • 📦 Easy Integration - Simple pip install with pre-built native extensions

📖 Documentation

Full Documentation: GitBook Guide

  • API Reference - Complete class and method documentation
  • Storage System - Custom storage implementations
  • Testing Framework - Mock data and integration tests
  • Configuration - Chain setup and advanced options
  • Building from Source - Development and contribution guide

🛠️ Development

Building from Source

# Clone repository
git clone https://github.com/corpus-core/colibri-stateless.git
cd colibri-stateless/bindings/python

# Build native extension
./build.sh

# Install in development mode
pip install -e .

# Run tests
python -m pytest tests/

Integration Tests

# Run with real blockchain data (offline)
from colibri.testing import discover_tests, run_test_case

tests = discover_tests()
for test_name, test_config in tests.items():
    result = await run_test_case(test_name, test_config)
    print(f"Test {test_name}: {'PASSED' if result else 'FAILED'}")

📋 System Requirements

  • Python 3.8+
  • CMake 3.20+ (for building from source)
  • C++17 compiler (for building from source)

🔗 Related Projects

  • Core Library: colibri-stateless
  • Swift Bindings: iOS/macOS native integration
  • Kotlin Bindings: Android/JVM integration
  • JavaScript Bindings: Web/Node.js integration

📄 License

MIT License - see LICENSE for details.

🤝 Contributing

Contributions welcome! Please read our Contributing Guide and check the Development Documentation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

colibri_stateless-0.7.0-cp312-cp312-win_amd64.whl (371.3 kB view details)

Uploaded CPython 3.12Windows x86-64

colibri_stateless-0.7.0-cp312-cp312-manylinux_2_17_x86_64.whl (487.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

colibri_stateless-0.7.0-cp312-cp312-macosx_15_0_universal2.whl (364.0 kB view details)

Uploaded CPython 3.12macOS 15.0+ universal2 (ARM64, x86-64)

colibri_stateless-0.7.0-cp38-cp38-win_amd64.whl (369.5 kB view details)

Uploaded CPython 3.8Windows x86-64

colibri_stateless-0.7.0-cp38-cp38-manylinux_2_17_x86_64.whl (484.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

colibri_stateless-0.7.0-cp38-cp38-macosx_15_0_universal2.whl (362.5 kB view details)

Uploaded CPython 3.8macOS 15.0+ universal2 (ARM64, x86-64)

File details

Details for the file colibri_stateless-0.7.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for colibri_stateless-0.7.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e1bd9c6c42be803788c04c2a16df43a477636a1b1cc310cf1a4cc467b13b3bf2
MD5 a3fdbd91c04d1008301b141d2288ea09
BLAKE2b-256 d8685940b61522ab058570ca01703a3782bd407f9e418822257a605bcca8e8ea

See more details on using hashes here.

File details

Details for the file colibri_stateless-0.7.0-cp312-cp312-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for colibri_stateless-0.7.0-cp312-cp312-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 cb1257142969a1703e15ddd20c042b464ebb723ff6d889ac46bb9c95246b503b
MD5 164d291d637449de5bf471065e23859e
BLAKE2b-256 4c1d940ccb7acb44aad8842842d1ef59f3542cfb5fc01895d8b7e6ffabb66d6b

See more details on using hashes here.

File details

Details for the file colibri_stateless-0.7.0-cp312-cp312-macosx_15_0_universal2.whl.

File metadata

File hashes

Hashes for colibri_stateless-0.7.0-cp312-cp312-macosx_15_0_universal2.whl
Algorithm Hash digest
SHA256 c7b4d102c9d95e2a034cc6b8542e80ba57b7ccd614cda51d5ba29e6970a19f0f
MD5 96af0b894b8a95b6884c4beaccb7b855
BLAKE2b-256 7867de9b7eb0e40555dad69a410cb281fb6f06fa38c16aad24a77bf3178bf86d

See more details on using hashes here.

File details

Details for the file colibri_stateless-0.7.0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for colibri_stateless-0.7.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 432860372484ea2d00fcdc08bd9e7adc555b8bc037ee6a3c22a21c9fc16f7eef
MD5 2585325dc5ec31c1d111f80751dea62e
BLAKE2b-256 f7e92d25bf4525c828421a99cd11d9b63924afa8a046fa2628ba0a3090cb1a3e

See more details on using hashes here.

File details

Details for the file colibri_stateless-0.7.0-cp38-cp38-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for colibri_stateless-0.7.0-cp38-cp38-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 41bfb133025c1b4e7812173bb693d3879623f190f4d868db111b4ccca92f135c
MD5 f0fc1edaf0f0682d700c5309ff01f454
BLAKE2b-256 b6da3949b69a16b61ecbc95d51024be38f1c309c61b31a7e4aecf2bae5bd87f0

See more details on using hashes here.

File details

Details for the file colibri_stateless-0.7.0-cp38-cp38-macosx_15_0_universal2.whl.

File metadata

File hashes

Hashes for colibri_stateless-0.7.0-cp38-cp38-macosx_15_0_universal2.whl
Algorithm Hash digest
SHA256 05f1fecda57cabdbac105d40eb1a09badf09241596e73ef5137ab10a49669ce9
MD5 6581e31f58195928c0b37395f397ec49
BLAKE2b-256 98db4d3dab8a4b4846f8f14ba49fb746c047094a32655e7bf2c9c198132ed0ed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page