Skip to main content

Documentation Index

Fetch the complete documentation index at: https://zapo.to/llms.txt

Use this file to discover all available pages before exploring further.

Short definitions for the terms used across these docs. Most link to the page that covers them in depth.

addon

An encrypted follow-up attached to a message — a reaction, poll vote, or comment. Surfaced as the message_addon event. See Receiving messages.

app-state

The channel that syncs per-account settings (mute, pin, archive, read, labels, contacts) across all your devices — separate from messages. Driven via client.chat.

BinaryNode

zapo’s representation of a protocol stanza: { tag, attrs, content }. The unit you work with in the low-level API.

companion device

A linked-device connection (like WhatsApp Web/Desktop) — the default mode. Contrast with mobile connections. See Authentication.

coordinator

A focused feature module reached through a getter on the client (client.message, client.group, …). See Architecture.

fanout

Encrypting a single message once per recipient device and bundling the results into one stanza. See Architecture in depth.

IQ

A request/response stanza (<iq type="get|set">result/error), correlated by id. Issue one via client.lowlevel.query.

JID

A WhatsApp address for a user, group, or channel — e.g. 5511999999999@s.whatsapp.net (user), ...@g.us (group), ...@newsletter (channel). See JID helpers.

LID

A privacy-preserving identifier (...@lid) that represents a user without exposing their phone number. Prefer it when sending. See Identities.

MEX

WhatsApp’s GraphQL-over-IQ layer, used by newsletter and parts of business. The optional argo-codec peer decodes some MEX responses.

Noise

The Noise-protocol handshake that authenticates the server and encrypts every frame after connect. See The WhatsApp protocol.

PN

“Phone number” — a phone-number JID (...@s.whatsapp.net), as opposed to a LID. See Identities.

prekey

A Signal one-time key used to bootstrap an encrypted session with a new peer. Fetched as part of session setup; an envelope that bootstraps a session is a pkmsg.

ratchet

The Signal Double Ratchet that encrypts 1:1 messages with forward secrecy. On the wire the envelope is msg (established) or pkmsg (session-initiating).

sender key

The group-encryption scheme (skmsg): each member distributes a sender key once, then encrypts group messages symmetrically under it. See The WhatsApp protocol.

session

The Signal protocol state for an encrypted conversation with a peer device, persisted in the store. Refresh one with client.message.syncSignalSession.

stanza

A unit of the WhatsApp protocol — a compact binary form of an XMPP-like element. In zapo it’s a BinaryNode.

store

The pluggable persistence layer that holds auth, Signal state, app-state, and optionally messages/threads/contacts. Built with createStore. See Stores.

view-once

Media that the recipient can open only once. Send it with the viewOnce option. See Media.

write-behind

Batched, asynchronous persistence of incoming messages/threads/contacts so the hot path isn’t blocked on the database. Tuned via the writeBehind option.
Last modified on May 27, 2026