Ic-py Development and Ongoing Maintenance

Background

The original ic-py development team has ceased maintenance of the project. Having maintained a close relationship with the former team—we were jointly supported by the same incubator, now disbanded—I have secured consent from the core developers and the repository owner to continue development. Special thanks to @marc0olo and @eduard-galindo for their ongoing support.

Future maintenance of ic-py will primarily be conducted in my repository. Updates will be submitted to the main repository via pull requests and subsequently released on PyPI.

Current Issues and Approach

Based on feedback gathered from GitHub issues and forum discussions, I have identified and structured existing issues into clear milestones prioritized by urgency and complexity. My immediate focus is addressing known security vulnerabilities and simpler tasks with fewer dependencies or blockers.

Related Discussions:


Roadmap & Milestones

Guiding Principles

  • Resolve all known security vulnerabilities.
  • Modernize and fully support the Candid type system.
  • Maintain alignment with agent-rs’s feature set and release schedule.

Milestone 1

Endpoint Upgrade

Timeouts & Error Classification

  • Issues: Missing timeout mechanisms; inadequate error classifications.

  • References: #117, #115

  • Solution:

    1. Implement configurable timeout handling.
    2. Structured error management for common canister errors.

Milestone 2

IC Certificate Verification

  • Issue: Lack of verification in methods (request_status_raw, request_status_raw_async) posing security risks.

  • References:

  • Solution:

    1. Implement verification based on agent-rs logic.
    2. Resolve Python-BLS compatibility (via Rust-BLS/FFI bridge).

Milestone 3

Candid Type System Enhancements

  • Issue: Missing support for recent Candid features.

  • References: #111, PR #112, #63, Candid Spec

  • Solution:

    1. Upgrade Candid parser and generator to latest spec.
    2. Comprehensive testing against the canonical specification.

Milestone 4

Dynamic HTTP Provider & Routing

  • Implement adaptive, latency-based routing.
  • Flexible runtime endpoint selection.

Expanded API Surface

  • High-level wrappers for ICRC-compliant ledgers (e.g., ckBTC, ckETH, ckUSDc).
  • Helpers for interactions with Bitcoin, Ethereum, and other canisters.

Ongoing Alignment & Optimization

  • Regular synchronization with agent-rs roadmap.
  • Continuous performance and type-check optimizations.
  • Define further milestones post-completion of Milestones 1-3.

Further Information

Feel free to suggest improvements or features here. Your feedback will help refine the roadmap and guide ongoing development.

Let’s collaborate to enhance ic-py and empower more developers to build reliable ICP applications!

6 Likes

Progress update:

I am currently working on completing Milestone 1, which involves updating the endpoints and adapting to the new version of the endpoints.

3 Likes

nice job,gogogo , can not wait

any update new?? good news???

There will be an update in about 1–2 weeks, but it won’t be released to PyPI. After that, I’ll post progress updates here once or twice a week.

1 Like

how about a new HTTPS endpoint for making update calls · Issue #118 · rocklabs-io/ic-py · GitHub

this is included in Milestone 1:

2 Likes

This feature will be fixed in an upcoming update. I am currently working to complete this goal and collaborating with the community for testing.

Thank you for your attention — I will post an update here once the fix is released.

Additionally,

candid-py may be split from ic-py in the future to become a standalone repository and dependency. I am currently discussing this possibility with some friends who are interested in ic-py.

2 Likes

The development and testing for upgrading the endpoint to v3 have been completed and are consistent with expectations.

Next, I will optimize the code, and the update is expected to be pushed to the fix branch next week.

This fix will not be released to PyPI individually — instead, the first patched version will be published to PyPI after all issues in milestone 1 have been resolved.

Thank you for your attention.

@charm @icprobot

Additionally, I will publish every Friday the latest updates on this week’s icpy maintenance work and the upcoming timeline.