PolkaBind Lib

Rust → UniFFI Polkadot Library

Native Swift & Kotlin (and more!) packages for seamless Polkadot integration

⚠️ Under Construction – Work in Progress
We are actively developing PolkaBind. Expect missing features, breaking changes, and placeholder documentation. Stay tuned for updates as we enhance core functionality.

Project Status

PolkaBind is an evolving library. Current features may change, and new capabilities will be added over time. We encourage community feedback and contributions to help shape the library.

Purpose & Goals

Positioning vs. SubXT & SmolDOT

Library Purpose Key Differences
SubXT High-level Rust library for Polkadot/Substrate that wraps JSON-RPC calls and SCALE encoding.
  • Designed primarily for Rust backends and CLI tools.
  • Requires a remote RPC endpoint (unless built with light-client feature).
  • Ergonomic Rust API; not natively consumable by Swift/Kotlin without FFI glue.
SmolDOT Rust-based, no-std light-client for Polkadot/Substrate; can sync headers, verify finality, and run in-app.
  • Provides a fully trust-minimized client on the device (no external node required).
  • Lower-level API—developers handle SCALE decoding and extrinsic construction manually (unless wrapped by SubXT).
  • Larger dependency footprint (libp2p, consensus code) when targeting mobile platforms.
PolkaBind Lib Rust → UniFFI bindings exposing a minimal, wallet-focused Polkadot API for Swift, Kotlin, Python, etc.
  • Wraps SubXT (by default) to expose importWallet, getBalance, buildSignedTransfer, submitExtrinsic, subscribeEvents—all via UniFFI.
  • Optional future feature: compile with SmolDOT for on-device light-client support.
  • Delivers a single package per target language—no extra FFI or bridging required by app developers.

Roadmap

Phase Timeline Objectives
Phase 0: Initialization Q2 2025
  • Set up PolkaBind GitHub organization.
  • Create initial Rust crate with UniFFI UDL.
  • Publish v0.1.0: importWallet & getBalance (RPC).
Phase 1: Core Wallet APIs Q3 2025
  • Implement buildSignedTransfer and submitExtrinsic.
  • Expose subscribeEvents (e.g., balances.Transfer) via UDL.
  • Publish Swift & Kotlin packages (v0.2.0).
  • Work in Progress—APIs may change.
Phase 2: SmolDOT Integration Q4 2025
  • Add --features light-client to compile SubXT with SmolDOT backend.
  • Expose on-device finality methods: syncHeaders(), verifyBlock().
  • Publish v0.3.0: “RPC + Light-Client” universal library.
Phase 3: Ecosystem Growth 2026
  • Launch documentation portal at polkabind.dev/docs.
  • Invite community contributions for staking, governance, parachain support.
  • Release v1.0.0: Stable API for production use.

Showcase App: SPEEM Mobile (built on PolkaBind) – a reference wallet demonstrating PolkaBind.getBalance(…), PolkaBind.transfer(…), and more. See speemapp/speem.

Developer Information

Lead Developer: Wassim Mansouri

“Building a unified, cross-platform Polkadot library—one bound at a time!”