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
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"
}'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);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
jsonrpc
string
JSON-RPC protocol version ("2.0")
id
string
Request identifier matching the request
result
object
PSBT analysis object
Result Object
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
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?