# Registration

The Registration module creates new Telegram accounts automatically as **real iOS or Android devices**. MVS Web fully emulates official Telegram mobile clients -- platform-specific device fingerprints, push tokens (APNs/FCM), captcha handling, and warmup sequences. Accounts registered this way are indistinguishable from those created on a real phone.

The module handles the entire process: buying a phone number from an SMS service, obtaining push tokens, solving captcha, email verification, receiving the SMS code, and completing the registration with optional 2FA and passkey setup.

![Registration settings (top)](/files/j8I9kuTUc5WOqi2rw05o)

![Registration settings (bottom)](/files/ZuZidn1GwpEPOiIvyK2P)

## Settings Reference

### Mode

| Setting  | Description                                                                                                                                                       |
| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Mode** | Choose the registration mode: **Register New Accounts** (standard registration of fresh accounts) or **Phone Swap** (swap the phone number on existing accounts). |

When **Phone Swap** is selected, additional settings appear:

| Setting            | Description                                                |
| ------------------ | ---------------------------------------------------------- |
| **Tag After Swap** | Tag to apply to the account after a successful phone swap. |
| **Max Retries**    | Maximum number of swap attempts per account.               |

### Execution

| Setting                | Description                                                                                                                                                                               |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Platform**           | Choose **iOS** or **Android**. This determines what device fingerprint the account will have.                                                                                             |
| **Threads**            | How many registrations to run at the same time. More threads = faster, but requires more proxies and resources. Start with 1-5 if you are new.                                            |
| **Target**             | How many accounts to register in total. Set to **0** for unlimited (runs until you stop it).                                                                                              |
| **Fail Limit**         | Stop the task after N total failures. Set to **0** for unlimited (no limit on failures).                                                                                                  |
| **Auto Resend**        | When Telegram requires a payment for SMS, automatically retry with a new number instead of failing.                                                                                       |
| **Preemptive Captcha** | Solve the captcha before sending the verification code. This avoids RECAPTCHA errors that can happen mid-registration.                                                                    |
| **2FA**                | Set a Two-Factor Authentication password on newly registered accounts. **OFF** = no 2FA, **Random** = generate a random password, **Custom** = use a specific password you type in.       |
| **2FA Password**       | Only visible when 2FA is set to "Custom". Enter your desired password (3-12 characters, letters and numbers).                                                                             |
| **Passkey**            | Register a FIDO2 passkey on the new account. This allows you to recover the session later using the [Passkey Recovery](/mvs-docs/modules/passkey-recovery.md) module if the session dies. |
| **Custom Names**       | Use a custom name list instead of random name generation. When enabled, names are taken from your custom list.                                                                            |

### Region

| Setting             | Description                                                                                    |
| ------------------- | ---------------------------------------------------------------------------------------------- |
| **Country**         | The country for the phone number and account locale. Selected via the country/region selector. |
| **Language**        | Language code sent to Telegram (e.g., `en`, `es`, `ru`). Auto-filled based on country.         |
| **System Language** | System language code (e.g., `en-US`, `es-ES`). Auto-filled based on country.                   |
| **Timezone**        | Timezone for the account (e.g., `Europe/London`). Auto-filled based on country.                |
| **Operator**        | Mobile operator filter for SMS service. Leave as `any` unless you need a specific carrier.     |

### SMS Service

| Setting                      | Description                                                                            |
| ---------------------------- | -------------------------------------------------------------------------------------- |
| **Provider**                 | Which SMS service to use: **SMS Activate** or **Firefox**.                             |
| **Code Mode**                | How to receive the verification code: **SMS** (text message) or **Call** (phone call). |
| **API Key**                  | Your API key for the selected SMS provider.                                            |
| **Domain**                   | Custom domain for SMS Activate (default: `sms-activate.ae`).                           |
| **Protocol**                 | HTTPS or HTTP for SMS Activate API calls.                                              |
| **Firefox Login / Password** | Credentials for the Firefox SMS service (only visible when Firefox is selected).       |
| **Service ID**               | Service identifier for the SMS provider (usually `tg` for Telegram).                   |
| **Max Price**                | Maximum price per number. Leave at 0 for no limit.                                     |
| **Provider IDs**             | Comma-separated list of specific provider IDs to use. Leave empty for all providers.   |

### Email Service

| Setting                  | Description                                                                  |
| ------------------------ | ---------------------------------------------------------------------------- |
| **Provider**             | Email service for verification: **Antisafety**, **Bower**, or **Corp Mail**. |
| **API Key**              | Your API key for the selected email provider.                                |
| **Bower Domain**         | Domain for Bower emails (e.g., `gmail.com`).                                 |
| **Corp Mail URL / Site** | URL and site type for Corp Mail service.                                     |

### Timeouts

| Setting     | Description                                                     |
| ----------- | --------------------------------------------------------------- |
| **SMS**     | How long to wait for an SMS code (seconds). Default: 120.       |
| **Captcha** | How long to wait for captcha solving (seconds). Default: 120.   |
| **Email**   | How long to wait for email verification (seconds). Default: 90. |
| **APNS**    | How long to wait for a push token (seconds). Default: 120.      |

### Number DB Check

| Setting             | Description                                                                                                                                              |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Enable DB Check** | Check if a phone number has been used before (in a shared database). Prevents re-using numbers that were recently registered.                            |
| **Min Days**        | Minimum days since last use. Set to **0** to skip any previously used number. Set to a higher number (e.g., 30) to only skip numbers used very recently. |

### Core API

| Setting          | Description                                                      |
| ---------------- | ---------------------------------------------------------------- |
| **Core API Key** | API key for the MVS Core service (captcha solving, push tokens). |

## How to Use

1. Go to **Registration** in the sidebar
2. Select your **Platform** (iOS or Android)
3. Set the number of **Threads** (start with 1-3)
4. Set a **Target** count or leave at 0 for unlimited
5. Choose a **Country** in the Region section
6. Select your **SMS Provider** and enter the API key
7. Select your **Email Provider** and enter the API key
8. Choose a **Proxy list** from the dropdown
9. Click the green **Start** button

{% hint style="info" %}
**Save your configuration!** After setting everything up, type a name in the Config Name field and click **Save**. Next time, you can load it from the dropdown instead of filling everything in again.
{% endhint %}

{% hint style="warning" %}
**You need proxies** to register accounts. Without proxies, Telegram will quickly block your IP. See [Working with Proxies](/mvs-docs/guides/proxy-guide.md) for setup instructions.
{% endhint %}

## Understanding the Results

During registration, the log panel shows each step:

* **Push token OK** -- obtained a device push token
* **Got number: +XXX...** -- bought a phone number from the SMS service
* **SUCCESS: +XXX...** -- account registered successfully
* **FAIL: +XXX...** -- registration failed (reason shown)

After the task finishes, a summary shows:

* Total success / fail counts
* Speed (registrations per minute)
* Breakdown: phones used, codes received, captchas solved, emails used, etc.

Successfully registered accounts appear in the [Accounts](/mvs-docs/accounts/account-management.md) page with status **new** and source **registered**.

For a complete step-by-step walkthrough, see [How to Register Your First Accounts](/mvs-docs/guides/registration-guide.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mvs-3.gitbook.io/mvs-docs/modules/registrator.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
