---
name: "zmq_z85_encode"
section: "3"
platform: "linux"
package: "zeromq"
version: "4.3.5-3"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/zmq_z85_encode"
---

# zmq\_z85\_encode(3)

encode a binary key as Z85 printable text

## NAME

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

## SYNOPSIS

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

## 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

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

## 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

[**zmq\_z85\_decode**(3)](/zmq_z85_decode/3.md) [**zmq\_curve\_keypair**(3)](/zmq_curve_keypair/3.md) [**zmq\_curve\_public**(3)](/zmq_curve_public/3.md) [**zmq\_curve**(7)](/zmq_curve/7.md)

## 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**.
