BitcoinMethods

generateBlock

The generateBlock method allows you to mine a block with a set of ordered transactions immediately to a specified address or descriptor before the RPC call returns. This is a powerful tool for deve...

generateBlock

Overview

The 'generateBlock' method allows you to mine a block with a set of ordered transactions immediately to a specified address or descriptor before the RPC call returns. This is a powerful tool for developers looking to integrate Bitcoin mining functionalities in their applications.

Request

shell

wget --no-check-certificate --quiet \
  --method POST \
  --timeout=0 \
  --header 'Content-Type: application/json' \
  --header 'accept: application/json' \
  --header 'X-CoinAPI-Key: 4303fb63-adec-42dc-b571-74bc2f2a5167' \
  --body-data '{"jsonrpc":"2.0","id":1,"method":"generateBlock","params": [ ]}
' \
   'https://bitcoin-mainnet.node.coinapi.io'

csharp

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://bitcoin-mainnet.node.coinapi.io");
request.Headers.Add("x-coinapi-key", "73034021-THIS-IS-SAMPLE-KEY");
request.Headers.Add("accept", "application/json");
var content = new StringContent("{\"jsonrpc\":\"2.0\",\"method\":\"generateBlock\",\"params\": [],\"id\":1}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

php

<?php
$client = new Client();
$headers = [
  'x-coinapi-key' => '73034021-THIS-IS-SAMPLE-KEY',
  'Content-Type' => 'application/json',
  'accept' => 'application/json'
];
$body = '{
  "jsonrpc": "2.0",
  "method": "generateBlock",
  "params": [],
  "id": 1
}';
$request = new Request('POST', 'https://bitcoin-mainnet.node.coinapi.io', $headers, $body);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
?>

python

import requests
import json

url = "https://bitcoin-mainnet.node.coinapi.io"

payload = json.dumps({
  "jsonrpc": "2.0",
  "method": "generateBlock",
  "params": [],
  "id": 1
})
headers = {
  'x-coinapi-key': '73034021-THIS-IS-SAMPLE-KEY',
  'Content-Type': 'application/json',
  'accept': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

javascript

var settings = {
  "url": "https://bitcoin-mainnet.node.coinapi.io",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "x-coinapi-key": "4303fb63-adec-42dc-b571-74bc2f2a5167",
    "Content-Type": "application/json",
    "accept": "application/json"
  },
  "data": JSON.stringify({
    "jsonrpc": "2.0",
    "method": "generateBlock",
    "params": [],
    "id": 1
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

go

package main

package main

import (
  "fmt"
  "strings"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://bitcoin-mainnet.node.coinapi.io"
  method := "POST"

  payload := strings.NewReader(`{"jsonrpc":"2.0","method":"generateBlock","params": [],"id":1}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("x-coinapi-key", "73034021-THIS-IS-SAMPLE-KEY")
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("accept", "application/json")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}

ruby

require "uri"
require "json"
require "net/http"

url = URI("https://bitcoin-mainnet.node.coinapi.io")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-coinapi-key"] = "73034021-THIS-IS-SAMPLE-KEY"
request["Content-Type"] = "application/json"
request["accept"] = "application/json"
request.body = JSON.dump({
  "jsonrpc": "2.0",
  "method": "generateBlock",
  "params": [],
  "id": 1
})

response = https.request(request)
puts response.read_body

java

OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n  \"jsonrpc\": \"1.0\",\r\n  \"id\": \"1\",\r\n  \"method\": \"generateBlock\",\r\n  \"params\": []\r\n}\r\n");
Request request = new Request.Builder()
  .url("https://bitcoin-mainnet.node.coinapi.io")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("accept", "application/json")
  .addHeader("X-CoinAPI-Key", "73034021-THIS-IS-SAMPLE-KEY")
  .build();
Response response = client.newCall(request).execute();

Request Parameters

  • OUTPUT (Argument #1): The address or descriptor where the newly generated bitcoins will be sent to. This parameter is required.
  • TRANSACTIONS (Argument #2): A JSON array containing hex strings which are either transaction IDs or raw transactions. Transaction IDs must reference transactions currently in the mempool. All transactions must be valid and in the correct order, otherwise, the block will be rejected. This parameter is required.

Response

  • hash: A string representing the hash of the generated block.
Service StatusGitHub SDK