PSBT Dump
Quick program to dump the contents of a PSBT: Partially Signed Bitcoin Transaction (see BIP 174).
Accepts binary or hex-encoded PSBT files, and displays each byte. Parses what it can understand along the way.
NOTE Prior to Nov 20/2019, this program would display the XFP (extended fingerprint) of the derivation paths in the wrong endian.
Usage
# python3 -m pip install --editable .
# pbst_dump data/example.psbt
Requirements
python3pycoinversion 0.80click
(See requirements.txt)
Data
There are a few PSBT files I've collected from the BIP test vectors
and elsewhere in ./data. Don't expect them to be 100% correct or
golden reference or anything like that.
Example Output
% psbt_dump data/worked-7.psbt
976 bytes in PSBT: data/worked-7.psbt
-- HEADER --
psbt 0xff
-- GLOBALS --
key: 00 (GLOBAL_UNSIGNED_TX)
value:
020000000258e87a21b56daf0c23be8e7070456c336f7cbaa5c8757924f545887bb2abdd750000000000ffffffff838d0427d0ec650a68aa46bb0b098aea4422c071b2ca78352a077959d07cea1d0100000000ffffffff0270aaf00800000000160014d85c2b71d0060b09c9886aeb815e50991dda124d00e1f5050000000016001400aea9a2e5f0f876a588df5546e8742d1d87008f00000000 (154 bytes)
Transaction: (2 inputs, 2 outputs, 0 witness)
: txid 82efd652d7ab1197f01a5f4d9a30cb4c68bb79ab6fec58dfa1bf112291d1617b
[in #0 ] (not signed)
from 75ddabb27b8845f5247975c8a5ba7c6f336c4570708ebe230caf6db5217ae858 : 0
[in #1 ] (not signed)
from 1dea7cd05979072a3578cab271c02244ea8a090bbb46aa680a65ecd027048d83 : 1
[out #0 ] tb1qmpwzkuwsqc9snjvgdt4czhjsnywa5yjdzglap9
[out #1 ] tb1qqzh2ngh97ru8dfvgma25d6r595wcwqy06sqc03
-- INPUT #0 --
key: 00 (IN_NON_WITNESS_UTXO)
value:
0200000001aad73931018bd25f84ae400b68848be09db706eac2ac18298babee71ab656f8b0000000048473044022058f6fc7c6a33e1b31548d481c826c015bd30135aad42cd67790dab66d2ad243b02204a1ced2604c6735b6393e5b41691dd78b00f0c5942fb9f751856faa938157dba01feffffff0280f0fa020000000017a9140fb9463421696b82c833af241c78c17ddbde493487d0f20a270100000017a91429ca74f8a08f81999428185c97b5d852e4063f618765000000 (187 bytes)
Transaction: (1 inputs, 2 outputs, 0 witness)
: txid 75ddabb27b8845f5247975c8a5ba7c6f336c4570708ebe230caf6db5217ae858
[in #0 ] (unknown)
[out #0 ] 2MtgN5EvHUm2kNVvqKgqsZ9v2fGH3jCpXVF
[out #1 ] 2Mw4CE6tUQ7Ak9Zf9TKujgzbVjDZqgRbUVP
key: 07 (IN_FINAL_SCRIPTSIG)
value:
00473044022074018ad4180097b873323c0015720b3684cc8123891048e7dbcd9b55ad679c99022073d369b740e3eb53dcefa33823c8070514ca55a7dd9544f157c167913261118c01483045022100f61038b308dc1da865a34852746f015772934208c6d24454393cd99bdf2217770220056e675a675a6d0a02b85b14e5e29074d8a25a9b5760bea2816f661910a006ea01475221029583bf39ae0a609747ad199addd634fa6108559d6c5cd39b4c2183f1ab96e07f2102dab61ff49a14db6a7d02b0cd1fbb78fc4b18312b5b4e54dae4dba2fbfef536d752ae (218 bytes)
-- INPUT #1 --
key: 01 (IN_WITNESS_UTXO)
value:
00c2eb0b0000000017a914b7f5faf40e3d40a5a459b1db3535f2b72fa921e887 (32 bytes)
key: 07 (IN_FINAL_SCRIPTSIG)
value:
2200208c2353173743b595dfb4a07b72ba8e42e3797da74e87fe7d9d7497e3b2028903 (35 bytes)
key: 08 (IN_FINAL_SCRIPTWITNESS)
value:
0400473044022062eb7a556107a7c73f45ac4ab5a1dddf6f7075fb1275969a7f383efff784bcb202200c05dbb7470dbf2f08557dd356c7325c1ed30913e996cd3840945db12228da5f01473044022065f45ba5998b59a27ffe1a7bed016af1f1f90d54b3aa8f7450aa5f56a25103bd02207f724703ad1edb96680b284b56d4ffcb88f7fb759eabbe08aa30f29b851383d20147522103089dc10c7ac6db54f91329af617333db388cead0c231f723379d1b99030b02dc21023add904f3d6dcf59ddb906b0dee23529b7ffb9ed50e5e86151926860221f0e7352ae (218 bytes)
-- OUTPUT #0 --
key: 02 03a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca58771 (OUT_BIP32_DERIVATION, 34 bytes)
value:
d90c6a4f000000800000008004000080 (16 bytes)
Address: 03a9a4c37f5996d3aa25dbac6b570af0650394492942460b354753ed9eeca58771 (33 bytes)
= n1ExfZ1rECtYdzfBHoeYtAWzTURXsdSVkb
HD Path: (m=0x4f6a0cd9)/0'/0'/4'
-- OUTPUT #1 --
key: 02 027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b50051096 (OUT_BIP32_DERIVATION, 34 bytes)
value:
d90c6a4f000000800000008005000080 (16 bytes)
Address: 027f6399757d2eff55a136ad02c684b1838b6556e5f1b6b34282a94b6b50051096 (33 bytes)
= mfaZXpvjGrisYP1rW2wL2YBHJt22sCoX53
HD Path: (m=0x4f6a0cd9)/0'/0'/5'
-- EXPECT EOF --
-- ACTUAL EOF --
Metadata
Release files for psbt-dump 1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| psbt_dump-1.5.tar.gz | 4.6 kB | Without provenance | Details for psbt_dump-1.5.tar.gz |
Release files / psbt_dump-1.5.tar.gz
| Download URL | psbt_dump-1.5.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c8d9e3d211e9e42784326f26d5b289c13ca91506655f0fa309c4c68f58fe5711
|
|
BLAKE2b-256 checksum How to use checksums |
63abf81da0cdfa3d54bcd42929ef37d0a5099e448e5317ec4d4783e087a6f017
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.0.1 requests-toolbelt/0.8.0 tqdm/4.19.8 CPython/2.7.16
|
Security for psbt-dump 1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.