# Set or toggle user status by identifier

Set or toggle user active status by any unique identifier field (id, email, externalId, accountAddress, etc.). If body contains { isActive: true/false }, sets explicitly. If no body, toggles. Admin only.

Endpoint: PUT /users/{identifier}/status
Version: 2.0.59
Security: authJWT

## Security:

  - `authJWT` (unknown)
    http bearer JWT

## Path parameters:

  - `identifier` (string, required)

## Request fields (application/json):

  - `isActive` (boolean)

## Response 200:

  - `200` (unknown)
    User status updated

## Response 200 fields (application/json):

  - `id` (string, required)

  - `email` (string)

  - `identifierEmail` (string, required)
    Universal identifier email for deterministic operations. Generated from B2B inputs (email, externalId) for wallet salt generation and external integrations.
    Example: user123@user.pers.internal

  - `firstName` (string, required)
    User first name

  - `lastName` (string, required)
    User last name

  - `externalId` (string, required)
    User external id

  - `accountAddress` (string, required)
    User account address

  - `instagramAccountId` (string, required)
    Instagram account id

  - `googleAccountName` (string, required)
    Google account name

  - `customData` (object, required)
    Custom data

  - `publicProfile` (object, required)
    Public profile data

  - `isActive` (boolean, required)
    Is active

  - `currentSigningAccountId` (string)
    Current active signing account ID for external wallet operations

  - `wallets` (array, required)
    User-owned counterfactual smart contract wallets that can receive tokens

  - `wallets.id` (string, required)
    Unique identifier for the internal wallet

  - `wallets.ownerType` (string, required)
    Owner type for polymorphic ownership
    Enum: "user", "business", "tenant", "system", "external"

  - `wallets.ownerId` (string, required)
    Owner ID for polymorphic ownership
    Example: user_123

  - `wallets.walletManagementType` (string, required)
    Type of internal wallet
    Enum: "custodial", "non-custodial"

  - `wallets.address` (string, required)
    CREATE2 generated address that can receive tokens

  - `wallets.chainId` (number, required)
    Blockchain network chain identifier

  - `wallets.status` (string, required)
    Current status of the wallet
    Enum: "pending", "active", "suspended", "archived"

  - `wallets.ownerSigningAccountId` (string)
    ID of signing account that owns this internal wallet

  - `wallets.tags` (array, required)
    Tags associated with the wallet for categorization

  - `wallets.createdAt` (string, required)
    Timestamp when the wallet was created

  - `wallets.updatedAt` (string, required)
    Timestamp when the wallet was last updated

  - `createdAt` (string, required)
    Timestamp when the user was created

  - `updatedAt` (string, required)
    Timestamp when the user was last updated

  - `registrationSource` (object)
    Registration source tracking for analytics - captures channel and attribution when user was created
    Example: {"channel":"web","medium":"referral","campaign":"launch_2026"}

  - `lastActivityAt` (string)
    Last activity timestamp. Updated whenever user generates tokens (login or refresh). Tracks last time user was active (~1 hour precision).

  - `activityCount` (number)
    Total activity count. Increments on every token generation (login + refresh). Measures true user engagement.
    Example: 42

  - `included` (object)
    Included related entities. Only populated when include parameter is specified.

  - `included.statusTypes` (array)
    User status types earned based on token balances (via ?include=status)

  - `included.statusTypes.name` (string, required)
    User Status Type name

  - `included.statusTypes.description` (string)
    User Status Type description

  - `included.statusTypes.minTokenBalance` (string, required)
    User Status Type eligible Token Addresses

  - `included.statusTypes.discountPercentage` (number, required)
    User Status Type discount Rate in percentage

  - `included.statusTypes.imageUrl` (string)
    User Status Type image Url

  - `included.statusTypes.eligibleTokenAddresses` (array)
    Eligible token contract addresses for this status type
    Example: ["0x1234...","0x5678..."]

  - `included.statusTypes.tags` (array)
    Tags for categorization and filtering
    Example: ["vip","premium","gold"]

  - `included.statusTypes.order` (number)
    Explicit ordering for status hierarchy (higher = more prestigious). If not set, falls back to minTokenBalance for ordering.
    Example: 100

  - `included.statusTypes.id` (number, required)
    User Status Type id

  - `included.tokenBalances` (array)
    Token balances for user wallets (via ?include=balances)

  - `included.tokenBalances.accountAddress` (string, required)

  - `included.tokenBalances.tokenBalances` (array, required)

  - `included.tokenBalances.tokenBalances.contractAddress` (string, required)

  - `included.tokenBalances.tokenBalances.chainId` (number, required)

  - `included.tokenBalances.tokenBalances.balance` (number, required)

  - `included.tokenBalances.tokenBalances.tokenName` (string)

  - `included.tokenBalances.tokenBalances.tokenSymbol` (string)

  - `included.tokenBalances.tokenBalances.tokenType` (string, required)

  - `included.tokenBalances.tokenBalances.tokenId` (string, required)

  - `included.tokenBalances.tokenBalances.metadataUri` (string, required)

  - `included.tokenBalances.tokenBalances.metadata` (object, required)
    Token metadata (loaded from IPFS/storage when needed for filtering)

## Response 404:

  - `404` (unknown)
    User not found

