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.
broadcast list
A business-only list that sends one message to many contacts at once — each receives it as a private 1:1 chat. Distinct from a newsletter/channel. See Broadcast lists.
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.
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.
“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 28, 2026