> For the complete documentation index, see [llms.txt](https://docs.karrier.one/karrier-one-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.karrier.one/karrier-one-api/karrier-number-system-api/number-pre-registration.md).

# Number Pre-Registration

User pre-registration enables providers or telecom operators to pre-determine the crypto wallet address that will be associated with a user. This process is useful for sending assets (e.g., Welcome NFTs, gifts) or tracking user engagement.&#x20;

**Note:** This does not grant the operator access to the wallet or its private keys.

### How It Works

* **Purpose:**\
  Pre-register a user with a specific crypto wallet address for asset distribution and engagement tracking.
* **Security:**\
  The operator *cannot* access the user's wallet or its private keys.

## API Endpoint: User Pre-Registration

#### Request Details

* **Endpoint URL:**\
  `https://kns-api.karrier.dev/kns/register-user-login`
* **HTTP Method:**\
  `POST`
* **Headers:**
  * `x-api-key: testkey`
  * `Content-Type: application/json`
* **Payload Example:**

  ```json
  jsonCopy{
    "phoneNumber": "+17025551234",
    "email": "somebody@karrier.dev"
  }
  ```

#### cURL Example

```bash
bashCopycurl --location 'https://kns-api.karrier.dev/kns/register-user-login' \
--header 'x-api-key: testkey' \
--header 'Content-Type: application/json' \
--data-raw '{
  "phoneNumber": "+17025551234",
  "email": "somebody@karrier.dev"
}'
```

### Sample Response

A successful request returns a JSON response similar to the example below:

```json
jsonCopy{
  "success": true,
  "message": "User pre-registered successfully",
  "userId": "1ef57f69-0bb6-479f-aeb5-7ef21949520a",
  "zkAddress": "0x894033d5baf0a0cf8cc99f5cc03ee63c3666cb2dcc6c6717acf9dbfadfc49101",
  "identifiers": [
    {
      "identifier": "somebody@karrier.dev",
      "type": "email"
    },
    {
      "identifier": "+17025551234",
      "type": "phone"
    }
  ]
}
```

* **`success`:** Indicates the status of the request.
* **`message`:** Provides a brief summary of the operation.
* **`userId`:** A unique identifier for the pre-registered user.
* **`zkAddress`:** The crypto wallet address generated for the user.
* **`identifiers`:** Lists the user's identifiers, such as email and phone number.

## Request & Response Details

This section outlines the key parameters, example requests, and sample responses for the API endpoint.&#x20;

{% openapi src="/files/4zBayxS9nfElgm3yFKwA" path="/kns/register-user-login" method="post" %}
[kns-api-swagger.json](https://1343437234-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2J36Me8m3Rq5gwWD8Fvi%2Fuploads%2FxyZZSK5cNA1RfsoAFdNT%2Fkns-api-swagger.json?alt=media\&token=51b156bd-e60e-4ddc-b707-02db1d5ee46e)
{% endopenapi %}

## Conclusion

This API provides a streamlined way to pre-register users by associating a predetermined crypto wallet address with their account. If you have any questions or need further assistance, please feel free to contact us at <support@karrier.one>.
