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

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\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"
}