Subscriptions let server operators distribute a curated list of connection profiles to users via a single URL. Instead of sharing individualDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/SpaceNeuroX/proxy-turn-vk-android/llms.txt
Use this file to discover all available pages before exploring further.
wdtt:// links, you publish one JSON file on your server and your users subscribe to it once. qWDTT fetches the file, imports all profiles into a locked folder, and can re-fetch it on a schedule to keep the list current — reflecting new servers, retired hashes, or updated passwords — without any action from users.
Adding a subscription
Tap + and choose Subscription
Tap the + floating action button, then select Subscription from the bottom sheet.
Enter the subscription URL
Paste the HTTPS address of the JSON file into the Subscription address field.
The subscription name displayed in the app and used as the folder name comes from the
subscriptionName field in the JSON. If this field is absent, the import fails with an error. Make sure every subscription JSON includes this field.Subscription card
Each active subscription appears as a card above the profile list. The card shows:- Name — taken from
subscriptionNamein the JSON - Description — the
descriptionfield, if provided - Traffic — a progress bar with used / limit values when
trafficUsedMbandtrafficLimitMbare present - Last updated — the local timestamp of the most recent successful refresh
- Error message — if the last refresh failed, the error is shown in red below the timestamp
- Refresh button — manually triggers an immediate re-fetch and profile replacement
- Delete button — removes the subscription and its entire profile folder
Auto-refresh
qWDTT automatically refreshes subscriptions in the background while the tunnel is not running. The interval is controlled by thesubscriptionAutoRefreshHours setting (Settings → Behaviour):
| Value | Behaviour |
|---|---|
-1 | Auto-refresh disabled |
0 | Refresh every time the app is opened |
6 | Every 6 hours |
12 (default) | Every 12 hours |
24 | Every 24 hours |
Profile folder restrictions
Subscription profiles live in a dedicated locked folder. This folder enforces the following restrictions:- You cannot manually add, import, or drag profiles into a subscription folder.
- You cannot move a profile from another folder into a subscription folder.
- If you try to batch-import a JSON file whose group name matches an existing subscription folder, the import is blocked with an error.
Hosting a subscription
To distribute profiles to your users, create a JSON file with the structure below and serve it from any HTTPS endpoint.Top-level fields
The subscription name shown on the card and used as the profile folder name. Alternative accepted key:
groupName.Array of profile objects. See profile fields below. Alternative accepted key:
servers.Free-text description displayed on the subscription card (e.g. expiry date, quota notice).
Traffic used so far in megabytes. Displayed as the filled portion of the progress bar. Alternative accepted key:
trafficMb.Traffic quota in megabytes. Used as the progress bar total. Alternative accepted key:
trafficLimit.Server-side timestamp string (any format). Shown on the card as a reference; not parsed for scheduling purposes.
Version number of this profile set. Currently stored but not used in the UI.
Profile object fields
Each object in theprofiles (or servers) array:
Profile display name shown in the list.
Server address in
IP:port format. The port should be the DTLS port (default 56000).Comma-separated VK call hashes (up to 4). Alternative accepted key:
vkHashes. If omitted or blank, the profile will use the global hash pool.Workers per hash. Defaults to
16 if omitted. Alternative accepted key: workersPerHash.Local UDP listen port on the device. Defaults to
9000 if omitted. Alternative accepted key: listenPort.Connection password matching
wdtt-server. Alternative accepted key: pass.Alternative key names reference
The parser accepts either the canonical key or its alias:| Canonical | Alias |
|---|---|
subscriptionName | groupName |
profiles | servers |
hashes | vkHashes |
workers | workersPerHash |
port | listenPort |
password | pass |
trafficUsedMb | trafficMb |
trafficLimitMb | trafficLimit |
updatedAt | updated |
description | info |
Exporting a group as a subscription
Any existing profile folder can be exported as a subscription-compatible JSON file:Export the folder
Tap Export next to the desired folder. Choose a save location. The resulting file contains
subscriptionName (the folder name) and profiles[] in the standard format.qWDTT also accepts a Base64-encoded JSON body as the HTTP response. If the response body is not valid JSON but decodes from Base64 to valid JSON, the decoded content is parsed instead. This can be useful if your CDN or server strips certain content-type headers.