Skip to main content
This page lists every public method on WaClient and its coordinators, with code-grounded descriptions. Dedicated pages go deeper for message types, chat mutations, and the low-level API.

WaClient

See Configuration for every option.

Ignoring inbound stanzas

client.ignoreKey(input) drops matching <message>, <receipt>, <notification>, <presence>, <chatstate>, and <call> stanzas before any handler — including the persistence and decryption paths — sees them. The coordinator still sends the appropriate ack so the server stops re-delivering. It accepts two shapes:

Declarative descriptor — WaIgnoreKey

Multiple top-level fields AND together; the remoteJid array ORs. At least one of remoteJid / fromMe / id / participant is required — empty descriptors and empty arrays throw.

Predicate — WaIgnoreKeyPredicate

For anything the descriptor can’t express (chat-kind filters, custom rules combining several fields), pass a predicate (ctx: WaIgnoreKeyContext) => boolean. Return true to drop. The lib has already parsed the wire-format node before calling you — no BinaryNode digging required.
WaIgnoreKeyContext carries the same fields the descriptor matches on, already parsed:
The predicate sees the device-stripped from / participant — but no PN ↔ LID alt-attr resolution. The descriptor form is what handles the PN ↔ LID part automatically; if you need both per-JID matching with alt-form coverage and a custom rule, prefer the descriptor’s remoteJid with only.
Stream-control nodes and the connection-critical success / failure tags bypass filters so the auth flow stays intact.

Coordinator getters


auth

client.auth (WaAuthClient). Pairing is mostly event-driven (Authentication); these are the user-facing entry points.

message

WaMessageCoordinator — see Sending & Receiving. source is a WaIncomingMessageEvent or a raw Proto.IMessage.

presence

WaPresenceCoordinator — see Presence & status.

chat

WaAppStateMutationCoordinator — full reference (incl. the generic set/remove and all schemas) in Chat mutations.
Pin and archive are mutually exclusive (pinning clears archive and vice-versa); locking clears both. clearChat/deleteChat/deleteMessageForMe are local-only (your devices) — use a revoke to delete for everyone. A mute timer doesn’t auto-unmute client-side.

group

WaGroupCoordinator — see Groups & communities. Participant ops return one WaParticipantActionResult per jid — the IQ succeeds as a whole even when some entries fail, so check each result’s status / code.
Methods marked (MEX) require an active MEX transport and throw when it’s unavailable.

newsletter

WaNewsletterCoordinator — see Newsletters. Composed of discovery, admin, and messaging ops.

Discovery

Admin

Messaging


privacy

WaPrivacyCoordinator — see Privacy.

profile

WaProfileCoordinator — see Profile.

status

WaStatusCoordinator — see Status broadcasts.

broadcastList

WaBroadcastListCoordinator.
Broadcast lists are business-only (backed by the BusinessBroadcastList app-state schema); regular accounts have the mutations rejected.

business

WaBusinessCoordinator — see Business.

bot

WaBotCoordinator — see Bots.

email

WaEmailCoordinator.
Email binding is mobile-only — every method throws on a Web/companion connection. See Mobile connections.

mobile

WaMobileCoordinator — see Hosting companion devices. Requires a mobile-primary session; link/revoke/publish methods throw on a Web/companion connection.

lowlevel

WaLowLevelCoordinator — full reference in Low-level API: sendNode, query, registerIncomingHandler, unregisterIncomingHandler, registerIncomingStanzaFilter.
For top-level helpers exported from the package root — message inspection (getContentType), target normalization (resolveMessageTarget), JID predicates and constants — see JIDs, helpers & constants. For typed business hours, see Profile, privacy & business.
Last modified on July 12, 2026