Skip to content

Go support for Liquid/Elements transactions

License

Notifications You must be signed in to change notification settings

condensat/go-elements

 
 

Repository files navigation

go-elements

Build Status 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

🖥 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
$ export API_URL=http://localhost:3001
$ go test ./... -v

👷‍♂️ Contributors

License MIT

About

Go support for Liquid/Elements transactions

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%