README.md

# Tezex
[![Build Status](https://img.shields.io/github/actions/workflow/status/objkt-com/tezex/elixir.yml?branch=main)](https://github.com/objkt-com/tezex/actions) [![Hex.pm Version](https://img.shields.io/hexpm/v/tezex.svg)](https://hex.pm/packages/tezex) [![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://hexdocs.pm/tezex/)

A collection of utils to work with the Tezos blockchain using Elixir: parsing Micheline, verifying Tezos signed messages, deriving Tezos wallet addresses from public key, etc.

Read the documentation on [hexdocs](https://hexdocs.pm/tezex/).

This lib contains a full, pure Elixir implementation of [HMAC-DRBG](https://hexdocs.pm/tezex/Tezex.Crypto.HMACDRBG.html), tested with [NIST CAPV](https://csrc.nist.gov/projects/cryptographic-algorithm-validation-program) fixtures. We might extract it to a separate lib in the future.

Since what this lib provides is so far limited to what we need at [objkt.com](https://objkt.com), external contributions are most welcome.
For instance if you need to sign messages or transactions with a passphrase-protected private key, or translating Micheline to hex, we'd love to collaborate on a PR.

## Installation

The package can be installed by adding `tezex` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [
    {:tezex, "~> 2.0.0"}
  ]
end
```

## Requirements

OTP24 or above, it needs an elixir version that uses OTP 24 or above, for instance

```
elixir 1.14.3-otp-25
erlang 25.2.3
```

or

```
elixir 1.13.3-otp-24
erlang 24.3.4
```

## Test

```sh
$ mix test
$ mix test.watch
$ mix coveralls.html
```

## Generate Documentation

```sh
$ mix docs
```