How to Connect to Bitcoin

How to Access Bitcoin Credentials

📘

Info:

If you haven't configured a node, learn how to deploy one here.

  1. Log into the Blockdaemon app.
  2. Select Dedicated Nodes from the sidebar menu
  3. Go to the My Nodes tab and select the Bitcoin node you want to connect to.
  4. Navigate to the Connect tab, where you’ll find:
    1. Endpoint URL
    2. Auth String
    3. Auth Token

Please reach out to [email protected] or your Customer Success Manager for support.


1. How to Connect via cURL

curl --location --request POST 'YOUR_ENDPOINT_URL' \
  --header 'X-Auth-Token: YOUR_AUTH_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{
    "method": "RPC_METHOD",
    "params": [],
    "id": 1,
    "jsonrpc": "2.0"
  }'

2. How to Connect via Python

The following describes how to run a simple Python application that returns info on the Bitcoin server.

  1. Create a Python script called bitcoin_rpc.py.
import requests
from requests.auth import HTTPBasicAuth

auth_token = (
    "<YOUR_AUTH_TOKEN"  # Replace with your node's auth token
)
rpc_url = "https://<YOUR_NODE_URL>"  # Replace with your node URL

payload = {
    "jsonrpc": "2.0",
    "id": "curltest",
    "method": "getblockchaininfo",  # Replace with your desired RPC method
    "params": [],
}

headers = {"Content-Type": "application/json", "X-Auth-Token": auth_token}
response = requests.post(
    rpc_url,
    json=payload,
    headers=headers,
)

if response.status_code == 200:
    print(response.json())
else:
    print(f"Error: {response.status_code}, {response.text}")
  1. Run the script.
python3 bitcoin_rpc.py

3. How to Connect via ZMQ

Blockdaemon Bitcoin nodes support ZMQ, a messaging system that lets applications subscribe to real-time events like new transactions or blocks. This guide shows you how to use a Python script to display new Bitcoin transactions and their total output value.

  1. Install the zmq library to listen for Bitcoin events.
pip3 install zmq
  1. Install the Bitcoin library to parse raw Bitcoin transactions.
pip3 install bitcoin
  1. Copy the code below into a bitcoin_zmq.py file:
import binascii
import sys
import zmq
import bitcoin
import pprint
 
context = zmq.Context()
socket = context.socket(zmq.SUB)
 
# Connect to ZMQ - this port must be tunneled to the Blockdaemon node using SSH
socket.connect("tcp://localhost:28332")
# Subscribe to all new raw transactions
socket.setsockopt_string(zmq.SUBSCRIBE, "rawtx")
 
# Loop until the user presses CTRL+c
while True:
    # Wait for the next raw transaction
    msg = socket.recv_multipart()
    topic = msg[0]
    body = msg[1]
 
    # Convert the binary transaction into a simple dict
    tx = bitcoin.deserialize(body)
 
    # Calculate the total value of all outputs
    total_value = 0
    for out in tx['outs']:
        total_value += out['value']
 
    # Print the result
    print("")
    print("New transaction: {}".format(bitcoin.txhash(body)))
    print("Total value of all outputs: {} BTC".format(total_value / 100000000.0))
  1. Create a tunnel to the ZMQ port on your Blockdaemon node.
ssh -i [YOUR_SSH_KEY] -L 28332:localhost:28332 blockdaemon@[NODE_IP]
  1. Start the Python application.
python3 bitcoin_zmq.py

📘

Note

Please note that this application lists all transactions even before they are mined. Some transactions may be invalid.

👋 Need Help?

Contact us through email or our support page for any issues, bugs, or assistance you may need.