Skip to main content

Auth Endpoints

Authentication endpoints for the Universal Account service.

Web3 Authentication

Connect Wallet

POST /auth/web3

Authenticate using Web3 wallet signature.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Request Body:

{
"signature": "0x1abc2def3456789abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef12345671c",
"signer": "0x1234567890AbCdEf1234567890AbCdEf12345678"
}

Response: 201 - The user has been successfully logged in

{
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshTokenExpire": 1710175253716,
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"accessTokenExpire": 1710175253716,
"userId": "0x1234567890abcdef1234567890abcdef12345678"
}

Token Management

Refresh Token

POST /auth/refresh

Refresh an access token using a refresh token.

Request Body:

{
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Response: 201 Created

Telegram Authentication

Request Telegram OTP

POST /auth/telegram-otp-request

Request a one-time password for Telegram authentication.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Request Body:

{
"telegramId": "123456789"
}

Response: 201 - The OTP request was successful

Telegram Login

POST /auth/telegram-login

Authenticate using Telegram ID and OTP.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Request Body:

{
"telegramId": "123456789",
"username": "username123",
"firstname": "FIRST",
"lastname": "LAST",
"avatarUrl": "https://example.com/avatar.jpg",
"otp": "123456"
}

Response: 201 - The user has been successfully logged in

Create Telegram User from Bot Login

POST /auth/telegram/user

Create a new user from Telegram bot login.

Request Body:

{
"telegramId": "123456789",
"username": "username123",
"firstname": "FIRST",
"lastname": "LAST",
"domainId": 1,
"sig": "0x1abc2def3456789abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef12345671b",
"timestamp": 1741084672,
"apiKey": "1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p"
}

Response: 201 Created

Telegram Bot Login from App

POST /auth/telegram/callback

Complete Telegram bot login from the app.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Request Body:

{
"state": "123456789",
"code": "ABC123DEF456GHI"
}

Response: 201 - The user has been successfully logged in with Telegram

Email Authentication

Request Email OTP

POST /auth/email-otp-request

Request a one-time password via email.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Request Body:

{
"email": "[email protected]"
}

Response: 201 - The OTP request was successful

Email Login

POST /auth/email-otp-verify

Verify email OTP and login.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Request Body:

{
"email": "[email protected]",
"otp": "123456"
}

Response: 201 - The user has been successfully logged in

OAuth Authentication

Facebook Authentication

Facebook Login

GET /auth/facebook

Initiate Facebook login flow.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Response: 200 OK

Facebook Authentication Callback

POST /auth/facebook/callback

Handle Facebook authentication callback.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Request Body:

{
"code": "ABCD1234efgh5678IJKL9012mnop",
"error": "mismatch_redirect_uri",
"state": "eyJrZXkiOiIxYTJiM2M0ZDVlNmY3ZzhoOWkwajFrMmwzbTRuNW82cCIsIngtc2lnbmF0dXJlIjoiMHgxYWJjMmRlZjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxYyIsIngtdGltZXN0YW1wIjoiMTc0MDU1ODExMDEzMyIsIngtYXBpLWtleSI6IjFhMmIzYzRkNWU2ZjdnOGg5aTBqMWsybDNtNG41bzZwIiwib3JpZ2luIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwIn0"
}

Response: 201 - The user has been successfully logged in via Facebook

Google Authentication

Google Login

GET /auth/google

Initiate Google authentication flow.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Response: 200 - The user has successfully started the authentication via Google

Google Login Callback

POST /auth/google/callback

Handle Google authentication callback.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Request Body:

{
"code": "ABCD1234efgh5678IJKL9012mnop",
"error": "mismatch_redirect_uri",
"state": "eyJrZXkiOiIxYTJiM2M0ZDVlNmY3ZzhoOWkwajFrMmwzbTRuNW82cCIsIngtc2lnbmF0dXJlIjoiMHgxYWJjMmRlZjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxYyIsIngtdGltZXN0YW1wIjoiMTc0MDU1ODExMDEzMyIsIngtYXBpLWtleSI6IjFhMmIzYzRkNWU2ZjdnOGg5aTBqMWsybDNtNG41bzZwIiwib3JpZ2luIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwIn0"
}

Response: 201 - The user has been successfully logged in via Google

Twitter Authentication

Twitter Login

GET /auth/twitter

Initiate Twitter authentication flow.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Response: 200 OK

Twitter Login Callback

POST /auth/twitter/callback

Handle Twitter authentication callback.

Headers:

  • x-signature (required) - Request signature
  • x-timestamp (required) - Timestamp
  • origin (required) - Domain origin
  • x-api-key (required) - API Key

Request Body:

{
"code": "ABCD1234efgh5678IJKL9012mnop",
"error": "mismatch_redirect_uri",
"state": "eyJrZXkiOiIxYTJiM2M0ZDVlNmY3ZzhoOWkwajFrMmwzbTRuNW82cCIsIngtc2lnbmF0dXJlIjoiMHgxYWJjMmRlZjM0NTY3ODlhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxYyIsIngtdGltZXN0YW1wIjoiMTc0MDU1ODExMDEzMyIsIngtYXBpLWtleSI6IjFhMmIzYzRkNWU2ZjdnOGg5aTBqMWsybDNtNG41bzZwIiwib3JpZ2luIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwIn0"
}

Response: 201 - The user has been successfully logged in via Twitter