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 latest tagged release
$ go get github.com/vulpemventures/go-elements@latest
- Broadcast unblinded transaction
- Broadcast blinded transaction - with unblinded input
- Broadcast blinded transaction - with blinded input
- Broadcast issuance transaction - with unblinded inputs, unblinded issuance, blinded outputs
- Broadcast issuance transaction - with unblinded inputs, blinded issuance, blinded outputs
- 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
- 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 anAPI_URL
environment variable pointing to the URL ofnigiri-chopsticks
.
$ nigiri start --liquid
$ make test
- More detailed documentation
$ godoc -http ":8080"
http://localhost:8080/pkg/github.com/vulpemventures/go-elements/