Import
createBtcBuilder
Factory function to create a Bitcoin or Zcash transaction builder.Signature
Parameters
Configuration for the builder.
Returns
A builder instance with methods for UTXO operations, proof generation, and transaction broadcasting.
Example
BtcBuilder
The builder interface returned bycreateBtcBuilder. Provides methods for UTXO selection, withdrawal planning, proof generation, and transaction broadcasting.
buildWithdrawalPlan
Builds a complete withdrawal plan from available UTXOs, selecting inputs and constructing outputs.Signature
Parameters
Available UTXOs to spend from.
Amount to send in satoshis (BTC) or zatoshis (ZEC).
Recipient address.
Address to receive change.
Fee rate in sat/vbyte. Defaults to
1. Ignored for Zcash (uses ZIP-317).Optional overrides for UTXO selection behavior.
Returns
The withdrawal plan with inputs, outputs, and calculated fee.
Example
selectUtxos
Selects UTXOs to cover a target amount plus estimated fees.Signature
Parameters
Available UTXOs with normalized
amount as bigint.Target amount in satoshis/zatoshis.
Selection options (merged with chain-specific defaults).
Returns
Selection result with inputs, totals, fee, and change.
Example
getDepositProof
Generates a deposit proof for verifying a BTC/ZEC deposit on NEAR. Used when finalizing cross-chain transfers.Signature
Parameters
The transaction hash of the deposit.
The output index in the transaction.
Returns
Proof data for on-chain verification.
Example
getMerkleProof
Gets a Merkle proof for transaction inclusion in a block.Signature
Parameters
The transaction hash.
Returns
Merkle proof with block height and position.
Example
addressToScriptPubkey
Converts an address to its hex-encoded scriptPubkey.Signature
Parameters
Bitcoin or Zcash address.
Returns
Hex-encoded scriptPubkey.
Example
broadcastTransaction
Broadcasts a signed transaction to the network.Signature
Parameters
Hex-encoded signed transaction.
Returns
Transaction ID if broadcast succeeds.
Example
getTransactionBytes
Fetches raw transaction bytes for a given transaction hash.Signature
Parameters
The transaction hash.
Returns
Raw transaction bytes.
Example
getNetwork
Returns the Bitcoin network configuration object from@scure/btc-signer.
Signature
Returns
Network configuration for address encoding/decoding.
Example
Fee Calculation
linearFeeCalculator
Creates a fee calculator based on linear transaction size estimation (Bitcoin).Signature
Parameters
Returns
A function
(inputCount: number, outputCount: number) => bigint that calculates fees.Example
zcashFeeCalculator
Creates a fee calculator using the ZIP-317 marginal fee model for Zcash.Signature
Returns
A function that calculates Zcash fees per ZIP-317.
Example
calculateZcashFee
Directly calculates Zcash transaction fee using ZIP-317. ZIP-317 marginal fee model:- Each input or output counts as a “logical action”
- Grace actions = 2 (first 2 actions are free)
- Marginal fee = 5000 zatoshis per action
- Fee =
5000 * max(2, max(inputs, outputs))
Signature
Parameters
Number of transaction inputs.
Number of transaction outputs.
Returns
Fee in zatoshis.
Example
getZcashScript
Converts a Zcash transparent address to its hex-encoded scriptPubkey. Supports:- Mainnet P2PKH (t1…)
- Mainnet P2SH (t3…)
- Testnet P2PKH (tm…)
- Testnet P2SH (t2…)
Signature
Parameters
Zcash transparent address.
Returns
Hex-encoded scriptPubkey.
Example
ZCASH_DUST_THRESHOLD
Dust threshold constant for Zcash transactions (5000 zatoshis).RPC Utilities
UtxoRpcClient
Low-level RPC client for Bitcoin/Zcash nodes. Used internally byBtcBuilder but exported for advanced use cases.
Constructor
Methods
call
Execute a raw JSON-RPC method.getTransaction
Fetch transaction details.getBlock
Fetch block details.buildDepositProof
Build a complete deposit proof.buildMerkleProof
Build a Merkle inclusion proof.Example
buildBitcoinMerkleProof
Builds a Bitcoin-style Merkle proof for transaction inclusion in a block.Signature
Parameters
Array of all transaction IDs in the block (in order).
Transaction ID to generate proof for.
Returns
Example
Types
UTXO
Unspent Transaction Output representation. Re-exported from@omni-bridge/core.
NormalizedUTXO
Normalized UTXO withamount as bigint for internal processing.
BtcWithdrawalPlan
Complete withdrawal plan ready for signing.BtcDepositProof
Proof data for verifying a BTC/ZEC deposit on NEAR.BtcMerkleProof
Merkle inclusion proof for a transaction.FeeCalculator
Function type for calculating transaction fees.LinearFeeParameters
Parameters for the linear fee calculation model.UtxoSelectionOptions
Options for UTXO selection algorithms.UtxoSelectionResult
Result of UTXO selection.UtxoPlanOverrides
Overrides for withdrawal plan generation. Subset ofUtxoSelectionOptions excluding feeCalculator.
BtcBuilderConfig
Configuration forcreateBtcBuilder.
UtxoRpcConfig
Configuration forUtxoRpcClient.