π¦ ICP-PY-CORE Release Notes
π·οΈ Version: v1.0.0
Release Date: 2025-10-20
Author: Elie Zhao ([email protected])
π Overview
This release marks the first stable version of icp-py-core, a fully refactored and modernized fork of ic-py.
It introduces a modular architecture, improved maintainability, and full compatibility with Boundary Node v3 endpoints of the Internet Computer.
π§© Major Code Changes
1. Modular Architecture
Reorganized code under src/ into focused, independent modules:
src/
βββ icp_agent/ # Agent & HTTP client
βββ icp_identity/ # Identity management (ed25519, secp256k1)
βββ icp_candid/ # Candid encoder/decoder & parser
βββ icp_principal/ # Principal utilities (strict DER mode)
βββ icp_certificate/ # Certificate verification (BLS12-381)
βββ icp_core/ # Unified import facade
2. New Unified Facade (icp_core)
Simplified imports for developers:
from icp_core import Agent, Client, Identity, Principal, encode, decode, TypesThe facade re-exports key APIs from submodules, providing a single consistent interface.
3. Updated Agent APIs
New high-level methods mirror Rust/TypeScript IC agents:
Agent.update()β Auto-encodes args, handles polling until completion.Agent.query()β One-shot query call.
All arguments are automatically encoded with Candid when not provided as bytes.
4. Identity Enhancements
- Introduced SLIP-10 deterministic key derivation (replacing legacy scheme).
- Unified support for Ed25519 and Secp256k1.
- Added identity unit tests and improved PEM parsing.
5. Principal Strict Mode
Principal.self_authenticating() now requires DER-format public keys to ensure strict validation and consistency with DFINITY standards.
6. Agent & Polling Improvements
- Added exponential backoff and configurable timeouts.
poll()andpoll_and_wait()now match Rust Agent semantics.- Enhanced error handling for malformed or partial replica responses.
7. Candid Parser Fixes
- Pinned
antlr4-python3-runtime==4.9.3to fix ATN version mismatch. - Updated parser imports for compatibility.
8. Packaging Modernization
- Added PEP 621-compliant
pyproject.toml(replacing setup.py). - Added
MANIFEST.into exclude.venv-test,tests/, and.git/. - Declared runtime dependencies:
httpx,cbor2,leb128,ecdsa,PyNaCl. - Added optional
blstdependency (manual install required).
πΊοΈ Roadmap
| Milestone | Status | Description |
|---|---|---|
| v1.0.0 | β Released | Modular refactor, v3 endpoints, certificate verification |
| v1.1.0 | π§ Planned | Candid type-system enhancements |
π Acknowledgments
Special thanks to the DFINITY community, original ic-py contributors, and all who supported the continued development of this Python SDK for the Internet Computer.
Β© 2025 ICP-PY-CORE Maintainers | MIT License