Bull SDK¶
Unified flutter_rust_bridge bindings for Bitcoin and Liquid wallet operations.
Bull SDK merges five standalone Rust libraries — Ark, BBQr, Boltz, LWK, and Bitbox — into a single native library with unified Dart bindings.
Why Bull SDK?¶
Each standalone package compiles its own native library (.so/.dylib). When a project depends on all of them, you get:
- Slow builds — 5 separate native compilations, especially painful on Android (3 architectures each)
- Bloated binaries — Shared Rust dependencies (bitcoin, secp256k1, tokio, openssl) duplicated across each library
Bull SDK solves this by scanning all sub-crate Rust APIs through a single flutter_rust_bridge codegen pass, producing one native library with one FFI dispatcher.
Modules¶
| Module | What it does | Key classes |
|---|---|---|
| Boltz | Lightning ↔ onchain atomic swaps | BtcLnSwap, LBtcLnSwap, ChainSwap |
| LWK | Liquid Wallet Kit — Liquid network ops | Wallet, Descriptor, Tx |
| Ark | Ark protocol — offchain payments | ArkWallet, ArkTransaction |
| BBQr | Animated QR encoding/decoding | Encoding, Split, Join |
| Bitbox | Hardware wallet integration | BitboxApi |
Quick Start¶
import 'package:bull_sdk/bull_sdk.dart';
import 'package:bull_sdk/boltz.dart' as boltz;
import 'package:bull_sdk/lwk.dart' as lwk;
await BullSdk.init();
Supported Platforms¶
| Platform | Status |
|---|---|
| Android | ✅ Supported |
| iOS | ✅ Supported |
| Linux | ✅ Supported |
| macOS | ✅ Supported |
| Windows | ✅ Supported |
| Web | ⚠️ Dart-only (Rust APIs unavailable) |