# Device Activation Methods

For authentication on Blynk platform, every device should have a unique AuthToken. AuthToken is the main identifier of every device in the Blynk Cloud. Depending on the hardware, connectivity, and the IoT use-case you are working on, a way of getting AuthTokens for your device can be different.

There are three ways to activate devices on Blynk platform:

1. Manually create a device using Blynk.Console for initial prototyping (works for any hardware)
2. Dynamically provision AuthTokens and WiFi credentials for [supported devices](https://docs.blynk.io/en/~/revisions/ALsZL4ielzatIAwAwHQo/blynk.edgent/overview#hardware-supported-by-blynk.edgent)
3. Use Static Tokens for cellular, Ethernet, and other non-WiFi connection methods

### 1. Activating devices with manually generated AuthTokens

This method is recommended for prototyping stages or when you build a device for yourself. It's the most simple method that works with any supported hardware and any connection type.

On a high level, you manually create a new device and then place the generated AuthToken to your device's firmware.

The main difference from WiFi provisioning is that AuthToken should be manually generated and flashed to the device before it can be used.

#### Here is a tutorial on how to activate devices manually:

{% content-ref url="activating-devices/manual-device-activation" %}
[manual-device-activation](https://docs.blynk.io/en/~/revisions/ALsZL4ielzatIAwAwHQo/getting-started/activating-devices/manual-device-activation)
{% endcontent-ref %}

###

### 2. WiFi provisioning with Blynk.Inject

For supported devices that can connect to the Internet over WiFi, you can use **WiFi provisioning** method which is built-in into Blynk.Apps.

Using this method, Blynk.Apps, and Blynk.Edgent will take care of telling your devices how to connect to your home or office WiFi network. New AuthToken will be automatically generated and stored on the device. There is no need to specify WiFi credentials and Auth Token in the firmware code.

{% hint style="warning" %}
Using provided WiFi provisioning is highly recommended if you are working on a commercial WiFi product
{% endhint %}

This method is especially beneficial for commercial applications because:

* You don't know upfront to which WiFi network your clients will connect your devices to
* It simplifies the manufacturing process at scale as you use same code without a need to manually add AuthToken to each device

#### Here is a tutorial on how to activate devices with Blynk.Inject:

{% content-ref url="activating-devices/blynk-edgent-wifi-provisioning" %}
[blynk-edgent-wifi-provisioning](https://docs.blynk.io/en/~/revisions/ALsZL4ielzatIAwAwHQo/getting-started/activating-devices/blynk-edgent-wifi-provisioning)
{% endcontent-ref %}

### 3. Static Token Activation

This method is usually used in commercial applications when you need to deploy a high volume of devices and they will need to be activated by end customers.

This method works best cellular, ethernet, and other non-wifi connection methods.

#### Here is a tutorial on how to activate devices with Static tokens:

{% content-ref url="../commercial-use/deploying-products-with-static-authtokens" %}
[deploying-products-with-static-authtokens](https://docs.blynk.io/en/~/revisions/ALsZL4ielzatIAwAwHQo/commercial-use/deploying-products-with-static-authtokens)
{% endcontent-ref %}


---

# 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://docs.blynk.io/en/~/revisions/ALsZL4ielzatIAwAwHQo/getting-started/activating-devices.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.
