Skip to main content

SDK Status

Production reality - what works, what doesn't

Current implementation status. No roadmaps, no promises.

TypeScript SDK

Published: @selendrajs/sdk 2.0.1 on npm, published 2025-11-29.
CLI is @selendrajs/cli 1.0.1, same date.
The GitHub source tree still carries 1.0.0 in package.json, so trust npm for the installed version.

Production Ready (Use in Production)

Substrate Features:

  • ✓ Staking operations (bond, nominate, validate, chill, unbond)
  • ✓ Treasury (propose spend, query proposals, query approvals)
  • ✓ Validator queries (current era, next era, reserved)
  • ✓ Council governance (query members, proposals, voting)
  • ✓ Democracy (referendums, public proposals, voting, delegation)
  • ✓ Council elections (members, candidates, voting, candidacy)
  • ✓ Preimage support (for governance proposals)
  • ✓ Account management (balance, account info, transfer)
  • ✓ Unified accounts (Substrate ↔ EVM conversion)
  • ✓ Aleph consensus queries

React Integration:

  • ✓ 15 production hooks
  • ✓ Provider component
  • ✓ Wallet connector
  • ✓ Balance display components
  • ✓ Transaction buttons
  • ✓ Event listeners
  • ✓ Block subscriptions

Test Coverage:

  • 129 tests written
  • 70 passing
  • Known failures in network-dependent tests

Beta (Use with Caution)

EVM Features:

  • Beta: getBalance() - Works
  • Beta: getBlockNumber() - Works
  • Beta: getTransactionCount() - Works
  • Beta: Basic transfers - Works
  • Beta: Contract calls - Limited
  • ✗ Contract deployment - Not implemented (5 TODO methods)
  • ✗ Gas estimation - Not implemented (2 TODO methods)
  • ✗ Transaction history - Not implemented
  • ✗ Event filtering - Not implemented
  • ✗ EIP-712 signing - Not implemented

Known Issues:

  • 17 TODOs in EVM client
  • No SEL price oracle integration
  • No cross-chain bridge support

Not Ready

Features Not Implemented:

  • Contract metadata parsing (incomplete)
  • Advanced contract interaction patterns
  • Batch transactions (utility pallet needs work)
  • Multi-signature operations
  • Identity pallet integration

Rust SDK

Development Only (Do Not Use)

Status: 58% complete

What Exists:

  • Basic wrapper around selendra_client v1.0.1
  • Keypair generation
  • Connection management
  • Staking methods (newly implemented)
  • Governance methods (newly implemented)
  • Account info queries (newly implemented)

What Doesn't Work:

  • Examples fail to compile (wasmtime conflicts)
  • Limited testing
  • No production deployments
  • Documentation incomplete

Current State:

  • Library compiles with 0 errors
  • 68 documentation warnings
  • Not published to crates.io yet
  • Use TypeScript SDK instead

Implementation Percentages

ComponentCompletionNotes
TypeScript Substrate100%Production ready
TypeScript EVM30%Basic ops only
TypeScript React100%15 hooks working
TypeScript Unified100%Account conversion works
Rust Substrate60%Compiles, not tested
Rust EVM10%Minimal implementation
Rust Examples40%Wasmtime issues

What We're Not Doing

No Roadmap Published:

  • We don't promise future features
  • We don't commit to timelines
  • We don't speculate on capabilities

Use What Works:

  • TypeScript + Substrate = Production ready
  • TypeScript + EVM = Use web3.js instead
  • Rust = Wait or contribute

Known Limitations

TypeScript SDK

Substrate:

  • Single nominator only (utility batch not implemented)
  • No multi-sig support
  • No identity pallet
  • No proxy accounts

EVM:

  • Can't deploy contracts
  • Can't estimate gas accurately
  • No transaction history
  • No event log filtering
  • No ENS support

React:

  • Requires React ≥18.0.0
  • No React Native support
  • Bundle size: ~300KB (medium)

Rust SDK

Major Issues:

  • Wasmtime version conflict (6.0.2 vs 8.0.1)
  • Examples don't link
  • Limited real-world testing
  • No production users

Missing Features:

  • No async runtime flexibility (tokio only)
  • No error recovery
  • No connection pooling
  • No automatic reconnection

Performance

TypeScript SDK:

  • Initial connection: ~1-2 seconds
  • Query latency: ~100-300ms (network dependent)
  • Transaction submit: ~1 second + block time
  • Event subscription: ~50ms overhead

Rust SDK:

  • Not benchmarked
  • No performance guarantees

Breaking Changes History

v2.0.1 (current, 2025-11-29):

  • Substrate features locked
  • EVM features may change

v1.0.0 (2025-11-17):

  • First stable release

Migration Risk:

  • Substrate APIs: Low (stable)
  • EVM APIs: High (incomplete)
  • React hooks: Low (stable)

Support Level

What We Support:

  • TypeScript Substrate features
  • React hooks
  • Unified accounts
  • Bug fixes for production features

What We Don't Support:

  • EVM features (beta, use at own risk)
  • Rust SDK (development only)
  • Custom chain configurations
  • Non-standard pallets

Built on:

  • Polkadot.js for Substrate functionality
  • Ethers.js for EVM functionality
  • Substrate types and runtime

Testing Against Live Network

Testnet:

  • Substrate features: Tested
  • Staking operations: Tested
  • Governance: Tested
  • EVM: Partially tested

Mainnet:

  • Used in production: Unknown
  • Known issues: None reported
  • Monitoring: No official tracking

Decision Matrix

Use TypeScript SDK If:

You need:

  • Substrate staking
  • Governance tools
  • React integration
  • Unified accounts

Don't Use TypeScript SDK If:

You need:

  • Full EVM support (use web3.js)
  • Multi-sig operations
  • Identity management
  • Custom pallets

Don't Use Rust SDK:

✗ Not ready for any use case

Getting Help

Production Issues:

  • GitHub Issues (response: best effort)
  • GitHub Discussions (community Q&A)
  • No SLA, no guaranteed response time

Beta Features:

  • We may not fix issues
  • Use at own risk
  • Contribute fixes welcome

Development Features:

  • No support provided
  • Contributions welcome
  • No timeline for completion

Version Policy

Semantic Versioning:

  • Major (X.0.0): Breaking changes
  • Minor (1.X.0): New features (backward compatible)
  • Patch (1.0.X): Bug fixes

Current: v2.0.1
Next planned: Unknown

Reality Check

We built this for Substrate dApps. EVM support was added but not completed. Rust SDK exists but isn't production ready.

If you need:

  • Substrate features - Use this SDK
  • EVM features - Use web3.js or ethers.js
  • Both - Use both libraries, don't compromise

No marketing promises. Use what works.

SDK Status - Selendra