/check_handle

Checks if a specific handle is already taken.

A "handle" works like a username in the Sila ecosystem. This endpoint ensures that a potential handle is available for use. If an entity has already been created with that handle, this endpoint will respond with a message that says that the handle is already in use and a "status": "FAILURE" in the JSON response body.

  

Requests

In the header.user_handle field, put the handle for which you want to check availability. The entry for header.app_handle should have your developer handle.

The request body format for this endpoint is the header_msg JSON object.

An authsignature header is required for this request. (Create this using the keypair associated with the app_handle; see authentication for help generating this signature.)

Note - We recently renamed the field auth_handle to app_handle. For backward compatibility, auth_handle is still valid but has been removed from our documentation.

  
POST /0.2/check_handle HTTP/1.1
Host: sandbox.silamoney.com
authsignature: [GENERATED AUTHSIGNATURE HEX STRING HERE]
Content-Type: application/json

{
  "header": {
    "created": 1234567890, 
    "app_handle": "handle.silamoney.eth", 
    "user_handle":"user.silamoney.eth", 
    "version": "0.2", 
    "crypto": "ETH", 
    "reference": "<your unique id>"
  }, 
  "message": "header_msg"
}

***

HTTP/1.1 200 OK

{
  "success": true,
  "reference": "<your unique id>",
  "message": "user.silamoney.eth is available.",
  "response_time_ms": "171",
  "status": "SUCCESS"
}
const userHandle = 'user.silamoney.eth';

const res = await Sila.checkHandle(userHandle);

// Success Response Object

console.log(res.statusCode); // 200
console.log(res.data.success); // true
console.log(res.data.reference); // your unique id
console.log(res.data.status); // SUCCESS
console.log(res.data.message); // User is available!

// Failure Response Object

console.log(res.statusCode); // 200
console.log(res.data.success); // false
console.log(res.data.reference); // your unique reference id
console.log(res.data.status); // FAILURE
console.log(res.data.message); // User is already taken
payload = {
  "user_handle": "user.silamoney.eth" # Required
}

# Make sure silaApp is initialized with registered app_private_key and app_handle.
User.checkHandle(silaApp, payload)

### Success Response Object _200 OK_
{
    'success': True,
    'message': 'user.silamoney.eth is available!',
    'reference': 'd725a285-3cda-47cb-aa55-60db70460ae4',
    'status': 'SUCCESS',
    'status_code': 200
}

### Failure Response Object _200 OK_
{
    'success': False,
    'status': 'FAILURE',
    'message': 'user.silamoney.eth is taken',
    'reference': 'd725a285-3cda-47cb-aa55-60db70460ae4',
    'status_code': 200
}
String userHandle = "user.silamoney.eth";
ApiResponse response = api.checkHandle(userHandle);

##### Success Response Object 200 

System.out.println(response.getStatusCode()); // 200
System.out.println(((BaseResponse)response.getData()).getReference()); // Random reference number
System.out.println(((BaseResponse)response.getData()).getStatus()); // SUCCESS
System.out.println(((BaseResponse)response.getData()).getMessage()); // user is available!
System.out.println(((BaseResponse)response.getData()).getSuccess()); // true

##### Failure Response Object 200

System.out.println(response.getStatusCode()); // 200
System.out.println(((BaseResponse)response.getData()).getReference()); // your unique reference id
System.out.println(((BaseResponse)response.getData()).getStatus()); // FAILURE
System.out.println(((BaseResponse)response.getData()).getMessage()); // user is already taken.
System.out.println(((BaseResponse)response.getData()).getSuccess()); // false
$userHandle = 'user.silamoney.eth';
$response = $client->checkHandle($userHandle); // Returns Silamoney\Client\Api\ApiResponse

### Success 200
echo $response->getStatusCode(); // 200
echo $response->getData()->getReference(); // your unique id
echo $response->getData()->getStatus(); // SUCCESS
echo $response->getData()->getMessage(); // User is available

### Failure 200
echo $response->getStatusCode(); // 200
echo $response->getData()->getReference(); // your unique reference id
echo $response->getData()->getStatus(); // FAILURE
echo $response->getData()->getMessage(); // User is already taken
string userHandle = "user.silamoney.eth";
ApiResponse<object> response =  api.CheckHandle(userHandle);

// Success Response Object 200

Console.WriteLine(response.StatusCode); // 200
Console.WriteLine(((BaseResponse)response.Data).Reference); // your unique reference id
Console.WriteLine(((BaseResponse)response.Data).Status); // SUCCESS
Console.WriteLine(((BaseResponse)response.Data).Message); // user is available!

// Failure Response Object 200

Console.WriteLine(response.StatusCode); // 200
Console.WriteLine(((BaseResponse)response.Data).Reference); // your unique reference id
Console.WriteLine(((BaseResponse)response.Data).Status); // FAILURE
Console.WriteLine(((BaseResponse)response.Data).Message); // user is already taken
KeyTypeDescription
headerJSON objectRequired. Used for API authentication of signatures. Requires these keys in JSON format: created app_handle user_handle.
header.createdIntegerRequired. UTC Unix Timestamp in seconds or milliseconds.
This value should match the required regex pattern: ^[0-9]{10,14}$.
The date must not be future-dated and must not be dated more than 5 minutes in the past.
Example: 1234567890
header.app_handleStringRequired. Alphanumeric value, must be globally unique. Min length 3, Max 100 (not including . silamoney.com portion, which can be optionally left off).
This value should match the required regex pattern: ^[-a-zA-Z0-9_.]+$ (not including .silamoney.com portion).
Examples: handle.silamoney.eth or handle
header.user_handleStringRequired. Alphanumeric value, must be globally unique. Min length 3, Max 100 (not including . silamoney.com portion, which can be optionally left off).
This value should match the required regex pattern: ^[-a-zA-Z0-9_.]+$ (not including .silamoney.com portion).
Examples: user.silamoney.eth or user
header.versionStringOptional. May not be null, but can be left out of request. Valid values: 0.2, v0.2, V0.2 Example: 0.2
header.cryptStringOptional. Must be UPPER-CASE. Only valid value is ETH. Example: ETH
header.referenceStringOptional. Can be any string, uniqueness not required. May not be null. Example: ref
  

Responses

The status attribute is a JSON key sent in the response body with possible values of "SUCCESS" and "FAILURE". We now also include a success attribute with a boolean value ("success": true = "status": "SUCCESS" and "success": false = "status": "FAILURE"). Both of these keys will be included in every response returned as a JSON object.

Status Codesuccess AttributeDescription
200trueHandle sent in header.user_handle is available.
200falseHandle sent in header.user_handle is taken.
400falseBad request format - check validation_details for more information.
401falseAuth signature is absent or derived address does not belong to app_handle.