SDK Status
Production reality - what works, what doesn't
Current implementation status. No roadmaps, no promises.
TypeScript SDK
Published: @selendrajs/sdk on npm
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_clientv1.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
| Component | Completion | Notes |
|---|---|---|
| TypeScript Substrate | 100% | Production ready |
| TypeScript EVM | 30% | Basic ops only |
| TypeScript React | 100% | 15 hooks working |
| TypeScript Unified | 100% | Account conversion works |
| Rust Substrate | 60% | Compiles, not tested |
| Rust EVM | 10% | Minimal implementation |
| Rust Examples | 40% | 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
v1.0.0 (Current):
- First stable release
- API may change in 1.x updates
- Substrate features locked
- EVM features may change
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: v1.0.0
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.
Found an issue or want to contribute?
Help us improve this documentation by editing this page on GitHub.
