ZMQ\_Z85\_ENCODE(3) 0MQ Manual ZMQ\_Z85\_ENCODE(3)

# [NAME](#NAME)

zmq\_z85\_encode - encode a binary key as Z85 printable text

# [SYNOPSIS](#SYNOPSIS)

**char \*zmq\_z85\_encode (char \*dest, const uint8\_t \*data, size\_t size);**

# [DESCRIPTION](#DESCRIPTION)

The *zmq\_z85\_encode()* function shall encode the binary block specified by *data* and *size* into a string in *dest*. The size of the binary block must be divisible by 4. The *dest* must have sufficient space for size * 1.25 plus 1 for a null terminator. A 32-byte CURVE key is encoded as 40 ASCII characters plus a null terminator.

The encoding shall follow the ZMQ RFC 32 specification.

# [RETURN VALUE](#RETURN_VALUE)

The *zmq\_z85\_encode()* function shall return *dest* if successful, else it shall return NULL.

# [EXAMPLE](#EXAMPLE)

**Encoding a CURVE key**.

```
#include <sodium.h>
uint8_t public_key [32];
uint8_t secret_key [32];
int rc = crypto_box_keypair (public_key, secret_key);
assert (rc == 0);
char encoded [41];
zmq_z85_encode (encoded, public_key, 32);
puts (encoded);
```

# [SEE ALSO](#SEE_ALSO)

[**zmq\_z85\_decode**(3)](/man/enterprise-packages/zeromq-nocurve/zmq_z85_decode.3) [**zmq\_curve\_keypair**(3)](/man/enterprise-packages/zeromq-nocurve/zmq_curve_keypair.3) [**zmq\_curve\_public**(3)](/man/enterprise-packages/zeromq-nocurve/zmq_curve_public.3) [**zmq\_curve**(7)](/man/enterprise-packages/zeromq-nocurve/zmq_curve.7)

# [AUTHORS](#AUTHORS)

This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at **http://www.zeromq.org/docs:contributing**.

10/25/2026 0MQ 4.3.5

---

Document: zmq_z85_encode(3) from zeromq-nocurve 4.3.5-r8 (Chainguard OS)
Source: https://github.com/zeromq/libzmq
