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
- csharp
- php
- python
- javascript
- go
- ruby
- java
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'
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
$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();
?>
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)
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);
});
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))
}
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
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].
Was this section helpful?