Skip to main content
The @utexo/rgb-sdk-rn package is the React Native SDK for iOS and Android applications built on the Utexo stack. Unlike the Node.js and Web SDKs, it embeds a full RGB Lightning Node (RLN) directly on-device — a native LDK-based node that runs locally without requiring a remote node or server.
This SDK is designed for React Native (iOS and Android) only. For Node.js use @utexo/rgb-sdk; for browser environments use @utexo/rgb-sdk-web.

What You Can Do

  • Run a full Lightning node on-device (iOS and Android) via RLN
  • Open Lightning channels and send/receive BTC or RGB asset payments over Lightning
  • Issue, transfer, and manage RGB assets (NIA, CFA, IFA, UDA)
  • Manage UTXOs and perform on-chain BTC sends
  • Use a hardware-wallet-style external signer or a simple password signer
  • Restart the node on the same UTEXOWallet instance without recreating it

Installation

iOS Setup

The native framework (RGBLightningNode.xcframework) is downloaded and extracted automatically during postinstall.

Android Setup

Requires minSdkVersion 24. The native binding (com.utexo:rgb-lightning-node-android) is published to Maven Central and resolved by Gradle automatically — no extra repository configuration needed.

Primary Class: UTEXOWallet

UTEXOWallet is the main entry point. It implements IWalletManager and IUTEXOProtocol, owns the on-device RLN node lifecycle, and abstracts both signer types behind a single consistent API.

Construction

UTEXOWalletNodeParams

Signers

A signer encapsulates how the private key material is provided to the node. Pass one to the UTEXOWallet constructor. On the first call to init(), the wallet calls initNode on the signer; on every subsequent unlock() or reinit() it calls unlockNode automatically. Uses a native hardware-style external signer. Keys never leave the device key store. Accepts a mnemonic string or raw BIP39 seed bytes.

PasswordRLNSigner

Classic password-based authentication. The mnemonic is only needed for the first-time init() call (written to disk), then cleared from memory.

Lifecycle

A UTEXOWallet goes through four phases: initialize() is a backward-compatible alias for init(). reinit(params) combines shutdown() + init() + unlock() in one call for restarts on the same instance.

IRLNUnlockParams

Utexo Network Faucet — To get test BTC and RGB assets on the Utexo network, use the Telegram bot @Utexo_RLN_bot.Limited to 2 requests per 24 hours per user.

Method Reference

Balance & Address

UTXO Management

Call syncWallet() after funding and again after createUtxos() to update chain state before RGB operations.

RGB Assets

BTC Sends

Transactions & Transfers

Fees & Backup

Lightning

On-chain RGB

Node Info

Peers

Channels

Payments

Utility

Core Workflows

First-Time Wallet Init

App Restart (Existing Node)

Issue an RGB Asset

Open a Lightning Channel

Lightning Payment

RGB Asset Payment over Lightning

Full Cleanup

Standalone Helpers

RLN Manager (Advanced)

RLNManager and createRLNManager expose the raw RLN node API for advanced use cases requiring full node lifecycle control without the UTEXOWallet wrapper. All methods map 1:1 to the underlying native module calls.

Demo App

A full working demo is available at rgb-sdk-rn-playground. It demonstrates the complete UTEXOWallet lifecycle, both signer types, node restart via reinit(), and raw RLNManager flows for comparison.

Further Reading

  • SDK Overview — SDK family, key concepts, and execution model.
  • Architecture — The Bitcoin + RGB + Lightning stack the SDK operates on.