colibri-stateless


Namecolibri-stateless JSON
Version 0.4.10 PyPI version JSON
download
home_pagehttps://github.com/corpus-core/colibri-stateless
SummaryPython bindings for Colibri stateless Ethereum proof library
upload_time2025-08-02 21:55:23
maintainerNone
docs_urlNone
authorcorpus.core
requires_python>=3.8
licenseMIT
keywords ethereum blockchain proof verification web3 rpc
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <img src="https://github.com/corpus-core/colibri-stateless/raw/dev/c4_logo.png" alt="C4 Logo" width="300"/>

# Colibri Python Bindings (corpus core colibri client)

![ETH2.0_Spec_Version 1.4.0](https://img.shields.io/badge/ETH2.0_Spec_Version-1.4.0-2e86c1.svg)

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

```bash
pip install colibri-stateless
```

### Basic Usage

```python
import asyncio
from colibri import Colibri

async def main():
    # Initialize client for Ethereum Mainnet
    client = Colibri(chain_id=1, proofers=["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](https://corpus-core.gitbook.io/specification-colibri-stateless/developer-guide/bindings/python)

- **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

```bash
# 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

```python
# 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](https://github.com/corpus-core/colibri-stateless)
- **Swift Bindings**: iOS/macOS native integration
- **Kotlin Bindings**: Android/JVM integration
- **JavaScript Bindings**: Web/Node.js integration

## ๐Ÿ“„ License

MIT License - see [LICENSE](../../LICENSE) for details.

## ๐Ÿค Contributing

Contributions welcome! Please read our [Contributing Guide](../../CONTRIBUTING.md) and check the [Development Documentation](https://corpus-core.gitbook.io/specification-colibri-stateless/developer-guide/bindings/python).

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/corpus-core/colibri-stateless",
    "name": "colibri-stateless",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "\"corpus.core\" <contact@corpus.core>",
    "keywords": "ethereum, blockchain, proof, verification, web3, rpc",
    "author": "corpus.core",
    "author_email": "\"corpus.core\" <contact@corpus.core>",
    "download_url": null,
    "platform": null,
    "description": "<img src=\"https://github.com/corpus-core/colibri-stateless/raw/dev/c4_logo.png\" alt=\"C4 Logo\" width=\"300\"/>\n\n# Colibri Python Bindings (corpus core colibri client)\n\n![ETH2.0_Spec_Version 1.4.0](https://img.shields.io/badge/ETH2.0_Spec_Version-1.4.0-2e86c1.svg)\n\nThe 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. \n\n## \ud83d\ude80 Quick Start\n\n### Installation\n\n```bash\npip install colibri-stateless\n```\n\n### Basic Usage\n\n```python\nimport asyncio\nfrom colibri import Colibri\n\nasync def main():\n    # Initialize client for Ethereum Mainnet\n    client = Colibri(chain_id=1, proofers=[\"https://mainnet.colibri-proof.tech\"])\n    \n    # Make verified RPC call\n    result = await client.rpc(\"eth_blockNumber\", [])\n    print(f\"Current block: {result}\")\n    \n    # Get account balance with proof verification\n    balance = await client.rpc(\"eth_getBalance\", [\n        \"0x95222290DD7278Aa3Ddd389Cc1E1d165CC4BAfe5\", \n        \"latest\"\n    ])\n    print(f\"Balance: {balance}\")\n\n# Run async function\nasyncio.run(main())\n```\n\n## \u2728 Key Features\n\n- **\ud83d\udd10 Cryptographic Verification** - All RPC responses verified with Merkle proofs\n- **\ud83d\ude80 Async/Await Support** - Modern Python async support for network operations  \n- **\ud83d\udcbe Pluggable Storage** - Customizable storage backends for caching\n- **\ud83e\uddea Comprehensive Testing** - Mock HTTP requests and storage for testing\n- **\ud83c\udf10 Multi-Chain Support** - Ethereum Mainnet, Sepolia, Gnosis Chain, and more\n- **\ud83d\udce6 Easy Integration** - Simple pip install with pre-built native extensions\n\n## \ud83d\udcd6 Documentation\n\n**Full Documentation**: [GitBook Guide](https://corpus-core.gitbook.io/specification-colibri-stateless/developer-guide/bindings/python)\n\n- **API Reference** - Complete class and method documentation\n- **Storage System** - Custom storage implementations\n- **Testing Framework** - Mock data and integration tests  \n- **Configuration** - Chain setup and advanced options\n- **Building from Source** - Development and contribution guide\n\n## \ud83d\udee0\ufe0f Development\n\n### Building from Source\n\n```bash\n# Clone repository\ngit clone https://github.com/corpus-core/colibri-stateless.git\ncd colibri-stateless/bindings/python\n\n# Build native extension\n./build.sh\n\n# Install in development mode\npip install -e .\n\n# Run tests\npython -m pytest tests/\n```\n\n### Integration Tests\n\n```python\n# Run with real blockchain data (offline)\nfrom colibri.testing import discover_tests, run_test_case\n\ntests = discover_tests()\nfor test_name, test_config in tests.items():\n    result = await run_test_case(test_name, test_config)\n    print(f\"Test {test_name}: {'PASSED' if result else 'FAILED'}\")\n```\n\n## \ud83d\udccb System Requirements\n\n- **Python 3.8+**\n- **CMake 3.20+** (for building from source)\n- **C++17 compiler** (for building from source)\n\n## \ud83d\udd17 Related Projects\n\n- **Core Library**: [colibri-stateless](https://github.com/corpus-core/colibri-stateless)\n- **Swift Bindings**: iOS/macOS native integration\n- **Kotlin Bindings**: Android/JVM integration\n- **JavaScript Bindings**: Web/Node.js integration\n\n## \ud83d\udcc4 License\n\nMIT License - see [LICENSE](../../LICENSE) for details.\n\n## \ud83e\udd1d Contributing\n\nContributions welcome! Please read our [Contributing Guide](../../CONTRIBUTING.md) and check the [Development Documentation](https://corpus-core.gitbook.io/specification-colibri-stateless/developer-guide/bindings/python).\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Python bindings for Colibri stateless Ethereum proof library",
    "version": "0.4.10",
    "project_urls": {
        "Bug Tracker": "https://github.com/corpus-core/colibri-stateless/issues",
        "Documentation": "https://github.com/corpus-core/colibri-stateless/tree/main/bindings/python",
        "Homepage": "https://github.com/corpus-core/colibri-stateless",
        "Repository": "https://github.com/corpus-core/colibri-stateless"
    },
    "split_keywords": [
        "ethereum",
        " blockchain",
        " proof",
        " verification",
        " web3",
        " rpc"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "773618de884ebaf02349da0f443ad4870da22a1338a93467fc9cd182915fe47f",
                "md5": "919beff9a531272f56237e4f812d16b2",
                "sha256": "360d4bbaf58d07fd0194814ee3596acf0785584e658e836e6230a08d958a569f"
            },
            "downloads": -1,
            "filename": "colibri_stateless-0.4.10-cp312-cp312-macosx_14_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "919beff9a531272f56237e4f812d16b2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 356235,
            "upload_time": "2025-08-02T21:55:23",
            "upload_time_iso_8601": "2025-08-02T21:55:23.744767Z",
            "url": "https://files.pythonhosted.org/packages/77/36/18de884ebaf02349da0f443ad4870da22a1338a93467fc9cd182915fe47f/colibri_stateless-0.4.10-cp312-cp312-macosx_14_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "be285f37906517ea981e40b6854db7d7e6fac6c6764fcabfb773048cd5f26d62",
                "md5": "3524141d7f2070fc04f29623e2abd4a0",
                "sha256": "bcd368e5958c270697c291222045bca7633723020ce302c146495747bc3272ed"
            },
            "downloads": -1,
            "filename": "colibri_stateless-0.4.10-cp312-cp312-manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3524141d7f2070fc04f29623e2abd4a0",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 472087,
            "upload_time": "2025-08-02T21:55:25",
            "upload_time_iso_8601": "2025-08-02T21:55:25.108940Z",
            "url": "https://files.pythonhosted.org/packages/be/28/5f37906517ea981e40b6854db7d7e6fac6c6764fcabfb773048cd5f26d62/colibri_stateless-0.4.10-cp312-cp312-manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f0615a56ed20e58c1281f1ea5a0d32b6af33ffd5ec5f4bb2713bae091822cad3",
                "md5": "c8ef67098c8f9ab2871e3942aa64b73c",
                "sha256": "97862f1d1bcf7abbb3ba93a4a1f6ad0de5491d28cee5aac543e11374f1daca9d"
            },
            "downloads": -1,
            "filename": "colibri_stateless-0.4.10-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c8ef67098c8f9ab2871e3942aa64b73c",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 357362,
            "upload_time": "2025-08-02T21:55:26",
            "upload_time_iso_8601": "2025-08-02T21:55:26.376387Z",
            "url": "https://files.pythonhosted.org/packages/f0/61/5a56ed20e58c1281f1ea5a0d32b6af33ffd5ec5f4bb2713bae091822cad3/colibri_stateless-0.4.10-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f2bee319b6097e2af6d6983b5af14a292f4289b95d833f16844a1ff2c8b64acc",
                "md5": "c2d34f9352999665e02261932aa446cb",
                "sha256": "a9caefa138557f646e3eaa65f5e76e4932f7694d81a6dfdde91a20d1aacf466b"
            },
            "downloads": -1,
            "filename": "colibri_stateless-0.4.10-cp38-cp38-macosx_14_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "c2d34f9352999665e02261932aa446cb",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 353650,
            "upload_time": "2025-08-02T21:55:27",
            "upload_time_iso_8601": "2025-08-02T21:55:27.898748Z",
            "url": "https://files.pythonhosted.org/packages/f2/be/e319b6097e2af6d6983b5af14a292f4289b95d833f16844a1ff2c8b64acc/colibri_stateless-0.4.10-cp38-cp38-macosx_14_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b8652db312e82f50bd34e6fd72980564a109b604210bc2fde3dcb0836426a755",
                "md5": "c2e27c1257060f28b42967c5971f4333",
                "sha256": "ff085443ac51413cdd1d66a139fd7895f87098c21dd84ee2918e3ee0eefd9d4b"
            },
            "downloads": -1,
            "filename": "colibri_stateless-0.4.10-cp38-cp38-manylinux_2_17_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c2e27c1257060f28b42967c5971f4333",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 470069,
            "upload_time": "2025-08-02T21:55:28",
            "upload_time_iso_8601": "2025-08-02T21:55:28.747795Z",
            "url": "https://files.pythonhosted.org/packages/b8/65/2db312e82f50bd34e6fd72980564a109b604210bc2fde3dcb0836426a755/colibri_stateless-0.4.10-cp38-cp38-manylinux_2_17_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a25fbf264d225053f762676d8f5e60fbc5033e9e001bd970d017df760541d499",
                "md5": "e4f37073f610dee10cbd446d9a85eaa1",
                "sha256": "f159bad3d9510245b756936e5329a8dbec0006bf589d84b4fe4bdd7f3a7789c5"
            },
            "downloads": -1,
            "filename": "colibri_stateless-0.4.10-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e4f37073f610dee10cbd446d9a85eaa1",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 355406,
            "upload_time": "2025-08-02T21:55:29",
            "upload_time_iso_8601": "2025-08-02T21:55:29.999764Z",
            "url": "https://files.pythonhosted.org/packages/a2/5f/bf264d225053f762676d8f5e60fbc5033e9e001bd970d017df760541d499/colibri_stateless-0.4.10-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-02 21:55:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "corpus-core",
    "github_project": "colibri-stateless",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "colibri-stateless"
}
        
Elapsed time: 1.55997s