BitcoinMethods

decodePSBT

The decodePSBT method is utilized to decode a PSBT (Partially Signed Bitcoin Transaction) into a human-readable format, providing detailed information about the transaction in JSON format. This met...

decodePSBT

Overview

The 'decodePSBT' method is utilized to decode a PSBT (Partially Signed Bitcoin Transaction) into a human-readable format, providing detailed information about the transaction in JSON format. This method is essential for developers and users who want to understand the transaction details before it is broadcasted to the network.

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":"decodePSBT","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("accept", "application/json");
request.Headers.Add("X-CoinAPI-Key", "73034021-THIS-IS-SAMPLE-KEY");
var content = new StringContent("{\r\n  \"jsonrpc\": \"1.0\",\r\n  \"id\": \"1\",\r\n  \"method\": \"decodePSBT\",\r\n  \"params\": []\r\n}\r\n", 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 = [
  'Content-Type' => 'application/json',
  'accept' => 'application/json',
  'X-CoinAPI-Key' => '73034021-THIS-IS-SAMPLE-KEY'
];
$body = '{
  "jsonrpc": "1.0",
  "id": "1",
  "method": "decodePSBT",
  "params": []
}';
$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": "1.0",
  "id": "1",
  "method": "decodePSBT",
  "params": []
})
headers = {
  'Content-Type': 'application/json',
  'accept': 'application/json',
  'X-CoinAPI-Key': '73034021-THIS-IS-SAMPLE-KEY'
}

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": {
    "Content-Type": "application/json",
    "accept": "application/json",
    "X-CoinAPI-Key": "73034021-THIS-IS-SAMPLE-KEY"
  },
  "data": JSON.stringify({
    "jsonrpc": "1.0",
    "id": "1",
    "method": "decodePSBT",
    "params": []
  }),
};

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

go

package main

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

func main() {

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

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

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

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

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["Content-Type"] = "application/json"
request["accept"] = "application/json"
request["X-CoinAPI-Key"] = "73034021-THIS-IS-SAMPLE-KEY"
request.body = JSON.dump({
"jsonrpc": "1.0",
"id": "1",
"method": "decodePSBT",
"params": []
})

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\": \"decodePSBT\",\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

  • psbt (string): The PSBT string that needs to be decoded.

Response

{
  "tx": {
    "decoded network-serialized unsigned transaction": "..."
  },
  "unknown": {
    "key": "hex",
    "value": "..."
  },
  "inputs": [
    {
      "non_witness_utxo": {
        "decoded network transaction for non-witness UTXOs": "..."
      },
      "witness_utxo": {
        "amount": "n",
        "scriptPubKey": {
          "asm": "str",
          "hex": "hex",
          "type": "str",
          "address": "str"
        }
      },
      "partial_signatures": {
        "pubkey": "str",
        "signature": "..."
      },
      "sighash": "str",
      "redeem_script": {
        "asm": "str",
        "hex": "hex",
        "type": "str"
      },
      "witness_script": {
        "asm": "str",
        "hex": "hex",
        "type": "str"
      },
      "bip32_derivs": [
        {
          "master_fingerprint": "str",
          "path": "str"
        }
      ],
      "final_scriptsig": {
        "asm": "str",
        "hex": "str"
      },
      "final_scriptwitness": ["hex"],
      "unknown": {
        "key": "hex",
        "value": "..."
      }
    }
  ],
  "outputs": [
    {
      "redeem_script": {
        "asm": "str",
        "hex": "hex",
        "type": "str"
      },
      "witness_script": {
        "asm": "str",
        "hex": "hex",
        "type": "str"
      },
      "bip32_derivs": [
        {
          "pubkey": "str",
          "master_fingerprint": "str",
          "path": "str"
        }
      ],
      "unknown": {
        "key": "hex",
        "value": "..."
      }
    }
  ],
  "fee": "n"
}

Errors

  • Invalid Request: This error is returned if the request format is incorrect.
  • Internal Error: This error is returned if there's a server-side issue processing the request.

Rate Limits

Please note that there are rate limits applied to the API to ensure fair usage. Free-tier users are limited to 100 requests per day, while premium users can make up to 1000 or more requests per day.

Support

If you encounter any issues or have further questions regarding the decodePSBT method, please contact our support team at [email protected].

Service StatusGitHub SDK