Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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

This comment has been minimized.

Copy link

commented Dec 15, 2017

You saved my life man. Thanks

@jonn7hoareau

This comment has been minimized.

Copy link

commented Dec 23, 2017

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

This comment has been minimized.

Copy link

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

This comment has been minimized.

Copy link

commented Sep 7, 2018

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

@obirije

This comment has been minimized.

Copy link

commented Feb 5, 2019

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

@obirije

This comment has been minimized.

Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.