Users are the fine folks who play the games and use the apps built with Asset Layer. Users own assets and have balances of currencies. Users can buy and sell assets in marketplaces.

Users can also participate in Asset Layer as creators. Users can create and join teams to build and contribute to apps. Users can create collections and mint new assets.

Actions taken in Asset Layer are initiated by apps on behalf of users. In order for an app to take an action on behalf of a user, that user must be authenticated with the app. The degree to which an app can access a user's resources are determined by the app's permissions. To learn more, check out Auth + Permissions

User Data Model

  • userId: a UUID for the user

  • email: the user's email address. This value must be unique

  • handle: a human readable handle which can be used in API requests. This value must be unique. Handles are automatically generated when a new user is first encountered.

  • name (optional): the user's first and last name

  • roles: an array containing the teams a user is a part of and the role they have in those teams

  • createdAt: date-time when the user document was created

  • updatedAt: date-time when the user document was last updated

Example Data

"user": {
    "userId": "64be8cb18c37609ec45870c4",
    "name": "Graeme Madden",
    "email": "",
    "handle": "gmadd81",
    "roles": [
            "teamId": "64be8f808e7066c3bf204986",
            "role": "developer"
            "teamId": "64bfc61802e55dfc43de1914",
            "role": "developer"
    "createdAt": 1690205361878,
    "updatedAt": 1691096112612

App-Owned Wallets

App-owned wallets are a special category of user. Apps can create app-owned wallets which function similarly to a user in the Asset Layer API. App-owned wallets can own and transfer assets and currency balances. They can also be used to list assets in the marketplace and create collections. They serve as an organizational unit and as an extension of an application. App-owned wallets have a handle which must start with "$". Regular user handles cannot start with "$"

App-Owned Wallets Data Mode

  • userId: a UUID associated with the app-owned wallet

  • handle: a string that begins with "$" and is unique to the app that created the app-owned wallet

  • appId: the appId of the app that created the app-owned wallet

Example Data

"userId": "64d1752c7adacad8564e0986",
"handle": "$storage",
"appId": "6363fba03a1daf2d84e89ea8"

Last updated