-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Apex SDK Protocol #2735
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Apex SDK Protocol #2735
Conversation
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
|
I have read and hereby sign the Contributor License Agreement. |
|
Hi @kherldhussein thanks for your application. As Polkadot matures and moves away from the protocol development phase into this new phase of product design, I'm kind of skeptical of another SDK since they typically try to set a standard, and therefore run the risk of not being adapted. Have you already talked to others that have experienced pain points with |
|
Hi Keegan, thanks for raising this. To clarify upfront: Apex is not intended to replace Subxt, nor to define a new protocol or ecosystem standard. Subxt remains the correct and canonical choice for teams that need direct, chain specific interaction with a Substrate runtime. Apex deliberately operates at a different layer. The problem Apex addresses is not “how to talk to a Substrate chain”,.. Subxt already solves that well,.. but rather how product teams build, ship, and maintain application level logic across multiple chains and execution environments. In practice, teams building Polkadot-adjacent products (especially on networks like Moonbeam, Astar, or custom hybrid backends) almost always end up composing:
This glue code is repetitive, error-prone, and sits outside the scope Subxt is designed for. It also tends to be reimplemented independently by each team, leading to duplicated effort and inconsistent patterns. Apex composes existing, canonical tools (Subxt for Substrate, Alloy for EVM) and focuses exclusively on application-layer concerns, including:
Importantly, Apex does not introduce a new wire protocol, RPC format, or runtime abstraction. It uses on-chain metadata and standard RPCs and remains fully compatible with existing tooling. Developers can always drop down to Subxt or Alloy directly when they need lower-level control. As Polkadot matures, the bottleneck we’ve repeatedly observed shifts away from protocol correctness toward product iteration speed and developer onboarding. Many teams building on Polkadot today are not protocol specialists; they are product engineers or even non-blockchain developers entering the ecosystem. Apex is intentionally scoped to reduce the cognitive and integration overhead for those teams, without diluting or competing with core infrastructure libraries. We’re very conscious of fragmentation risk, which is why Apex is:
We’re happy to share more detailed architectural scopes and are prepared to dedicate a grant milestone to building a public, well-documented case study with a product team, measuring integration effort and developer workflow complexity when composing Subxt and EVM tooling with and without Apex. Thanks again for the feedback. |
Project Abstract
Apex SDK Protocol is a unified Rust SDK that provides compile-time safe, ergonomic APIs for multichain development, focused on Polkadot's hybrid parachains (Moonbeam, Astar) and Substrate-EVM interoperability. By composing subxt and alloy into a single consistent interface, it eliminates toolchain fragmentation, reduces hybrid integration time from weeks to days, and enables faster production of cross-chain applications such as DeFi protocols, indexers, arbitrage bots, and asset management tools.Building on the existing v0.1.4 release, the project delivers enhanced cross-chain primitives (including XCM support), comprehensive documentation, tutorials, and community tooling to accelerate Rust developer onboarding and drive growth across Polkadot's parachain ecosystem.
Grant level
Application Checklist
project_name.md).@_______:matrix.org(change the homeserver if you use a different one)