Supported Bitcoin Custom Methods

This guide provides information on Blockdaemon-specific JSON-RPC methods for interacting with Bitcoin. These methods extend standard JSON-RPC methods with functionalities such as balance queries and transaction handling.

Balance API

bd_getbalances

This method returns returns the confirmed balance for an address.

Request Example

{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "bd_getbalances",
    "params": [
        "bc1quhruqrghgcca950rvhtrg7cpd7u8k6svpzgzmrjy8xyukacl5lkq0r8l2d" //address
    ]
}

Request Parameter

FieldTypeDescription
Address(es)String(required) The main account address(es).

Response Example

{
    "id": "curltest",
    "result": {
        "mine": {
            "trusted": "4535.02985542",
            "untrusted_pending": "4541.38229464"
        }
    }
}

Response Object

FieldTypeDescription
mineObjectBalances from outputs that the wallet can sign.
trustedIntTrusted balance (outputs created by the wallet or confirmed outputs)
untrusted_pendingIntUntrusted pending balance (outputs created by others that are in the mempool)

bd_getbalance

This method returns both the mined and pending balances for an address.

Request Example

{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "bd_getbalance",
    "params": [
        "bc1quhruqrghgcca950rvhtrg7cpd7u8k6svpzgzmrjy8xyukacl5lkq0r8l2d", true
    ]
}

Request Parameters

FieldTypeDescription
AddressString(required) The main account address.
MempoolBoolean(optional) Indicates whether the balance should include mempool transactions. Defaults to false.

Response Example

{
    "id": "curltest",
    "result": "4535.02985542"
}

Response Object

FieldTypeDescription
resultStringTotal trusted balance in BTC.

Fees API

bd_estimatefee

This method returns an estimated fee for a transaction.

Request Example

{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "bd_estimatefee",
    "params": ["sat/vb"]
}

Request Parameter

FieldTypeDescription
UnitString(optional) The unit of the fee rate, either btc/kvb or sat/vb. Defaults to btc/kvb. The unit is case-insensitive.

Response Example

{
    "id": "1",
    "result": {
        "fast_feerate": "28",
        "medium_feerate": "25",
        "slow_feerate": "17",
        "unit": "sat/vb"
    }
}

Response Object

FieldTypeDescription
fast_feerateIntFee rate (BTC/byte) for fastest confirmation.
medium_feerateIntFee rate for medium-speed confirmation.
slow_feerateIntFee rate for slower confirmation.
unitStringThe unit of the fee rate, either btc/kvb or sat/vb. Defaults to btc/kvb.

Transaction API

bd_listtransactions

This method lists transactions associated with an address within a specified block range.

Request Example

{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "bd_listtransactions",
    "params": [
        "bc1q84e0f2qswgzth4tavedrv35f6fv9669ljww2ww", //address
        {
            "block_start": 850000, 
            "block_end": 862810,   
            "type": "all",       
            "verbose": false,   
            "page_size": 20,
            "page_token": "OTIyMzM3MjAzNjg1MzkxMzY5NCM1YmIyZWY3MjExYTgyNjE0ODkxZDAyNzQzYzUzYjZkNzU5ZTE2MmU2MTFiNGQxZjljMDYyOTM3YzdjMzdkNjA3",
            "order": "asc" 
        }
    ]
}

Request Parameter

FieldTypeDescription
AddressString(required) Address to retrieve transactions for.
block_startInt(optional) Block height to start querying from.
block_endInt(optional) Block height to stop querying.
typeString(optional) Transaction type: all, inputs, or outputs. Default: all.
verboseBoolean(optional) Whether to return detailed transaction information. Default: false.
page_sizeInt(optional) Number of results per page.
page_tokenString(optional) Token for paginated results. You can use this token in the request payload to get the next result.
orderString(optional) Sorting order: asc or desc. Default: desc.

Response Example

{
    "id": "curltest",
    "result": {
        "transactions": [
            "74980dd4049324587471e266ff144f0d75d81f0f44767deaf6babdc9b8703c57",
            "08ba4c433016377851f2e5b4fdad14aa715cab8b2d6393828e1539775e5aabb2",
            "f594f9fbd52014308544030cdf154236b65f24b5ab832e5447fff1509decca9d"
        ],
        "page_token": "OTIyMzM3MjAzNjg1MzkxNzA2NSNmNTk0ZjlmYmQ1MjAxNDMwODU0NDAzMGNkZjE1NDIzNmI2NWYyNGI1YWI4MzJlNTQ0N2ZmZjE1MDlkZWNjYTlk"
    }
}

Response Object

FieldTypeDescription
transactionsArray of stringsArray of transaction IDs.
page_tokenStringToken for paginated results. You can use this token in the request payload to get the next result.

bd_getspendingtx

This method checks if and in which transaction the TXO (transaction output) was spent.

Request Example

{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "bd_getspendingtx",
    "params": [
        "b6127b392bd2e02971d7cdc416f16b9471530ac5fc3fd5cd5554a1093b31005c", 0
    ]
}

Request Parameter

FieldTypeDescription
AddressString(required) The transaction output (TXO) identifier, which includes the transaction hash and index.

Response Example

If the TXO has been spent:

{
    "id": "curltest",
    "result": "d64a943e0c2035b7032c89e73c20ecf1596458fdca002600d8f450cebf69bbb0"
}

If the TXO is unspent or does not exist:

{
    "id": "curltest",
    "result": null
}

bd_listunspent

This method lists unspent transaction outputs (UTXOs) for a given address.

Request Example

{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "bd_listunspent",
    "params": [ 
        "1HA1kDL993bdxvRH9KtrAh91Br4agzCYBt", 
        {
            "include_mempool": true, 
            "page_size": 100, 
            "page_token": "OTIyMzM3MjAzNjg1MzkxMzY5NCM1YmIyZWY3MjExYTgyNjE0ODkxZDAyNzQzYzUzYjZkNzU5ZTE2MmU2MTFiNGQxZjljMDYyOTM3YzdjMzdkNjA3"
        }
    ]
}

Request Parameters

FieldTypeDescription
AddressString | Array of stringsrequired The address(es) to list UTXOs.
include_mempoolBooleanoptional Whether to include UTXOs from the mempool.
page_sizeIntoptional The number of UTXOs to return per page.
page_tokenStringoptional Token for paginated results. You can use this token in the request payload to get the next result.

Response Example


    "id": "curltest",
    "result": {
        "data": [
            {
                "address": "138ky3HqkdEdJFqVqGwTGsQZGTZ2VyJw29",
                "index": 1,
                "mempool": false,
                "value": "0.00094262"
            },
            {
                "address": "13AbC9ufSMBaFeARs2YhAAQyU9dULcDmDp",
                "confirmations": 20957,
                "index": 133,
                "mempool": false,
                "ts": 1715993030,
                "txId": "59cdca9335dc720bcd32750e28a7d0808e483f5444cb3d256e38ca9e928149f8",
                "value": "0.00901766"
            },
           ......
        ],
        "page_token": "do#0000000000000000000000018aed923c250162fe3f058d6af0f3932d9d9aa08c#13gqBKGmRJc3gK7iysnjnK3oDcCcGo9mUH#721dd62c1ec80a604a0b0573092cd01928ed8e21f3c23a354284cdde1c1d47f6#1"
    }
}

Response Object

FieldTypeDescription
addressStringThe address associated with the UTXO.
indexIntThe index of the UTXO in the transaction.
mempoolBooleanIndicates whether the UTXO is in the mempool.
confirmationsIntThe number of confirmations for the UTXO (if confirmed).
tsIntThe timestamp of the transaction (if available).
txIdStringThe transaction ID that created the UTXO.
valueStringThe value of the UTXO in BTC or the respective currency.

Market Data API

bd_marketquote

This method returns the current market price of BTC in a specified fiat currency.

Request Example

{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "bd_marketquote",
    "params": [
        "USD" // currencies
    ]
}

Request Parameter

FiledTypeDescription
CurrenciesArray of strings(required) List of fiat currencies (e.g., USD, EUR, GBP).

Response Example

{
    "id": "curltest",
    "result": {
        "timestamp": 1727795820,
        "unit": "USD",
        "price": "62090.55536814973"
    }
}

Response Object

FieldTypeDescription
timestampIntThe Unix timestamp when the price was retrieved.
unitStringThe fiat currency unit (e.g., USD).
priceStringThe current price of BTC in the specified currency.

Blocks API

bd_getblockheaderbydate

This method returns basic block header information for a specified date

Request Example

{
    "jsonrpc": "1.0",
    "id": "curltest",
    "method": "bd_getblockheaderbydate",
    "params": [
        1725584753 // unix time
    ]
}

Request Parameter

FiledTypeDescription
TimeInt(required) The Unix timestamp for the desired date.

Response Example

{
    "id": "curltest",
    "result": {
        "time": 1725584753,
        "height": 860072,
        "hash": "00000000000000000000e729cfc01f3300341d07f14f2a9aa45eb2a31d2cb9d3"
    }
}

Response Object

FieldTypeDescription
timeIntThe Unix timestamp for the block header.
heightIntThe block height (number).
hashStringThe hash of the block header.