# `Tezex.Crypto.BLS.Fr`
[🔗](https://github.com/objkt-com/tezex/blob/v4.0.0/lib/crypto/bls/fr.ex#L1)

Scalar field Fr for BLS12-381 (curve order).

This is the field of scalars used for private keys and in elliptic curve operations.

# `t`

```elixir
@type t() :: binary()
```

# `from_bytes`

```elixir
@spec from_bytes(binary()) :: {:ok, t()} | {:error, :invalid_size}
```

Creates a field element from a binary (32 bytes, big-endian).

# `from_integer`

```elixir
@spec from_integer(non_neg_integer()) :: t()
```

Creates a field element from an integer.

# `is_zero?`

```elixir
@spec is_zero?(t()) :: boolean()
```

Checks if a field element is zero.

# `one`

```elixir
@spec one() :: t()
```

One element of the field.

# `to_bytes`

```elixir
@spec to_bytes(t()) :: binary()
```

Converts a field element to 32-byte big-endian binary.

# `to_integer`

```elixir
@spec to_integer(t()) :: non_neg_integer()
```

Converts a field element to integer.

# `zero`

```elixir
@spec zero() :: t()
```

Zero element of the field.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
