Skip to content

A collection of simple programs which can generate bitcoin wallets, create and sign transactions, and send transactions over the bitcoin network.

License

Notifications You must be signed in to change notification settings

prettymuchbryce/hellobitcoin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

This is a collection of simple programs which can generate bitcoin wallets, create and sign transactions, and send transactions over the bitcoin network.

It was a learning project for me to learn more about both golang, and the bitcoin protocol.

This project consists of three programs which each contain the most basic usecase.

  • keys.go - Generates a public/private key pair
  • transaction.go - Creates, and signs a bitcoin transaction
  • network.go - Connects to a peer, and sends a transaction over the network

Disclaimer

These programs are not "crytographically" random, and should not be used for any purpose other than educational use.

Installation

  1. Install go
  2. run go get to install dependencies
  3. Follow the instructions at go-secp256k1 to compile bitcoin/c-secp256k1
  4. Run one of the programs using the syntax below

Usage

Creating a key pair
go run keys.go

options (optional)
--testnet
Generating a transaction
go run transaction.go

options (required)
--private-key yourPrivateKey
--public-key yourPublicKey
--destination destinationPublicKey
--input-transaction inputTransactionHash
--satoshis satoshisToSend

options (optional)
--input-index inputTransactionIndex
Sending a transaction over the bitcoin network
go run network.go

options (required)
--transaction yourTransaction
--node-address 255.255.255.255 (IPv4 address of the bitcoin node to connect to)
--network-address 255.255.255.255 (IPv4 address of your public IP address)

options (optional)
--testnet

Dependencies

This library is used for the creation of public keys from private keys, as well as signing transactions. It is a project which wraps the official bitcoin/c-secp256k1 bitcoin library.

This library does the base58 conversion. I have included the base58 project in this codebase rather than importing it from the aforementioned github, because I needed to change the dictionary that was used.

Resources

License

MIT

About

A collection of simple programs which can generate bitcoin wallets, create and sign transactions, and send transactions over the bitcoin network.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages