## The second param of listsinceblock

From [issue 8752](https://github.com/bitcoin/bitcoin/issues/8752#issuecomment-247988691)

> The second parameter (target confirmation) is quite strange and should probably be better > documented in the RPC help of listsinceblock (check original comment: #199 (comment))

From the actual docs here is it is:

> target-confirmations:    (numeric, optional) The confirmations required, must be 1 or more

However, that's misleading at best. I've seen at least one project thinking that `target-confirmations` means "filter to only show transactions of n target-confirmations". It's a weird param but I'd document it as

> target-confirmations: (numeric, optional) Return the hash of the block that has target-confirmations of confirmations, for use in a further call to listsinceblock
## Transactions confirmations

Says:

> "confirmations": n,       (numeric) The number of confirmations for the transaction. Available for 'send' and 'receive' category of transactions.

It should also say when it's < 0, it means the transaction conflicted that many blocks ago
## bip125-replaceable

There's an undocumented field of transactions "bip125-replaceable" which I believe has three possibilities "yes" "no" and "unknown"  (under what circumstances it says unknown, should also be documented)

target_confirms = request.params[1].get_int();
        if (target_confirms < 1)
            throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter");
    }
    if(request.params.size() > 2)
        if(request.params[2].get_bool())
            filter = filter | ISMINE_WATCH_ONLY;
    int depth = pindex ? (1 + chainActive.Height() - pindex->nHeight) : -1;
    UniValue transactions(UniValue::VARR);
    for (map<uint256, CWalletTx>::iterator it = pwalletMain->mapWallet.begin(); it != pwalletMain->mapWallet.end(); it++)
    {
        CWalletTx tx = (*it).second;
        if (depth == -1 || tx.GetDepthInMainChain() < depth)
            ListTransactions(tx, "*", 0, true, transactions, filter);
    }
    CBlockIndex *pblockLast = chainActive[chainActive.Height() + 1 - target_confirms];
    uint256 lastblock = pblockLast ? pblockLast->GetBlockHash() : uint256();
    UniValue ret(UniValue::VOBJ);
    ret.push_back(Pair("transactions", transactions));
    ret.push_back(Pair("lastblock", lastblock.GetHex()));
    return ret;
}
UniValue gettransaction(const JSONRPCRequest& request)
{
    if (!EnsureWalletIsAvailable(request.fHelp))
        return NullUniValue;
    if (request.fHelp || request.params.size() < 1 || request.params.size() > 2)
        throw runtime_error(
            "gettransaction \"txid\" ( includeWatchonly )\n"
            "\nGet detailed information about in-wallet transaction <txid>\n"