For the complete documentation index, see llms.txt. This page is also available as Markdown.

analyzepsbt - Bitcoin

Example code for the analyzepsbt JSON-RPC method. Complete guide on how to use analyzepsbt JSON-RPC in GetBlock Web3 documentation.

This method analyzes a PSBT and reports what is missing for each input, the next role in the signing workflow, and the estimated fee and virtual size.

Parameters

Parameter
Type
Required
Description

psbt

string

Yes

The base64-encoded PSBT

Request

curl --location --request POST 'https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/' \
--header 'Content-Type: application/json' \
--data-raw '{
    "jsonrpc": "2.0",
    "method": "analyzepsbt",
    "params": ["cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFPUKlXhpm/rZ4JBKZ2n3nQ4jCMYBiKz1AAAAAA=="],
    "id": "getblock.io"
}'
example.js
const axios = require('axios');

const response = await axios.post('https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/', {
    jsonrpc: '2.0',
    method: 'analyzepsbt',
    params: ["cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFPUKlXhpm/rZ4JBKZ2n3nQ4jCMYBiKz1AAAAAA=="],
    id: 'getblock.io'
}, {
    headers: { 'Content-Type': 'application/json' }
});

console.log(response.data.result);
example.py
import requests

response = requests.post(
    'https://shared.eu-central-1.getblock.io/<ACCESS-TOKEN>/',
    headers={'Content-Type': 'application/json'},
    json={
        'jsonrpc': '2.0',
        'method': 'analyzepsbt',
        'params': ["cHNidP8BAHUCAAAAASaBcTce3/KF6Tet7qSze3gADAVmy7OtZGQXE8pCFxv2AAAAAAD+////AtPf9QUAAAAAGXapFPUKlXhpm/rZ4JBKZ2n3nQ4jCMYBiKz1AAAAAA=="],
        'id': 'getblock.io'
    }
)

print(response.json())

Response

{
    "jsonrpc": "2.0",
    "id": "getblock.io",
    "result": {
        "inputs": [
            {
                "has_utxo": true,
                "is_final": false,
                "missing": {
                    "signatures": [
                        "bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq"
                    ]
                },
                "next": "signer"
            }
        ],
        "estimated_vsize": 141,
        "estimated_feerate": 0.0002,
        "fee": 2.82e-05,
        "next": "signer"
    }
}

Response Parameters

Parameter
Type
Description

jsonrpc

string

JSON-RPC protocol version ("2.0")

id

string

Request identifier matching the request

result

object

PSBT analysis object

Result Object

Field
Type
Description

inputs

array

Per-input analysis with what is missing

estimated_vsize

number

Estimated virtual size once complete

estimated_feerate

number

Estimated fee rate in BTC/kvB

next

string

The next role in the workflow (updater, signer, finalizer, extractor)

Use Cases

  • Workflow Routing: Determine the next signing step

  • Completeness Checks: See what each input still needs

  • Fee Preview: Estimate the fee before finalizing

  • Wallet UX: Guide users through PSBT signing

Error Handling

Error Code
Message
Description

403

Forbidden

Missing or invalid ACCESS-TOKEN

-22

Decode failed

The transaction or script could not be decoded

-8

Invalid parameter

A parameter is out of range or malformed

-32602

Invalid params

A parameter is missing or has the wrong type

Last updated

Was this helpful?