|
| 1 | +# `substrate-interface` maintenance |
| 2 | + |
| 3 | +- **Team Name:** Stanislav Terliakov |
| 4 | +- **Payment Address:** 13fczWPtdAtkePBYgW5SuwVBvDvEfXYPAPsfbue5ez2CrGEF (DOT, USDC). |
| 5 | +- **[Level](https://github.com/w3f/Grants-Program/tree/master#level_slider-levels):** 2 |
| 6 | + |
| 7 | +## Project Overview :page_facing_up: |
| 8 | + |
| 9 | +### Overview |
| 10 | + |
| 11 | +`py-polkadot-sdk` (available on PyPI as `substrate-interface`) is a Python SDK for interfacing with Substrate nodes. |
| 12 | + |
| 13 | +It's been around since 2019. This package powers hundreds, if not thousands, of real-world projects. |
| 14 | + |
| 15 | +Here's a brief usage summary: |
| 16 | + |
| 17 | +- 235k PyPI downloads last month ([PyPIStats](https://pypistats.org/packages/substrate-interface)), without any signs |
| 18 | + of decreasing usage. |
| 19 | +- 258 GitHub stars. |
| 20 | + |
| 21 | +It is the primary Python SDK for interacting with Substrate, which means it is one of the cornerstones |
| 22 | +of server-side development that needs access to Substrate information and modifications. |
| 23 | + |
| 24 | +Unfortunately, currently it is essentially unmaintained: |
| 25 | + |
| 26 | +- Only two commits have been made in 2025, both only affecting documentation. |
| 27 | +- Package unit tests are failing in CI. |
| 28 | +- There are many lint errors despite using *very* low-level linter configuration that fails to catch many common |
| 29 | + kinds of bugs. These lint errors are just intentionally ignored/hidden in CI. |
| 30 | +- Open issues keep accumulating, including severe runtime crashes (see below). |
| 31 | +- Officially declared Python support is for versions from 3.7 to 3.11. Latest Python version is 3.13, |
| 32 | + released in Oct. 2024, and 3.7 is EOL (end of life) for years. |
| 33 | +- Package has very low type annotations (aka type hints) coverage. Static typing became de-facto standard in Python |
| 34 | + world several years ago, so lack of sufficient static information has significant negative impact on developer |
| 35 | + experience and IDE feedback. |
| 36 | +- Lack of metadata V15 support indicates significant gap between this library and latest Substrate development. |
| 37 | + |
| 38 | +Current state of `substrate-interface` development does not match the reliability and quality of the rest of the |
| 39 | +ecosystem. |
| 40 | + |
| 41 | +### Maintenance list |
| 42 | + |
| 43 | +- https://github.com/JAMdotTech/py-polkadot-sdk |
| 44 | + |
| 45 | +## Team :busts_in_silhouette: |
| 46 | + |
| 47 | +### Team members |
| 48 | + |
| 49 | +- Stanislav Terliakov |
| 50 | + |
| 51 | +### Contact |
| 52 | + |
| 53 | +- **Contact Name:** Stanislav Terliakov |
| 54 | +- **Contact Email: ** [email protected] |
| 55 | +- **Website:** https://sterliakov.github.io/ |
| 56 | + |
| 57 | +### Legal Structure |
| 58 | + |
| 59 | +- **Registered Address:** N/A |
| 60 | +- **Registered Legal Entity:** N/A |
| 61 | + |
| 62 | +### Team's experience |
| 63 | + |
| 64 | +I'm a backend developer with over five years of Python experience, currently leading a development team at Simpleem. |
| 65 | +I have extensive blockchain experience, including multiple award-winning hackathon submissions |
| 66 | +([DevPost profile](https://devpost.com/sterliakov)), and Python is my primary development language. |
| 67 | + |
| 68 | +My open-source contributions include over 50 merged [pull requests](https://github.com/python/mypy/pulls/sterliakov) |
| 69 | +to mypy, a static type checker maintained by the Python core team, and contributions to other projects. |
| 70 | +I also previously developed and continue to maintain a [Rust SDK](https://github.com/sterliakov/thor-devkit.rs) |
| 71 | +for VeChain, which powers several real-world projects and was funded by a VeChain grant. |
| 72 | + |
| 73 | +### Team Code Repos |
| 74 | + |
| 75 | +- https://github.com/sterliakov/mypy-issues |
| 76 | +- https://github.com/sterliakov/thor-devkit.rs |
| 77 | +- https://github.com/sterliakov/toggl-tracker |
| 78 | + |
| 79 | +GitHub account: https://github.com/sterliakov |
| 80 | + |
| 81 | +### Team LinkedIn Profiles (if available) |
| 82 | + |
| 83 | +N/A |
| 84 | + |
| 85 | +## Development Status :open_book: |
| 86 | + |
| 87 | +I have not started maintenance tasks in that repository. I have contacted the developer team asking for their |
| 88 | +preference (https://github.com/JAMdotTech/py-polkadot-sdk/issues/419). |
| 89 | + |
| 90 | +See the next section for more specific action points in scope of this grant. |
| 91 | + |
| 92 | +## Maintenance Responsibilities :nut_and_bolt: |
| 93 | + |
| 94 | +High-priority tickets I will resolve: |
| 95 | + |
| 96 | +- Runtime crash with no workaround: https://github.com/JAMdotTech/py-polkadot-sdk/issues/405 |
| 97 | +- Runtime crash: https://github.com/JAMdotTech/py-polkadot-sdk/issues/412 |
| 98 | +- Runtime crash: https://github.com/JAMdotTech/py-polkadot-sdk/issues/336 |
| 99 | +- Missing important functionality: https://github.com/JAMdotTech/py-polkadot-sdk/issues/348 |
| 100 | +- Other tickets depending on their prioritization |
| 101 | + |
| 102 | +Implementation defects I intend to address: |
| 103 | + |
| 104 | +- Failing unit tests |
| 105 | +- Insufficient static type annotations coverage |
| 106 | +- Existing lint violations |
| 107 | +- Weak linter configuration |
| 108 | +- Lack of automated code formatting |
| 109 | +- Extremely outdated GitHub actions, not conformant to modern CI/CD security standards |
| 110 | +- No centralized dependency management (vulnerability scans, dependabot, etc.) |
| 111 | + |
| 112 | +Additionally, I will triage the existing tickets (or guarantee quick replies to issues opened again my fork |
| 113 | +and PR reviews). |
| 114 | + |
| 115 | +### Overview |
| 116 | + |
| 117 | +- **Start Date:** As soon as this proposal is approved |
| 118 | +- **Sprint/Period Duration:** 2 weeks |
| 119 | +- **Total Duration:** 3 months |
| 120 | +- **Full-Time Equivalent (FTE):** 0.5 FTE |
| 121 | +- **Max budget per sprint/period:** 6000 USD (estimated at 20 h/week with 25% extra allowance), |
| 122 | + capped at 30000 USD for the whole period. |
| 123 | +- **DOT %:** 50 |
| 124 | +- **Hourly rate:** 120 USD |
| 125 | + |
| 126 | +## Future Plans |
| 127 | + |
| 128 | +- Expand the documentation and specifically usage examples |
| 129 | +- List this project on my public pages |
| 130 | +- Continue contributing to `substrate-interface` or maintaining my fork in future |
| 131 | + |
| 132 | +## Additional Information :heavy_plus_sign: |
| 133 | + |
| 134 | +**How did you hear about the Maintenance Grants Program?** Web3 Foundation Website |
0 commit comments