Skip to main content

Recommended: JavaScript SDK for React Native

While this SDK is still supported, we recommend using newer JavaScript SDK, which is optimized for React Native, but also comes with a host of other benefits.
For flows that need more control than sendBitcoin — for example, inspecting outputs before signing, batching multiple PSBTs, or broadcasting a transaction signed offline — use the lower-level PSBT methods on dynamicClient.bitcoin.

Build, sign, broadcast (three-step)

React Native
signPsbt returns a base64-encoded signed PSBT. Some wallets return a fully-finalized PSBT that can be extracted into a raw transaction; others return an intermediate PSBT that still needs finalization. If your application performs that step itself, finalize the PSBT before passing it to sendRawTransaction.

Sign with explicit signature requests

For inscriptions, RBF, or custom sighashes, pass a structured request to signPsbt with explicit signature entries:
React Native
allowedSighash lists the sighash flags the wallet is allowed to use. signature describes per-address signing intent — useful when the PSBT references multiple inputs and you only want to sign a subset.

Sign multiple PSBTs in one prompt

Some marketplaces and inscription flows produce several PSBTs that the user should approve together. signPsbts (plural) accepts a batch:
React Native
This shows a single confirmation in the WebView for the whole batch (where the underlying connector supports it; otherwise the SDK prompts sequentially).

Broadcast a pre-signed transaction

If your app receives a fully-signed transaction hex from elsewhere (cold signer, partner backend, hardware wallet flow), broadcast it directly:
React Native
The wallet’s network determines which mempool the broadcast targets — make sure the signed transaction matches.

Address types: payment vs ordinals

Bitcoin connectors typically maintain two addresses per wallet — one for plain BTC payments and one for ordinals/inscriptions. Methods that take an addressType ('payment' | 'ordinals') let you choose; the default is payment. PSBTs that move ordinals should be built against the ordinals address and signed with addressType: 'ordinals' or by providing an explicit signature[].address matching that address.
Last modified on July 24, 2026