Skip to main content

Overview

BitcoinModule provides native Bitcoin operations: message signing, PSBT signing, sending Bitcoin, building PSBTs, broadcasting raw transactions, and balance queries. Access it via DynamicSDK.instance().bitcoin.

Prerequisites

Get a Bitcoin Wallet

There are two paths to a Bitcoin wallet: filter the user’s existing wallets, or create a new one explicitly.

Filter existing wallets

If Bitcoin is enabled and the user has a Bitcoin wallet (created automatically at signup), find it via userWallets:

Create a new Bitcoin wallet

Call createWallet with EmbeddedWalletChain.btc:
Bitcoin wallets are derived as Native SegWit (bc1q…) by default. Mainnet is the only network supported today.

What is a satoshi?

A satoshi is the smallest unit of Bitcoin — 1 BTC = 100,000,000 satoshis. All amount fields in the Bitcoin module (sendBitcoin, buildPsbt, getBalance) are expressed in satoshis, not BTC.

What is a PSBT?

A Partially Signed Bitcoin Transaction (PSBT) is a standard for transactions that have not yet been fully signed. It lets different participants with different keys sign a transaction without sharing private keys, enabling safer multi-step or multi-sig flows.

Get Balance

Query the Bitcoin balance (in satoshis) for a wallet:

Sign a Message

Sign a message using ECDSA (default) or BIP-322:
For BIP-322 signing, pass the protocol and optional addressType:

Send Bitcoin

Send BTC to a recipient. Returns the transaction ID.

Build a PSBT

Build an unsigned PSBT (base64-encoded) you can sign later or hand off to another signer:

Sign PSBTs

Sign a single PSBT, or batch-sign multiple PSBTs:

Send a Raw Transaction

Broadcast a pre-signed transaction in hex form:

API Reference

Next Steps

Last modified on July 22, 2026