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.6.11-cp312-cp312-win_amd64.whl (371.3 kB view details)

Uploaded CPython 3.12Windows x86-64

colibri_stateless-0.6.11-cp312-cp312-manylinux_2_17_x86_64.whl (486.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

colibri_stateless-0.6.11-cp312-cp312-macosx_15_0_universal2.whl (363.7 kB view details)

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

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

Uploaded CPython 3.8Windows x86-64

colibri_stateless-0.6.11-cp38-cp38-manylinux_2_17_x86_64.whl (484.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

colibri_stateless-0.6.11-cp38-cp38-macosx_15_0_universal2.whl (362.1 kB view details)

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

File details

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

File metadata

File hashes

Hashes for colibri_stateless-0.6.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 85af342c5fca2fd87b5267a8fb89d3039487207eebc4b9061c1bb53f88607f1c
MD5 450830e39b1e4af4383e12f680f76c49
BLAKE2b-256 2b9a908e01ca31dd2b549e02be74ce2c5740d5d82cb8a8574d010686cca65464

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for colibri_stateless-0.6.11-cp312-cp312-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 cdd1a09a5ebba6be5d62fe1a851d0609bfdadda0732107a2c58bdc8402dc1fe4
MD5 acf46084bfbbec9cceca45eba1f7ae36
BLAKE2b-256 485e273e61236f2dd29106d81706151a75bcb1c39fc28feb3e8dcadf02f8fa70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for colibri_stateless-0.6.11-cp312-cp312-macosx_15_0_universal2.whl
Algorithm Hash digest
SHA256 f27a9e1a5ee2a4d6b9d95489f527f7ec02d6f3abc7a29131d7f98465f4ff472d
MD5 75124eedf4b14967935ae2db276558b2
BLAKE2b-256 b760fd00225ace66f5d35add613a773a02c33deee79d181ddefeb7a1880cc3bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for colibri_stateless-0.6.11-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 ae85b74943c6cd5f281aec9d56801f3030f039a0de1263cdc87752a4a907ca92
MD5 bf3495abd64c89ed737684b4698f25c6
BLAKE2b-256 2d26622ba6c5097df3df9d7529b61e1c4461b9ced560086f0dc29f8dd78743aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for colibri_stateless-0.6.11-cp38-cp38-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 13f55ee81cf5517b760ef0fddcf8c76fca24a4e732dab81134dd89a459094983
MD5 a444427f2cde4a398413b038fd10de87
BLAKE2b-256 53a501594588e726b54d824223259003ee8522e06ef7cad158fe9ed074902303

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for colibri_stateless-0.6.11-cp38-cp38-macosx_15_0_universal2.whl
Algorithm Hash digest
SHA256 2ecf8cc449fe049e129066e56a3a6dcde9dfeb3ad1117683e02d666fa259155e
MD5 1f03ecedb82bcde9389e62adabaabc88
BLAKE2b-256 50c889d6b71773b1da14652badf6e48047662bc880a3e7022cd71422cf5437a4

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