from secp256k1 import PublicKey from hashlib import sha256 tx = ( "01000000018dd4f5fbd5e980fc02f35c6ce145935b11e284605bf599a13c6d41" + "5db55d07a1000000008b4830450221009908144ca6539e09512b9295c8a27050" + "d478fbb96f8addbc3d075544dc41328702201aa528be2b907d316d2da068dd9e" + "b1e23243d97e444d59290d2fddf25269ee0e0141042e930f39ba62c6534ee98e" + "d20ca98959d34aa9e057cda01cfd422c6bab3667b76426529382c23f42b9b08d" + "7832d4fee1d6b437a8526e59667ce9c4e9dcebcabbffffffff0200719a818600" + "00001976a914df1bd49a6c9e34dfa8631f2c54cf39986027501b88ac009f0a53" + "62000000434104cd5e9726e6afeae357b1806be25a4c3d3811775835d235417e" + "a746b7db9eeab33cf01674b944c64561ce3388fa1abd0fa88b06c44ce81e2234" + "aa70fe578d455dac00000000" ).decode("hex") scriptPubKey = ( "1976a91446af3fb481837fadbb421727f9959c2d32a3682988ac" ).decode("hex") sig = tx[0x2b:0x2b+0x47] pub = tx[0x74:0x74+0x41] hashType = tx[0x72] tx = tx[:0x29] + scriptPubKey + tx[0xb5:] + hashType + "\x00\x00\x00" hash = sha256(sha256(tx).digest()).digest() pub = PublicKey(pub, raw=True) sig = pub.ecdsa_deserialize(sig) print pub.ecdsa_verify(hash, sig, raw=True)