Skip to main content

Username API

Wallets remain the canonical account anchor. User-facing labels are provided by unique usernames.

Get current username

GET /v1/username?userId=<uuid>

Returns either a full username record or { userId, username: null } when unset.

Set username

PUT /v1/username

Request body:

{
"userId": "00000000-0000-0000-0000-000000000000",
"username": "builder_one"
}

Rules:

  • lowercase letters, numbers, underscores only
  • length 3-24
  • globally unique (case-insensitive)

When another user claims the name first, API returns 409 with error=username_taken.

Check availability

GET /v1/username/check?username=builder_one

Response:

{
"username": "builder_one",
"available": true
}

Batch resolve usernames

POST /v1/username/batch

Request body:

{
"userIds": [
"00000000-0000-0000-0000-000000000000",
"11111111-1111-4111-8111-111111111111"
]
}

Response includes existing usernames for the requested IDs.