Skip to main content

POST /api/auth/register

Creates a new user account and automatically generates a TRON wallet for the user. Upon successful registration, the user is automatically logged in with access and refresh tokens set as HTTP-only cookies.

Authentication

No authentication required.

Request Body

email
string
required
User’s email address. Must be unique and follow valid email format.
username
string
required
Unique username for the account. Minimum 3 characters.
password
string
required
User’s password. Must be at least 8 characters long.
passwordConfirm
string
required
Password confirmation. Must match the password field.

Response

message
string
Success message confirming registration.
user
object
The newly created user object.
user.id
string
Unique user identifier.
user.email
string
User’s email address.
user.username
string
User’s username.
user.role
string
User’s role (default: “user”).
user.wallet
object
TRON wallet information.
user.wallet.address
string
TRON wallet address (base58 format).
user.wallet.balance
number
Current wallet balance.

Cookies Set

  • accessToken - JWT access token (HTTP-only, 7 days expiry)
  • refreshToken - JWT refresh token (HTTP-only, 7 days expiry)

Example Request

{
  "email": "[email protected]",
  "username": "johndoe",
  "password": "SecurePass123",
  "passwordConfirm": "SecurePass123"
}

Example Response

{
  "message": "User registered successfully",
  "user": {
    "id": "507f1f77bcf86cd799439011",
    "email": "[email protected]",
    "username": "johndoe",
    "role": "user",
    "wallet": {
      "address": "TRX7qS7n9qJCyXPZp3nYbH6KdQ3fPgDq8f",
      "balance": 0
    }
  }
}

Error Responses

error
string
Error message describing what went wrong.

400 Bad Request

  • All fields are required - One or more required fields are missing
  • Passwords do not match - Password and passwordConfirm don’t match
  • Password must be at least 8 characters - Password is too short
  • Email already registered - An account with this email already exists

500 Internal Server Error

  • Server error with error message details

Notes

  • Email addresses are automatically converted to lowercase
  • Email must match the pattern: /^\w+([-.]?\w+)*@\w+([-.]?\w+)*(\.\w{2,3})+$/
  • Username must be at least 3 characters long
  • Password is hashed using bcrypt before storage
  • A TRON wallet is automatically created for each new user
  • The private key is securely stored in the database (encrypted storage recommended for production)
  • Users are set to “active” status by default (isActive: true)

Build docs developers (and LLMs) love