Skip to content

Instantly share code, notes, and snippets.

@matthieu
Last active June 15, 2023 06:45
  • Star 39 You must be signed in to star a gist
  • Fork 25 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save matthieu/b07c5ba27bc99188a15f to your computer and use it in GitHub Desktop.
Create and send a Bitcoin transaction using the BlockCypher Transaction API
# In this example we're sending some test bitcoins from an address we control to a brand new test
# address. We'll be sending the coins using the following address, public and private keys (please
# don't abuse).
# address : mtWg6ccLiZWw2Et7E5UqmHsYgrAi5wqiov
# public : 03bb318b00de944086fad67ab78a832eb1bf26916053ecd3b14a3f48f9fbe0821f
# private : 1af97b1f428ac89b7d35323ea7a68aba8cad178a04eddbbf591f65671bae48a2
# 1. generate a one-shot dummy address we're going to send money to
$ curl -X POST http://api.blockcypher.com/v1/btc/test3/addrs
{
"private": "19fe93f06878926cc3a75d092621397e958ee82c362cdf61f4eb2d6a12917577",
"public": "03c3c99511cd377c8f24c23a1cfbc1145fbdbddc93de0d70792dfa13ef08e7dd4f",
"address": "mzqUStzz6VqByVVMndXNFkpnmc9y8XeJ7o"
}
# 2. build the transaction and save the full output to send.json
$ curl -d '{"inputs": [{"addresses": ["mtWg6ccLiZWw2Et7E5UqmHsYgrAi5wqiov"]}], "outputs": [{"addresses": ["mzqUStzz6VqByVVMndXNFkpnmc9y8XeJ7o"], "value": 25000}]}' http://api.blockcypher.com/v1/btc/test3/txs/new > send.json
# 3. we generate a signature using the above private key and the data provided in the "tosign"
# property of send.json. To do so we use the utility at https://github.com/blockcypher/btcutils/tree/master/signer
# (go build to get binary)
$ ./signer e6e59c20e6b7b720ac5e61e82e7eea66ce8b8aadc8beb422b2701869cfae42c2 1af97b1f428ac89b7d35323ea7a68aba8cad178a04eddbbf591f65671bae48a2
3044022025812b93f58b3473124ae726c405cac51f39bb89c110e90f77b2f31a2e1fac67022015b8f1c3fa2ce6d0af44f682ed7e1d7933e51d06099c3eaae8725089b7a8a80e
# 4. we edit send.json and append the above public key and the newly created signature at the end
# of the file to end up with the following at the bottom of the file (the rest above it is unchanged):
$ tail -n 10 send.json
"tosign": [
"e6e59c20e6b7b720ac5e61e82e7eea66ce8b8aadc8beb422b2701869cfae42c2"
],
"signatures": [
"3044022025812b93f58b3473124ae726c405cac51f39bb89c110e90f77b2f31a2e1fac67022015b8f1c3fa2ce6d0af44f682ed7e1d7933e51d06099c3eaae8725089b7a8a80e"
],
"pubkeys": [
"03bb318b00de944086fad67ab78a832eb1bf26916053ecd3b14a3f48f9fbe0821f"
]
}
# 5. finally, sending the resulting transaction with the signature and the public key
$ curl -d @send.json http://api.blockcypher.com/v1/btc/test3/txs/send
# This will output the final transaction, including its hash.
@zeeshangulzar
Copy link

You saved my life man. Thanks

@jonn7hoareau
Copy link

hi, can anyone help me? I sent Litecoin to Bitcoin address that starts with number 3 and I can't get them. I used greenbits wallet code and they can't get them either. I have seen them on the blockchain..

@soniadao
Copy link

soniadao commented Aug 6, 2018

At the last step, when I send the JSON to the blockchain I get this error :

"error": "Error validating generated transaction: Error running script for input 0 referencing 4a9aa1189c6a5d0f770c7a43bf46dc87f0c08ec35c68468212c7e8445900623c at 1: Script was NOT verified successfully."

Can someone help me please ?

@developer-avijitmondal
Copy link

developer-avijitmondal commented Sep 7, 2018

how to add maually fees with blockcypher transaction?i cannot add manually fees with transaction on blockcypher.

@obirije
Copy link

obirije commented Feb 5, 2019

Missing transaction information. thats the error I'm getting any help please

@obirije
Copy link

obirije commented Jun 16, 2019

how to add maually fees with blockcypher transaction?i cannot add manually fees with transaction on blockcypher.

Pls would love to know how to do this. Thanks. Manually setting it in transaction req /tx/new not working

@Trevorulliac
Copy link

"e6e59c20e6b7b720ac5e61e82e7eea66ce8b8aadc8beb422b2701869cfae42c2"

],
"signatures": [
"3044022025812b93f58b3473124ae726c405cac51f39bb89c110e90f77b2f31a2e1fac67022015b8f1c3fa2ce6d0af44f682ed7e1d7933e51d06099c3eaae8725089b7a8a80e"
],
"pubkeys": [
"03bb318b00de944086fad67ab78a832eb1bf26916053ecd3b14a3f48f9fbe0821f

@myklll
Copy link

myklll commented Dec 20, 2019

Thanks for this. Works perfectly. Do you have a similar gist for sending with Multisig addresses?

@elvis-hp
Copy link

hi. how to send btc from segwit address? thank you!

@samansarina
Copy link

You saved my life man. Thanks

bro could you please contact me.
khatami929 @ gmail

@Tradersarina
Copy link

Thanks for this. Works perfectly. Do you have a similar gist for sending with Multisig addresses?

Hello.
Dies it work ?

@sherain
Copy link

sherain commented Aug 30, 2021

At the last step, when I send the JSON to the blockchain I get this error :

"Error validating generated transaction: Error running script for input 0 referencing e27019baee9853a54faa61cd7279a72d1f4576c628610ae106ac662ab9da3035 at 0: Script was NOT verified successfully."

Can someone help me please ?

@roshnet
Copy link

roshnet commented Nov 19, 2021

Incredibly helpful! Thanks!

Copy link

ghost commented May 3, 2022

Ho to use it can any one can tell me

@influence-27
Copy link

i need flash btc software

@Will-Lai
Copy link

At the last step, when I send the JSON to the blockchain I get this error :

"Error validating generated transaction: Error running script for input 0 referencing e27019baee9853a54faa61cd7279a72d1f4576c628610ae106ac662ab9da3035 at 0: Script was NOT verified successfully."

Can someone help me please ?

I got the same issue. How did you solve it?

@sherain
Copy link

sherain commented Jan 27, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment