Asset Layer Docs
Asset LayerAPI Docs
  • 👋Welcome
  • Getting Started
    • Quick Start
      • Quick Start for Developers
      • Quick Start for Creators
      • Quick Start for Unity
    • Core Concepts
      • Users
      • Auth + Permissions
      • Teams
      • Apps
      • Slots
      • Expressions
      • Assets + Collections
      • Currencies
      • Marketplace and Shops
      • Core Concepts in Action
    • SDK Docs
      • Setup
      • Users
        • getUser()
      • Apps
        • info()
        • getApp()
        • getApps()
        • slots()
        • getAppSlots()
        • getAppSlotIds()
      • Slots
        • getSlot()
        • collections()
        • getSlotCollections()
        • getSlotCollectionIds()
        • getSlotExpressions()
        • createExpression()
        • updateExpression()
        • getExpressionTypes()
      • Collections
        • info()
        • getCollection()
        • getCollections()
        • assets()
        • getCollectionAssets()
        • getCollectionAssetIds()
        • createCollection()
        • updateCollection()
        • updateCollectionImage()
        • activateCollection()
        • deactivateCollection()
      • Assets
        • info()
        • getAsset()
        • getAssets()
        • user()
        • getUserAssets()
        • getUserAssetIds()
        • getUserAssetCounts()
        • getUserCollectionAssets()
        • getUserCollectionsAssets()
        • getUserSlotAssets()
        • getUserSlotsAssets()
        • mintAssets()
        • send()
        • sendAsset()
        • sendAssets()
        • sendCollectionAssets()
        • sendLowestAsset()
        • sendRandomAsset()
        • update()
        • updateAsset()
        • updateAssets()
        • updateCollectionAssets()
        • expressionValues()
        • updateAssetExpressionValue()
        • updateAssetsExpressionValue()
        • updateCollectionAssetsExpressionValue()
        • updateBulkExpressionValues()
      • Equips
        • getEquips()
        • setEquip()
        • removeEquip()
      • Currencies
        • info()
        • getCurrency()
        • balance()
        • getCurrencyBalance()
        • getCurrencySummary()
        • increaseCurrencyBalance()
        • decreaseCurrencyBalance()
        • transferCurrency()
      • Listings
        • getListing()
        • user()
        • getUserListings()
        • getUserListingsCounts()
        • getUserCollectionListings()
        • getUserCollectionListingsCounts()
        • getUserSales()
        • getUserSalesCounts()
        • getUserPurchases()
        • getUserPurchasesCounts()
        • collection()
        • getCollectionListings()
        • getCollectionsListings()
        • getCollectionListingsCounts()
        • getCollectionsListingsCounts()
        • getCollectionListingsStats()
        • getCollectionsListingsStats()
        • app()
        • getAppListings()
        • getAppListingsCounts()
        • getAppListingsStats()
        • new()
        • listAsset()
        • listAssets()
        • listCollectionAssets()
        • updateListing()
        • buyListing()
        • removeListing()
      • Shop
        • buyItem()
        • summary()
      • Core Types
        • User
        • App
        • Slot
        • Expression
        • Collection
        • Asset
        • Equip
        • Currency
        • Listing
        • Shop
        • Basic
      • SDK Repo
      • C# SDK for Unity
    • Guides
      • How to Integrate Asset Layer into your Unity Game
    • API Docs
    • Asset Layer GPT
  • Build an app
    • App Setup
      • Creating an App
      • Managing Apps
      • App Info
      • Manage Permissions
      • Manage Slots
      • Manage Collections
      • Manage Currencies
      • App Settings
    • App Development
    • Build With Unity
      • Unity App Setup
      • Advanced Unity Setup
        • WebGL App Setup
      • Asset Layer Unity SDK
        • Login + Authentication
        • Create Assets in Unity
        • Import Assets Into Your Scene
        • Inventory Manager
        • Sync Your Assets
        • Asset Layer Game Server
        • C# SDK
    • Sample App
      • Getting Started With Sample App Locally
      • Environment Variables
      • API Routes
      • Deployment
      • Default Pages
      • Deploying Your Unity WebGL Game Through Sample App
  • Create and Manage Assets
    • Create Assets With Code
    • Create Assets Without Code
      • Create Assets for My App
      • Submit a Collection for a 3rd Party App
      • Create an Independent Collection - Coming Soon!
    • Create Assets in Unity
    • Managing Collections from 3rd Party Creators
  • Manage Assets
    • My Assets
      • Listing Assets for Sale
      • Sending Assets as a Gift
      • My Listings
      • Marketplace History
    • Marketplace
  • Settings
    • Team Settings
    • Account Settings
    • Pricing
  • Details
    • Expression Types
      • Image
      • Audio
      • Video
      • Unity
      • Spine 4.0 (2D Animated Characters)
      • Additional Expression Types
Powered by GitBook
On this page
  • User Data Model
  • App-Owned Wallets
  • App-Owned Wallets Data Mode
  1. Getting Started
  2. Core Concepts

Users

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": "gmadd81@gmail.com",
    "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"
PreviousCore ConceptsNextAuth + Permissions

Last updated 1 year ago