Skip to content

Baileys Compatibility Matrix

Target reference: local Node Baileys 7.0.0-rc13.

Legend:

  • Done: implemented in Baileys-python and covered by tests or proven spike
  • Seeded: copied from proven spike, needs production API hardening
  • Partial: some capability exists, parity incomplete
  • Todo: not implemented in product package yet
Area Capability Status Notes
Core WAProto generated Python classes Done Generated artifact is package data and checked by scripts/generate_proto.py --check when proto tooling is installed.
Core Tokenized WABinary encode/decode Done Includes dictionary tokens, packed nibbles/hex, AD/FB/interop JIDs, and compressed frame vectors.
Core JID utilities Done Shared parser/encoder/classifiers cover PN, LID, hosted, group, broadcast, newsletter, bot/meta, integrator, same-user, transfer-device, and Baileys-compatible aliases.
Core Defaults/version constants Done Central defaults feed registration, socket, Noise, prekey, media, and key derivation layers.
Core Crypto/key primitives Done AES/HKDF/HMAC/hash/X25519, pairing-code key derivation, media keys, app-state keys, Noise helpers, Signal sessions, and group sender keys have offline vectors.
Core WAM telemetry encoder Partial WAM packet/header and scalar field encoding are ported with encode_wam / encodeWAM, generated constants cover 313 event specs and 48 globals, and send_wam / sendWAM uploads through w:stats. Todo: live ACK proof on an account/server path that responds to WAM stats.
Core WAUSync protocol builders Partial Public device discovery, status fetch, disappearing-duration fetch, and generic execute_usync_query / executeUSyncQuery wrappers exist. Generic parsing preserves devices, LID, contact, status, disappearing mode, username, bot profiles, side-list values, and unknown protocol children; typed parsers now cover contact, status, disappearing mode, username, and bot profile results. Bot-list fetch is live-proven. Todo: broader live proof for account-gated protocols.
Auth Credential models Done Typed wrappers round-trip existing auth dicts and preserve unknown future fields.
Auth Credential generation Done Registration payload, key material, QR pairing, and pair-success credential persistence are wired through product auth state and covered by tests/live QR proof.
Auth QR pairing Done Product WhatsAppClient.connect_for_qr_pairing() live-proven: QR refs, scan, pair-success, device signature, and saved creds.
Auth Pairing-code flow Done Request, callback finish, pair-success, credential persistence, and saved reconnect are live-proven through the product pairing-code probe.
Auth Saved auth login/reconnect Done Product QR probe live-proved saved reconnect through WhatsAppClient.connect_and_wait() after QR pairing.
Auth Multi-file auth state Partial Storage interfaces, JSON credential store, directory signal-key store, useMultiFileAuthState, SQLite stores, and optional Postgres stores are present. Built-in file stores use atomic writes, and AuthState.transaction() commits credential changes only on successful completion. Postgres schema setup uses versioned migrations with transaction-scoped advisory locking and opt-in live concurrent-writer proof.
Auth Signal key store and transactions Partial JSON hydration/export exists, memory and directory signal-key stores isolate mutable values, built-in file writes are atomic, and SQLite/Postgres signal-key stores are available. Broader application-level multi-process auth coordination remains a deployment concern.
Auth Prekey upload/digest/rotation Done Product socket methods digest_key_bundle, count_pre_keys, maintain_pre_keys, upload_pre_keys, and rotate_signed_pre_key are wired and tested; login lifecycle runs non-fatal low-count maintenance with bounded upload backoff.
Auth Routing info Seeded WebSocket ED and Noise intro supported.
Auth LID/PN mapping Partial USync device lookups, blocklist resolution, group metadata participant mappings, and history mappings can use credential-backed mappings plus durable SQLiteEventStore LID/PN persistence. Broader live proof across account-gated mapping surfaces remains.
Socket Noise handshake Seeded Live server hello/login proven.
Socket Query/response correlation Done Query manager resolves by node id, cancels timed-out waiters, and can drive receive while awaiting responses.
Socket Event emitter Done Async event emitter supports on, once, off, emit, and wait_for; the event taxonomy covers message, receipt, notification, dirty, offline, call, reconnect, and auth surfaces.
Socket Public socket API Done WhatsAppClient, make_socket, and makeWASocket facade includes QR pairing, saved reconnect, event emitter, query manager, receive loop, reconnect, logout, ACKs, receipts, and prekey maintenance.
Socket Keepalive/reconnect Done Saved-auth reconnect is live-proven; receive loop handles server pings and automatic retry/backoff for retryable disconnects, keepalive failures, and exhausted reconnect attempts.
Socket Logout/disconnect reasons Done logout() sends remove-companion-device, clears saved auth by default, and emits loggedOut; stream:error, failure, transport errors, and intentional logout map to deterministic DisconnectReason values.
Inbound Binary node dispatcher Done Classifier plus socket dispatch covers message, receipt, notification, call, dirty, offline, failure, stream-error, server ping, IQ, ACK, and unknown-node observability.
Inbound Message decrypt Partial 1:1 pkmsg/msg and group text are live-proven through product messages.upsert; broader message/content processors still needed.
Inbound Retry receipts Partial Retry receipt parsing, retry count limiting, session-bundle injection, messages.retry / messages.retry_error events, and recent outbound replay are wired. A public ReplayStore interface, default InMemoryReplayStore, SQLiteReplayStore, and BinaryNode JSON helpers cover in-process and local durable replay; broader live retry proof still remains.
Inbound Receipts/acks Done Baileys-compatible ACK builder added, socket auto-ACKs message/receipt/notification/call nodes, direct receipts emit messages.update status changes, group/status receipts emit message-receipt.update, and retry receipts route separately.
Inbound Notifications/calls/offline nodes Done Typed notification, dirty/app-state, offline, and call dispatch emits stable events while preserving raw node observability for unknown cases.
Outbound sendMessage text Done Product send_message/sendMessage supports direct and USync fanout paths; direct 1:1 text, third-party USync/session assertion, and group text send are live-proven with ACK.
Outbound relayMessage Partial Product relay_message/relayMessage sends BinaryNode/proto/outbound payloads and caches recent messages through the replay-store interface for retry replay; broader live parity remains.
Outbound Receipts/read messages Partial send_receipt, send_receipts, and read_messages build aggregated receipt nodes and use privacy-setting-aware read types; broader live receipt semantics still need proof.
Outbound Privacy tokens/peer data operations Partial Trusted-contact token storage, expiry checks, issuance JID resolution, tctoken node construction, privacy-token issuance, and peer-data protocol-message send wrappers are ported with offline tests. Trusted-contact privacy-token issuance and a self peer-data operation with ACK are live-proven; broader operation-specific peer-data behavior remains.
Messages Text/extended text Done Product content builders cover text, extended text, mentions, quote keys, and forwarded markers with offline tests; direct and group text sends are live-proven with ACK.
Messages Quote/mention/forward/location/contact/reaction/pin/poll/edit/delete Done Quote keys, mentions, forward markers, contact lists, reactions, edit, delete, location, contact, pin, and poll builders are offline-tested. Reaction add/remove, edit, delete, location, contact, poll, pin, and unpin are live-proven with ACK.
Media Image upload/send/download Done Product media connection, media host, encrypt/upload, raw upload, image message generation, send, and download/decrypt helpers are wired and live-proven for image.
Media Video/audio/document/sticker/stream/url inputs/thumbnails/reupload Partial Video, audio, document, and sticker send/download/decrypt are live-proven with generated or file-backed samples. Media retry request/response crypto, messages.media-update, and updateMediaMessage are offline-tested; live probing captures inbound image media and receives an ACK for the retry receipt, but still needs a device/server response with an encrypted media update. Streams, URLs, thumbnails, waveform, duration extraction, and broader live breadth remain.
Chats Presence/status/profile/privacy/blocklist/chat modify Done Product presence, profile name/status/picture, privacy, blocklist, block APIs, contact/quick-reply patches, and encrypted app-state patch writes are wired with offline coverage; live read-only profile/privacy/blocklist/on-whatsapp, all supported presence write states, profile name/status/picture updates, block/unblock cycle, chat archive/mute/pin/star patches, and app-state key-share delivery are proven.
History History sync/app-state/LTHash/MAC validation Done Key derivation, app-state key-share ingestion, LT hash update, encrypted patch generation, patch MAC generation, app-state snapshot request, external app-state blob download/decrypt, snapshot metadata decode, snapshot mutation decrypt/MAC validation, sync patch application, external mutation download, history sync processing, and blocked-key persistence exist. Live history push-name sync is proven. Fresh QR live proof received key AAAAAP9V, applied all five app-state collections, emitted 311 decoded mutations, and saved reconnect re-applied the collections without blocked keys. Re-verification applied all five saved app-state collections without blocked collections, decrypt errors, or history errors.
Store Event stores and buffered events Done Bindable InMemoryStore tracks messages, chats, contacts, message updates, per-user receipts, and reactions from inbound events. SQLiteEventStore persists the same event-backed message/chat/contact surfaces plus LID/PN mappings and app-state state for local durable bots. Optional Postgres stores cover the same credential, signal-key, replay, and event-store contract with local mocked tests, versioned migrations, live database round-trip, and live concurrent migration proof.
Groups Metadata/create/participants/invites/settings Partial Product group metadata/fetch-all/create/leave/subject/description/participants/join-request/invite/settings APIs and parsers are wired with offline tests; Node-compatible aliases cover invite-info lookup, ephemeral toggle, member-add mode, join-approval mode, fetch-all participating groups, and membership-request list/update. Metadata, PN mapping for LID participants, invite lookup, structured group invite send, group text send, announcement setting change/revert, invite revoke, description set/revert with previous id, subject set/revert, participant remove, participant promote, and participant demote are live-proven. Raw participant add remains account-gated in the current live account with account_reachout_restricted; group_participants_update_or_invite falls back to a structured invite. Temporary group create returns no result and does not leave a created group in the participating list.
Communities Community APIs Partial Product community metadata/fetch-all/create/linked group create/link/unlink/fetch, leave, subject/description, participants, membership-request list/update, invite fetch/revoke/accept/v4/info, ephemeral, settings, member-add, and join-approval APIs, aliases, node builders, and parsers are wired with offline tests. Todo: community live proof with a community JID or an account-safe enabled mutation flow. Current account times out on community create and leaves no participating community behind.
Business Profile/catalog/products/orders Partial Business profile fetch/update, catalog, collections, order details, product create/update/delete nodes, product image media preparation, cover-photo update/remove, aliases, and parsers are wired with offline tests. WhatsApp Business QR pairing, read-only business profile fetch, catalog read, temporary product create/delete using existing and fresh-uploaded images, reversible product update, and cover-photo update/remove are live-proven. Todo: catalog collections and order-details live proof remain deferred until a responding business account and real order id/token are available.
Newsletters MEX/newsletter APIs/events Partial MEX query/response helpers plus newsletter create/update/metadata/follow/unfollow/mute/subscribers/admin/owner/delete/picture/reaction/message-fetch/live-update APIs are wired with offline tests. Direct and legacy MEX newsletter notifications emit reaction, view, participant, and settings events. Read-only live proof confirms account reachout timelock MEX, and newsletter create/metadata/delete is live-proven. Todo: inbound newsletter event proof.
Tooling Package install/tests/examples Done Product bootstrap provides baseline install, tests, generated-artifact check modes, a public API parity manifest for implemented Node socket methods, a Node-reference audit script, refreshed saved-auth/pairing-code/echo-bot examples, and design docs for storage, inbound processing, live verification, release hardening, and release checklist review.
Tooling Live test harness Done Product scripts cover QR pairing, pairing-code linking, saved reconnect, inbound 1:1/group proof, timed soak checks, text/image/media sends, reaction/edit/delete/location/contact/poll/pin, chat/profile/privacy/group read/write probes, app-state key diagnostics, read-only advanced API probes, explicit temporary catalog create probes, temporary catalog cleanup, forced fresh catalog-image upload probes, reversible existing-product update probes, and remaining live probes for cover photo, bot list, privacy tokens, peer-data, newsletters, collections, order details, communities, and WAM stats. scripts/live_suite.py records selected live probes as redacted JSON summaries and can write a scheduled read-only command plan; scripts/soak_suite.py records timed soak summaries.
Docs Migration guide/API docs Done docs/public-api.md covers the current Python API surface, aliases, events, send/media/store/group/profile/history/advanced API surfaces, and docs/migration-guide.md maps common Node Baileys patterns to Python.