Skip to main content

Utility RPC Methods

Utility RPCs provide various helper functions including address validation, message signing, descriptor utilities, and fee estimation.

Address Validation

validateaddress

Validates a Bitcoin address and returns information about it.
boolean
Whether address is valid
string
The validated bitcoin address
string
Hex-encoded scriptPubKey
boolean
Whether address is a script address
boolean
Whether address is a witness address
number
Witness version (0 for P2WPKH/P2WSH, 1 for P2TR)
string
Hex-encoded witness program
This RPC only validates the address format. For wallet-specific information (like ownership), use the wallet’s getaddressinfo RPC.

Message Signing

signmessagewithprivkey

Signs a message with a private key.
string
Base64-encoded signature
Never expose private keys. This RPC is primarily for testing. For wallet-managed keys, use the wallet’s signmessage RPC.

verifymessage

Verifies a signed message.
boolean
Whether signature is valid

Descriptor Utilities

getdescriptorinfo

Analyzes a descriptor and returns information about it.
string
Canonical descriptor with computed checksum
string
Checksum for the descriptor
boolean
Whether descriptor is ranged
boolean
Whether descriptor is solvable
boolean
Whether descriptor has private keys

deriveaddresses

Derives addresses from a descriptor.
array
Array of derived Bitcoin addresses

Fee Estimation

estimatesmartfee

Estimates the fee rate needed for confirmation within target blocks.
number
Estimated fee rate in BTC/kvB
number
Block number where estimate was found
array
Array of error messages (if any)
Fee estimation requires the node to have observed sufficient transaction history. New nodes may not have enough data for accurate estimates.

Data Encoding

createrawtransaction

Creates a raw transaction (hex-encoded).
string
Hex-encoded raw transaction

decoderawtransaction

Decodes a raw transaction to JSON.
Returns detailed transaction object with all inputs, outputs, and metadata.

decodescript

Decodes a hex-encoded script.
string
Script assembly representation
string
Script type (e.g., pubkeyhash, scripthash, witness_v0_keyhash)
number
Required signatures (deprecated)
array
Array of bitcoin addresses (deprecated)
string
P2SH address for this script
object
Segwit-specific information

PSBT Utilities

decodepsbt

Decodes a PSBT (Partially Signed Bitcoin Transaction) to JSON.
Returns detailed PSBT structure including:
  • Transaction details
  • Input metadata (UTXOs, signatures, derivation paths)
  • Output metadata
  • Unknown fields

combinepsbt

Combines multiple PSBTs into one.
string
Combined PSBT (base64)

finalizepsbt

Finalizes a PSBT if possible.
string
Base64-encoded PSBT (if not extracted or not complete)
string
Hex-encoded network transaction (if complete and extracted)
boolean
Whether transaction is complete

analyzepsbt

Analyzes a PSBT and provides information about what is missing.
array
Analysis of each input (missing signatures, pubkeys, etc.)
number
Estimated virtual size of final transaction
number
Estimated feerate (BTC/kvB)
number
Transaction fee in BTC
string
Role of next signer: signer, finalizer, extractor

Miscellaneous

getindexinfo

Returns status of optional indices.
boolean
Whether index is synced to chain tip
number
Height index is synced to

logging

Gets and sets logging configuration.
Available log categories:
  • net: Network messages
  • tor: Tor connection info
  • mempool: Mempool operations
  • http: HTTP server
  • bench: Benchmarking
  • zmq: ZMQ notifications
  • walletdb: Wallet database operations
  • rpc: RPC calls
  • estimatefee: Fee estimation
  • addrman: Address manager
  • selectcoins: Coin selection
  • validation: Block/transaction validation
  • And more…

uptime

Returns the total uptime of the server in seconds.
number
Server uptime in seconds

echo

Echoes back input arguments (for testing).