default.json. Users and enterprise administrators can also point the app at a different backend without rebuilding.
Default backend endpoints
The following URLs are compiled into the app and used on first launch. They can be overridden per-flavor or via a custom build.Production (prod and fdroid flavors)
| Field | URL |
|---|---|
default_backend_url_base_api | https://prod-nginz-https.wire.com |
default_backend_url_accounts | https://account.wire.com |
default_backend_url_base_websocket | https://prod-nginz-ssl.wire.com |
default_backend_url_teams | https://teams.wire.com |
default_backend_url_blacklist | https://clientblacklist.wire.com/prod |
default_backend_url_website | https://wire.com |
default_backend_title | wire-production |
Staging (staging flavor)
| Field | URL |
|---|---|
default_backend_url_base_api | https://staging-nginz-https.zinfra.io |
default_backend_url_accounts | https://wire-account-staging.zinfra.io |
default_backend_url_base_websocket | https://staging-nginz-ssl.zinfra.io |
default_backend_url_teams | https://wire-teams-staging.zinfra.io |
default_backend_url_blacklist | https://clientblacklist.wire.com/staging |
default_backend_url_website | https://wire.com |
default_backend_title | wire-staging |
Dev (dev flavor)
| Field | URL |
|---|---|
default_backend_url_base_api | https://nginz-https.anta.wire.link |
default_backend_url_accounts | https://account.anta.wire.link |
default_backend_url_base_websocket | https://nginz-ssl.anta.wire.link |
default_backend_url_teams | https://teams.anta.wire.link |
default_backend_url_blacklist | https://clientblacklist.wire.com/staging |
default_backend_url_website | https://wire.com |
default_backend_title | wire-anta |
The
beta and internal flavors do not define flavor-specific backend URLs. They inherit the production endpoints from the global defaults in default.json.Backend URL fields
The root URL for all Wire backend REST API calls. All API requests are sent to this host.
URL of the Wire account management portal. Used for deep links to password reset, email verification, and account settings pages.
WebSocket endpoint for real-time event delivery. Only used when
websocket_enabled_by_default is true or the user has opted in to persistent WebSocket connections.URL of the Wire team management web app. Used for in-app links to team settings.
URL of the client version blacklist. The app fetches this periodically and blocks usage if the current version is listed. See Client version enforcement.
Base URL of the Wire website. Used for help, support, and marketing links within the app.
Human-readable name for the backend, shown in developer and debug screens.
Certificate pinning
Thecert_pinning_config field maps SHA-256 public key pins to lists of hostname glob patterns. Pinning is enforced at the network layer for all matching hostnames.
Default production pin
- The API endpoint (
prod-nginz-https.wire.com) and all subdomains - The WebSocket endpoint (
prod-nginz-ssl.wire.com) and all subdomains - The asset storage host (
prod-assets.wire.com) and all subdomains - The version blacklist host (
clientblacklist.wire.com)
Disabling pinning
To disable certificate pinning for a custom build, setcert_pinning_config to an empty object in custom-reloaded.json:
Adding a custom pin
To pin an on-premise backend:WebSocket vs push notifications
Controls the default message delivery mechanism.
false(default) — The app uses Firebase Cloud Messaging (FCM) to receive push notifications. The WebSocket connection is only opened when the app is in the foreground.true— The app maintains a persistent WebSocket connection to the backend for real-time delivery. Suitable for environments without Google Play Services (e.g., F-Droid builds, Huawei devices, or air-gapped networks).
- FCM (default)
- WebSocket
Battery-efficient push delivery using Google’s Firebase infrastructure. Requires Google Play Services on the device.
Client version enforcement
The app periodically fetches the URL atdefault_backend_url_blacklist. If the running app version appears in the response, the app displays a mandatory upgrade prompt and blocks further use until the user updates.
- Production blacklist:
https://clientblacklist.wire.com/prod - Staging blacklist:
https://clientblacklist.wire.com/staging
enable_blacklist to false in default.json or your custom-reloaded.json:
Custom backend support
Users can point the app at a different backend without rebuilding by opening a Wire backend deep link. This is useful for on-premise deployments. The deep link URL format is:Custom backend connections are not restricted by
cert_pinning_config unless the custom backend’s hostname matches a pinned pattern. Configure cert_pinning_config accordingly for on-premise deployments.Enterprise-managed backend (EMM)
Whenemm_support_enabled is true (the default), IT administrators can push backend configuration to managed devices using an MDM (Mobile Device Management) solution without user interaction.
How it works
IT admin configures managed restrictions
The administrator pushes app restrictions via their MDM console (e.g., Google Workspace, Microsoft Intune, VMware Workspace ONE). The restrictions include the backend URL and optionally a default SSO code.
App reads managed configuration
On startup and on resume, the app queries Android’s
RestrictionsManager to check for managed configuration values.Managed config applied as defaults
If valid managed configuration is found, the app uses it as the backend and SSO defaults — overriding the values baked in at build time via
default.json.The EMM backend configuration is also refreshed when the MDM solution broadcasts a configuration change via
RestrictionsManager. The app handles this broadcast and re-evaluates settings without requiring a restart.Disabling EMM support
To opt out of EMM managed configuration entirely:RestrictionsManager and the app will always use build-time backend defaults.
Overriding backend URLs in a custom build
To produce a build pre-configured for an on-premise backend, provide acustom-reloaded.json in your customization repository: