-
-
Save xbee/a4db8404f3fbba7f0b3fa5ce34ff04d1 to your computer and use it in GitHub Desktop.
Create and send a Bitcoin transaction using the BlockCypher Transaction API #bitcoin #shell
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment