Documentation 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-server includes a built-in Telegram bot for remote administration. Once enabled, the bot lets you create time-limited passwords, inspect usage statistics, bind or unbind devices, deactivate accounts, and generate ready-to-import connection files — all without touching the server directly.
To enable the bot, set bot_token and admin_id in /etc/wdtt/passwords.json (or enter them in the Deploy tab before installing). The bot only responds to messages from the configured admin ID, so other users cannot interact with it.
Setup
Create a bot with @BotFather
Open Telegram, start a chat with @BotFather, and send
/newbot. Follow the prompts to choose a name and username. BotFather will reply with a token in the format 123456789:ABC-....Find your Telegram user ID
Send a message to @getmyid_bot (or any similar ID bot). Copy the numeric ID shown — this is your
admin_id.Commands
| Command | Description |
|---|---|
/start or /help | Show available commands |
/new | Create a new time-limited password (interactive wizard) |
/new <days> | Shortcut — create a password valid for <days> days with 1 device |
/new <days> <max_devices> | Shortcut with device limit — e.g. /new 30 3 for 30 days, up to 3 devices |
/list | Show all passwords with status and inline management buttons |
Creating a password
Start the wizard
Send
/new to start the interactive flow, or use a shortcut like /new 30 to pre-fill the duration.If you used /new without arguments, the bot prompts:📅 Enter the password validity in days (1–365) and optionally the device limit separated by a space. Examples:The valid range is 1–365 days. Values outside this range are rejected.30(one month, 1 device) ·30 3(one month, up to 3 devices)
Choose ports
The bot asks whether to use the standard ports (
56000, 56001, 9000):- Yes — standard ports are used.
- No — the bot prompts you to enter three comma-separated port numbers in
DTLS,WG,TUNorder, e.g.56000,56001,9000.
ports field of the password entry and embedded in all generated links.Send the VK call hash
The bot prompts:
🔑 Send the VK hash (or multiple hashes separated by commas):Paste only the hash portion — not the full
vk.com/call/join/... URL. The hash is stored in vk_hash and included in the generated connection files.Receive the password and connection files
The bot replies with:
- The generated password (16 characters drawn from
ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789— visually unambiguous, no0/O/I/lcharacters) - Validity period and expiry date
- Device limit
- A
wdtt://legacy link - A
qwdtt://link for import into qWDTT - A
.confJSON file attached as a document, ready to import directly into qWDTT
Password list and management
Send/list to see all active passwords. The bot responds with a summary and an inline keyboard:
- 🟢 — password exists but no device has connected yet (free slot)
- 🔗 — one or more devices are bound to this password
| Item | Description |
|---|---|
| Name and password string | Label and the raw password value (for copy-paste) |
| Quick link | wdtt:// link if vk_hash is set |
| Status | 🟢 Active or 🔴 Deactivated |
| Expiry | Date and days remaining, or ♾ (never expires) |
| Traffic | Downloaded / uploaded in MB |
| Bound devices | Device UUIDs, assigned IPs, and per-device traffic |
| Button | Action |
|---|---|
| 📂 Get .conf file | Sends the .conf JSON import file as a document |
| 🗑 Unbind all devices | Removes all bound devices from WireGuard and clears device_ids; the password can be reused on a new device |
| ⏸ Deactivate | Sets is_deactivated: true; all active WireGuard peers for this password are removed immediately |
| ✅ Activate | Clears is_deactivated; the password can accept connections again |
| ❌ Delete password | Removes the password and all its devices from WireGuard and from passwords.json |
| ◀️ Back to list | Returns to the /list view |
Generated connection files
When you tap 📂 Get .conf file or after creating a new password, the bot sends a.conf file as a Telegram document. The file contains a JSON profile compatible with qWDTT’s JSON import format:
peer field uses the server’s public IP (resolved automatically via https://api.ipify.org). workersPerHash is always 16. To import: tap the file in Telegram, choose Open in qWDTT, or use qWDTT’s Import from file option.
Main password link
The/list view also includes a 🔗 Link for main password button. Tapping it starts the same port-selection and hash-entry flow, then generates a wdtt:// link, a qwdtt:// link, and a .conf file for the main password — useful for sharing the owner credential with a trusted device.
Limits and cleanup
- A maximum of 10 generated passwords can be active at any time. Attempting to create an 11th password returns an error with instructions to delete one via
/list. - The server runs an automatic cleanup task every hour that deletes expired passwords and their WireGuard peers, and saves the updated
passwords.json. Expired passwords are also cleaned up whenever/newor/listis called.
The bot registers
/new and /list as Menu commands with BotFather automatically on startup, so they appear in the Telegram command menu without typing.