Skip to content

vulpemventures/go-elements

Repository files navigation

go-elements

Go PkgGoDev Release Go Report Card Bitcoin Donate

Go support for confidential transactions on Elements-based blockchains

The package is currently being developed. For stable versions, you must refer to the latest release

Install

# Install latest tagged release
$ go get github.com/vulpemventures/go-elements@latest

👀 Examples

🛣 Roadmap

  • Chain parameters (prefixes, magic numbers, …)
  • Pay to Public Key Hash
  • Pay to Script Hash
  • Pay to Witness Public Key Hash
  • Pay to Witness Script Hash
  • Tx serialization / deserialization
    • Use of confidential values instead of pure numbers
    • Fix order of witness in transaction serialization
    • Add confidential fields
    • Serialization for (witness) signature
  • PSET / Bip174 for Elements
  • Blech32
  • CGO bindings for secp256k1-zkp
  • Unblinding ins / Blinding outs / Blinding issuance ins
  • Signing a confidential input (use 0 value amounts to produce the hash for the signature)
  • Asset issuance
  • Asset re-issuance
  • Slip77
  • Upcoming PSET spec support

🖥 Development

  • Clone repository:
$ git clone https://github.com/vulpemventures/go-elements.git
  • Enter into the project folder and install dependencies:
$ cd go-elements
$ go get -t -v ./...
  • Run tests

For running tests it is required to have a running Nigiri locally, or at least a remote one reachable from the outside.
To run the tests it is mandatory to export an API_URL environment variable pointing to the URL of nigiri-chopsticks.

$ nigiri start --liquid
$ make test
  • More detailed documentation
$ godoc -http ":8080"

http://localhost:8080/pkg/github.com/vulpemventures/go-elements/

👷‍♂️ Contributors

License MIT