Skip to main content

Kotlin SDK

caution

The SDK code and documentation are in ALPHA state and are under heavy development. As a result, the apis are still in flux, and the documentation may be out of date with the code.

Emoji ID is a directory service that associates almost any type of structured data with a short, memorable identifier the emoji id.

This SDK is automatically generated by the OpenAPI Generator project:

  • API version: 0.2.262
  • Build package: org.openapitools.codegen.languages.KotlinClientCodegen

Requires#

  • Kotlin 1.3.61
  • Gradle 4.9

Installation#

note

Until y.at is launched publically, the dependency will not be available on public Maven repositories. You can contact the Yat team to obtain a copy of the Kotlin SDK while the project is in Alpha.

Build#

First, create the gradle wrapper script:

gradle wrapper

Then, run:

./gradlew check assemble

This runs all tests and packages the library.

Configuring the SDK#

Base URL#

You can set the base URL for the API through the static property ApiClient.baseUrl.

import com.yatlabs.yat.infrastructure.ApiClient
fun setup() {    ApiClient.baseUrl = "https://y.at/api"}

Token Storage#

When you authenticate with the Yat API, you will receive a pair of tokens: an access token and a refresh token.

import com.yatlabs.yat.apis.UserAuthenticationApiimport com.yatlabs.yat.models.LoginRequest
fun main() {    val tokenPair = UserAuthenticationApi.shared.login(        LoginRequest(            email = email,            password = password        )    )    println("Access token: ${tokenPair.accessToken}")    println("Refresh token: ${tokenPair.refreshToken}")}

Yat Kotlin SDK manages the storage of your token pair and refreshes the access token when it expires. Tokens are stored in the memory by default. If you would like to override this behavior and manage the storage of the tokens yourself, override the com.yatlabs.yat.infrastructure.TokenStorage interface, and pass an instance to the ApiClient as in the Android example below.

import android.content.SharedPreferencesimport com.yatlabs.yat.infrastructure.ApiClientimport com.yatlabs.yat.infrastructure.TokenStorage
class SharedPrefsTokenStorage(prefs: SharedPreferences): TokenStorage {
    override var accessToken: String?        get() = prefs.getString("access_token", null)        set(value) = prefs.edit().run {            putString("access_token", value)            apply()        }
    override var refreshToken: String?        get() = prefs.getString("refresh_token", null)        set(value) = prefs.edit().run {            putString("refresh_token", value)            apply()        }
}
fun setup() {    ApiClient.baseUrl = "https://y.at/api"    ApiClient.tokenStorage = SharedPrefsTokenStorage(prefs = appSharedPrefs)}

Logging#

You can change the logging level for the HTTP requests by setting the ApiClient.logLevel static property.

import com.yatlabs.yat.infrastructure.ApiClientimport okhttp3.logging.HttpLoggingInterceptor

fun setup() {    ApiClient.logLevel = HttpLoggingInterceptor.Level.BODY}

Logging levels are as below:

Log LevelDescription
NONENo logs.
BASICLogs request and response lines.
HEADERSLogs request and response lines and their respective headers.
BODYLogs request and response lines and their respective headers and bodies (if present).

Getting Started#

Please follow the installation instruction and execute the following Kotlin code:

import com.yatlabs.yat.infrastructure.ApiClientimport com.yatlabs.yat.apis.*import com.yatlabs.yat.models.*
fun runDemo() {    println("Yat API calls will be made to ${ApiClient.baseUrl}")    ApiClient.baseUrl = "https://y.at/api"    println("Changed base path. Now Yat API calls will be made to ${ApiClient.baseUrl}");
    try {        val res = UserAuthenticationApi.shared.login(            LoginRequest(                email = "[email protected]",                password = "wrong_password"            )        )        println("Logged in (Should not see this): $res")    } catch (exception: Exception) {        println("Could not login: ${exception.message}")        try {            UsersApi.shared.getAccount() // Not logged in, should throw an error        } catch (exception: Exception) {            println("Cannot access account: ${exception.message}");        }    }
    try {        UserAuthenticationApi.shared.login(            LoginRequest(                email = "[email protected]",                password = "real_password"            )        )        println("Logged in.")        val account = UsersApi.shared.getAccount()        println("Account data: $account")    } catch (exception: Exception) {        println("Could not log in: ${exception.message}");    }}
fun main() {    runDemo()    println("Bye")}

Documentation for API Endpoints#

All paths are relative to the API base URL, which is set through the ApiClient.baseUrl static property as previously described.

ClassMethodHTTP requestDescription
ApiKeysApicreateApiKeyPOST /api_keysCreate new api key for current user
ApiKeysApideleteApiKeyDELETE /api_keys/{id}Delete provided api key
ApiKeysApilistApiKeysGET /api_keysLoad api keys for user
CartApiaddItemsPOST /cartUpdate cart items by adding new items to the cart
CartApiapplyPromoCodePOST /cart/promo_codeApply promo code
CartApicheckoutPOST /cart/checkoutCheckout last payment cart
CartApicheckoutOrderPOST /cart/checkout/{id}Checkout saved cart by id
CartApiclearCartDELETE /cartRemove all items from cart
CartApiconvertOrderToDraftPOST /cart/convert_to_draftConvert pending payment cart back into Draft status
CartApideletePaymentMethodsDELETE /payment_methods/{id}Delete payment method
CartApigetItemsGET /cartReturn cart content
CartApilistPaymentMethodsGET /payment_methodsFetch payment methods for the user
CartApiremoveItemDELETE /cart/cart_items/{cart_item_id}Removes an order item from the cart
DiscountsApiactivateRandomYatCodePOST /codes/{code_id}/random_yatUse random yat code
DiscountsApiaddPubkeyForCodePOST /codes/{code_id}/pubkeys/{pubkey}Add pubkey for code
DiscountsApilistCodesGET /codesFetch codes
DiscountsApirevokePubkeyForCodeDELETE /codes/{code_id}/pubkeys/{pubkey}Revoke pubkey for code
EmojiApiemojiListGET /emojiList of supported emoji characters
EmojiIDApieditEmojiIDPATCH /emoji_id/{emoji_id}Edit EmojiId
EmojiIDApiemojiIDMetadataGET /emoji_id/{emoji_id}/metadata
EmojiIDApigenerateSignaturePOST /emoji_id/{emoji_id}/generate_signatureGenerates a signature for the Yat allowing it to be minted
EmojiIDApigetStatsGET /emoji_id/{eid}/statsGet statistics for EmojiId
EmojiIDApilinkRedirectGET /redirectRedirect by EmojiId link
EmojiIDApilistEmojiIDsGET /emoji_idList user's Emoji Ids
EmojiIDApilistExtendedGET /emoji_id/extendedList extended view user's Emoji Ids
EmojiIDApiloadJsonGET /emoji_id/{eid}/json/{key}Load value from EmojiId key value store
EmojiIDApiloadJsonIndexGET /emoji_id/{eid}/jsonLoad value from EmojiId key value store with data keyed by YatJsonStoreKeys
EmojiIDApilookupEmojiIDGET /emoji_id/{emoji_id}Lookup EmojiId
EmojiIDApilookupEmojiIDPaymentGET /emoji_id/{emoji_id}/paymentLookup EmojiId Payment addresses
EmojiIDApilookupEmojiIdTickerGET /emoji_id/{emoji_id}/{tag}Lookup EmojiId data based on a symbol or ticker
EmojiIDApimetadataGET /nft_transfers/metadata/{token_id}
EmojiIDApirandomGET /emoji_id/randomReturn random Emoji
EmojiIDApirecentGET /emoji_id/recentReturn list of recently purchased emoji
EmojiIDApirhythmGET /emoji_id/{emoji_id}/rhythmCalculate EmojiId rhythm score
EmojiIDApisearchEmojiIDGET /emoji_id/searchSearch for EmojiID
EmojiIDApistoreJsonPOST /emoji_id/{eid}/json/{key}Store value under EmojiId key
KeyManagementApiaddPubkeyPOST /pubkeys/{pubkey}Add pubkey for current user
KeyManagementApiaddPubkeyForUserPOST /users/{user_id}/pubkeys/{pubkey}Add pubkey for user by user_id
KeyManagementApicreateWalletPOST /pubkeysGenerate custodial wallet
KeyManagementApigetPubkeysGET /pubkeysRetrieve pubkeys
KeyManagementApigetPubkeysForUserGET /users/{user_id}/pubkeysRetrieve pubkeys by user_id
LootBoxTypeApicreateTypePOST /lootbox_typeCreate a new lootbox category
LootBoxTypeApigenerateLootBoxesPOST /lootbox_type/generateGenerates a set of loot boxes
LootBoxTypeApigetTypesGET /lootbox_typeList all loot box categories
LootBoxesApicreateLootboxPOST /lootboxesCreate a new lootbox
LootBoxesApideleteLootboxDELETE /lootboxes/{id}Delete a lootbox
LootBoxesApilistLootboxesGET /lootboxesFetch lootboxes
LootBoxesApiopenLootboxPOST /lootboxes/{id}/openOpen lootbox
LootBoxesApishowLootboxGET /lootboxes/{id}Show information about lootbox
LootBoxesApiupdateLootboxPATCH /lootboxes/{id}Update a lootbox
OrganizationApigetBrandingGET /organizations/{id}/brandingLoad organization branding paramters
OrganizationApisetBrandingPUT /organizations/{id}/brandingSet organization branding parameters
ProxyApicallProxyPOST /proxyCalls a pre-defined proxy service with the provided data
TransferApideleteTransferDELETE /transfers/{transfer_id}Mark transfer request as deleted
TransferApilistFilteredGET /transfersList outgoing transfer requests for current or specified user If limit is omitted will display top 50 transfer requests
TransferApilistIncomingGET /transfers/incomingList transfer requests assigned to user
TransferApireceiverAcceptTransferPOST /transfers/{transfer_id}/receiver_acceptAs a receiver, accept transfer request by id.
TransferApirequestTransferPOST /transfersTransfer eid to either the pubkey or email address supplied in the PUT data
TransferApiresendCodePOST /transfers/{transfer_id}/resend_codeResend a new transfer OTP code for the current user, if the transfer allows it.
TransferApisenderAcceptTransferPOST /transfers/{transfer_id}/sender_acceptAs a sender, confirm the transfer request by transfer id.
UserAuthenticationApiloginPOST /auth/tokenLogin via password
UserAuthenticationApilogoutPOST /logoutInvalidates all user's access tokens
UserAuthenticationApimagicLinkLoginPOST /auth/magic_linkGenerate magic link for login
UserAuthenticationApirefreshTokenPOST /auth/token/refreshRefresh access token
UserAuthenticationApitwoFactorAuthenticationPOST /auth/2faTwo factor authentication
UserFeatureApireadFeaturesGET /user_featuresList users features
UserInterestApideleteUserInterestDELETE /user_interests/{emoji_id}Destroys the user interest preventing this Emoji ID's notification emails from being sent for this user
UserInterestApigetInterestedUsersGET /user_interestsReturns a paginated list of user interest records associated with the user
UserInterestApigetUserInterestForYatGET /user_interests/{emoji_id}Given an EmojiId returns information about the user interest if a record exists for this user
UserInterestApiregisterInterestPOST /user_interestsCreate new interest in emoji to be notified when available
UsersApibackupDisable2FAPOST /account/2fa/backup_disableDisable choosen 2FA provider or disable completely using backup code and user primary ID
UsersApiconfirm2FAPOST /account/2fa/confirmConfirm two factor authentication update
UsersApicreateUserPOST /usersRegister a User
UsersApideleteUserDELETE /users/{id}Delete a user
UsersApidisable2FAPOST /account/2fa/disableDisable choosen 2FA provider or disable completely
UsersApienable2FAPOST /account/2fa/enableEnables two factor authentication method
UsersApigetAccountGET /accountCurrent user account
UsersApigetAllUsersGET /usersList users
UsersApiloadGET /account/loadLoad user data for a session
UsersApisend2FASmsPOST /account/2fa/sms_codeSend SMS 2FA code
UsersApishowUserGET /users/{id}Show users
UsersApiupdateAccountPATCH /accountUpdate the currently logged in user
UsersApiupdateUserByAdminPATCH /users/{id}Update a user as an admin
WalletsApilistWalletsGET /walletsFetch associated wallet addresses for the user
WalletsApisyncWalletPOST /walletsAssociate new wallet address with user

Documentation for Models#

AcceptTransfer#

Properties#

NameTypeDescriptionNotes
codekotlin.StringConfirmation OTP of either the sender or receiver of the transfer

AddItemsCartRequest#

Properties#

NameTypeDescriptionNotes
itemskotlin.collections.List<AddItemsCartRequestItems>New items to add to cart
trackingDatakotlin.AnyTracking data[optional]

AddItemsCartRequestItems#

Properties#

NameTypeDescriptionNotes
emojiIdkotlin.StringEmojiID to buy

AdminNewLootBoxBody#

Properties#

NameTypeDescriptionNotes
statusinline
Status lootbox will be created in If status is `Used` lootbox with be automatically opened
yatskotlin.collections.List<kotlin.String>LootBox emoji IDs
ownerEmailkotlin.StringAssign lootbox an owner with matching email Should not be set if owner_id is set[optional]
ownerIdjava.util.UUIDLootbox owner_id, required for Owned and Used lootboxes[optional]

Enum: status#

NameValue
statusDraft, Available, Owned, Used

AdminNewLootBoxType#

Properties#

NameTypeDescriptionNotes
configAdminNewLootBoxTypeConfig
descriptionkotlin.StringA description for the loot box type
namekotlin.Stringthe name of the loot box type

AdminNewLootBoxTypeConfig#

Properties#

NameTypeDescriptionNotes
guaranteeskotlin.collections.List<AdminNewLootBoxTypeConfigGuarantees>A set of guaranteed drops in this loot box type
maxBaseScorekotlin.LongThe upper bound (inclusive) rhythm score for standard yats in the loot box
maxLengthkotlin.LongMaximum yat length
minBaseScorekotlin.LongThe lower bound (inclusive) rhythm score for standard yats in the loot box
minLengthkotlin.LongMinimum yat length
sizekotlin.LongThe number of yats in the loot box
weightskotlin.collections.List<AdminNewLootBoxTypeConfigWeights>A set of probability weightings for chance-based drops

AdminNewLootBoxTypeConfigGuarantees#

Properties#

NameTypeDescriptionNotes
countkotlin.LongThe number of guaranteed drops of this type in the loot box
maxScorekotlin.LongThe highest (inclusive) rhythm score range for guaranteed drop
minScorekotlin.LongThe lowest (inclusive) rhythm score range for guaranteed drop

AdminNewLootBoxTypeConfigWeights#

Properties#

NameTypeDescriptionNotes
iprkotlin.DoubleThe inverse probability ratio. This is a 1:n value. i.e. an ipr of 5 means a 1 in 5 chance of occurring, or 20%
maxScorekotlin.LongThe highest (inclusive) rhythm score range for inclusion when the probability spec hits
minScorekotlin.LongThe lowest (inclusive) rhythm score range for inclusion when the probability spec hits

AdminUpdateLootBoxBody#

Properties#

NameTypeDescriptionNotes
ownerEmailkotlin.StringAssign lootbox an owner with matching email Should not be set if owner_id is set[optional]
ownerIdjava.util.UUIDAssign lootbox an owner, if set requires status `Owned`[optional]
statusinline
Update status If status is `Used` lootbox with be automatically opened[optional]
yatskotlin.collections.List<kotlin.String>LootBox emoji IDs[optional]

Enum: status#

NameValue
statusDraft, Available, Owned, Used

AdminUpdateUserParameters#

Properties#

NameTypeDescriptionNotes
activationSourcekotlin.StringOptional: Source of activation[optional]
currentPasswordkotlin.StringOptional: Current password, must be provided if one exists[optional]
emailkotlin.StringOptional: Email[optional]
firstNamekotlin.StringOptional: First name[optional]
freeLimitkotlin.IntOptional: Free limit for how many yats the user may purchase[optional]
lastNamekotlin.StringOptional: Last name[optional]
passwordkotlin.StringOptional: User password[optional]
roleinline
Optional: Update the user role[optional]

Enum: role#

NameValue
roleAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

ApplyPromoCodeRequest#

Properties#

NameTypeDescriptionNotes
codekotlin.StringCode to apply

BackupDisableBody#

Properties#

NameTypeDescriptionNotes
backupCodekotlin.StringBackup code
alternateIdkotlin.StringAlternate identifier[optional]
disableAllkotlin.BooleanMake this method default[optional]
emailkotlin.StringEmail[optional]
providerinline
Two factor authentication backend[optional]

Enum: provider#

NameValue
providerGoogleAuthenticator, SMS

CheckoutCartRequest#

Properties#

NameTypeDescriptionNotes
methodinline
Payment method type
amountkotlin.LongAmount paid in cash. Applicable and required only for `Cash` payment option for Admin.[optional]
cancelUrlkotlin.StringURL user will be redirected if payment cancelled Required for Stripe Checkout[optional]
externalReferencekotlin.StringExternal reference for cash payment. Applicable and required only for `Cash` payment option for Admin.[optional]
pubkeykotlin.StringOptional: The user's public key to associate with this emoji id. If provided will use this pubkey otherwise will default to the first pubkey returned for the user.[optional]
successUrlkotlin.StringURL user will be redirected after successful payment Required for Stripe Checkout[optional]
trackingDatakotlin.AnyOptional: tracking data[optional]

Enum: method#

NameValue
methodFree, CoinbaseCommerce, Stripe, Cash, PayPal

Confirm2Fa#

Properties#

NameTypeDescriptionNotes
codekotlin.StringTwo factor authentication code
refreshTokenkotlin.StringRefresh token obtained from login request

Confirm2FaUpdate#

Properties#

NameTypeDescriptionNotes
codekotlin.StringAuth code of new 2FA provider

CreateApiKeyBody#

Properties#

NameTypeDescriptionNotes
namekotlin.String
expiresAtjava.time.OffsetDateTime[optional]
scopesinline
[optional]

Enum: scopes#

NameValue
scopesadminCart:update, adminEmoji:destroy, adminEmoji:load, adminEmoji:register, adminEmoji:transfer, adminEmoji:updateFeatures, adminEmoji:updateSecureData, adminEmoji:write, adminFeatureUser:read, adminInvites:write, adminInvites:list, adminLootbox:read, adminLootbox:write, adminNotifications:write, adminUser:bypass2fa, adminUser:load, adminUser:loginAs, adminUser:twoFactorAuthDestroy, adminUser:roleUpdate, cart:show, cart:update, code:delete, code:read, code:write, user:createApiKey, domainAction:read, domainEvent:read, edition:delete, edition:read, edition:write, emojiGroups:delete, emojiGroups:read, emojiGroups:write, emoji::transfer, feature::delete, feature::read, feature::write, lootbox:use, order:paymentOverride, order:read, order:readSelf, order:refund, order:refundOverride, order:resendConfirmation, organization:admin, organizationCode:admin, organizationEmoji:list, organizationEmoji:write, organizationList:read, organization:read, organizationUser:admin, organizationUser:read, organization:write, nftSignature:write, nftToken:destroy, nftTransfer:read, paymentMethod:destroy, paymentMethod:read, paymentMethod:setDefault, adminPriceParameters:read, adminPriceParameters:write, refund:read, token:refresh, auth:twoFactor, user:activate, userData:update, user:delete, user:deleteSelf, userEmail:verify, userEmoji:list, userInterest:delete, userInterest:read, userInterest:write, user:list, userPubkeys:list, userPubkeys:write, user:show, user:write, user:writeSelf

CurrentUser#

Properties#

NameTypeDescriptionNotes
featureskotlin.collections.List<CurrentUserFeatures>Enabled features for the user
globalScopesinline
A list of fine-grained permissions the user may perform.
organizationRoles[inline](#kotlin.collections.Map<kotlin.String, InnerEnum>)
The role this user has in each organisation. Organisations are currently not used, but are reserved for future operations.
organizationScopes[inline](#kotlin.collections.Map<kotlin.String, kotlin.collections.List<kotlin.String>>)
The scopes that are granted to this user for each organisation. Organisations are currently not used, but are reserved for future operations.
pendingTransferskotlin.collections.List<kotlin.String>List of transfers pending acceptance on current user side
pubkeyskotlin.collections.List<kotlin.String>A list of this user's public keys. When yats are deployed to the blockchain, users prove ownership of their Yats with digital signatures, proving knowledge of the private keys that \"own\" the yat. In the centralised implementation of Yat, the server will custody the users' wallets and private keys, but in other respects the ownership model is the same.
roleinline
The role assigned to this user. Roles grant authority to user accounts to perform certain actions.
userCurrentUserUser
everflowTransactionIdkotlin.Stringtransaction id indicating if the user signed up from a partner via everflow redirect[optional]

Enum: global_scopes#

NameValue
globalScopesadminCart:update, adminEmoji:destroy, adminEmoji:load, adminEmoji:register, adminEmoji:transfer, adminEmoji:updateFeatures, adminEmoji:updateSecureData, adminEmoji:write, adminFeatureUser:read, adminInvites:write, adminInvites:list, adminLootbox:read, adminLootbox:write, adminNotifications:write, adminUser:bypass2fa, adminUser:load, adminUser:loginAs, adminUser:twoFactorAuthDestroy, adminUser:roleUpdate, cart:show, cart:update, code:delete, code:read, code:write, user:createApiKey, domainAction:read, domainEvent:read, edition:delete, edition:read, edition:write, emojiGroups:delete, emojiGroups:read, emojiGroups:write, emoji::transfer, feature::delete, feature::read, feature::write, lootbox:use, order:paymentOverride, order:read, order:readSelf, order:refund, order:refundOverride, order:resendConfirmation, organization:admin, organizationCode:admin, organizationEmoji:list, organizationEmoji:write, organizationList:read, organization:read, organizationUser:admin, organizationUser:read, organization:write, nftSignature:write, nftToken:destroy, nftTransfer:read, paymentMethod:destroy, paymentMethod:read, paymentMethod:setDefault, adminPriceParameters:read, adminPriceParameters:write, refund:read, token:refresh, auth:twoFactor, user:activate, userData:update, user:delete, user:deleteSelf, userEmail:verify, userEmoji:list, userInterest:delete, userInterest:read, userInterest:write, user:list, userPubkeys:list, userPubkeys:write, user:show, user:write, user:writeSelf

Enum: organization_roles#

NameValue
organizationRolesAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

Enum: organization_scopes#

NameValue
organizationScopesadminCart:update, adminEmoji:destroy, adminEmoji:load, adminEmoji:register, adminEmoji:transfer, adminEmoji:updateFeatures, adminEmoji:updateSecureData, adminEmoji:write, adminFeatureUser:read, adminInvites:write, adminInvites:list, adminLootbox:read, adminLootbox:write, adminNotifications:write, adminUser:bypass2fa, adminUser:load, adminUser:loginAs, adminUser:twoFactorAuthDestroy, adminUser:roleUpdate, cart:show, cart:update, code:delete, code:read, code:write, user:createApiKey, domainAction:read, domainEvent:read, edition:delete, edition:read, edition:write, emojiGroups:delete, emojiGroups:read, emojiGroups:write, emoji::transfer, feature::delete, feature::read, feature::write, lootbox:use, order:paymentOverride, order:read, order:readSelf, order:refund, order:refundOverride, order:resendConfirmation, organization:admin, organizationCode:admin, organizationEmoji:list, organizationEmoji:write, organizationList:read, organization:read, organizationUser:admin, organizationUser:read, organization:write, nftSignature:write, nftToken:destroy, nftTransfer:read, paymentMethod:destroy, paymentMethod:read, paymentMethod:setDefault, adminPriceParameters:read, adminPriceParameters:write, refund:read, token:refresh, auth:twoFactor, user:activate, userData:update, user:delete, user:deleteSelf, userEmail:verify, userEmoji:list, userInterest:delete, userInterest:read, userInterest:write, user:list, userPubkeys:list, userPubkeys:write, user:show, user:write, user:writeSelf

Enum: role#

NameValue
roleAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

CurrentUserFeatures#

Properties#

NameTypeDescriptionNotes
codekotlin.String
idjava.util.UUID

CurrentUserUser#

Properties#

NameTypeDescriptionNotes
createdAtjava.time.OffsetDateTime
freeLimitkotlin.Int
idjava.util.UUID
pubkeyskotlin.collections.List<kotlin.String>
remainingFreeEmojikotlin.Int
roleinline
twoFactorShouldPromptkotlin.Boolean
updatedAtjava.time.OffsetDateTime
alternateIdkotlin.String[optional]
deactivatedAtjava.time.OffsetDateTime[optional]
emailkotlin.String[optional]
emailVerifiedAtjava.time.OffsetDateTime[optional]
firstNamekotlin.String[optional]
lastNamekotlin.String[optional]
sourcekotlin.String[optional]
twoFactorAuthinline
[optional]
twoFactorLastPromptedAtjava.time.OffsetDateTime[optional]

Enum: role#

NameValue
roleAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

Enum: two_factor_auth#

NameValue
twoFactorAuthGoogleAuthenticator, SMS

Disable2FABody#

Properties#

NameTypeDescriptionNotes
disableAllkotlin.BooleanMake this method default
providerinline
Two factor authentication backend[optional]

Enum: provider#

NameValue
providerGoogleAuthenticator, SMS

DisplayApiKey#

Properties#

NameTypeDescriptionNotes
apiKeykotlin.String
createdAtjava.time.OffsetDateTime
namekotlin.String
scopesinline
expiresAtjava.time.OffsetDateTime[optional]

Enum: scopes#

NameValue
scopesadminCart:update, adminEmoji:destroy, adminEmoji:load, adminEmoji:register, adminEmoji:transfer, adminEmoji:updateFeatures, adminEmoji:updateSecureData, adminEmoji:write, adminFeatureUser:read, adminInvites:write, adminInvites:list, adminLootbox:read, adminLootbox:write, adminNotifications:write, adminUser:bypass2fa, adminUser:load, adminUser:loginAs, adminUser:twoFactorAuthDestroy, adminUser:roleUpdate, cart:show, cart:update, code:delete, code:read, code:write, user:createApiKey, domainAction:read, domainEvent:read, edition:delete, edition:read, edition:write, emojiGroups:delete, emojiGroups:read, emojiGroups:write, emoji::transfer, feature::delete, feature::read, feature::write, lootbox:use, order:paymentOverride, order:read, order:readSelf, order:refund, order:refundOverride, order:resendConfirmation, organization:admin, organizationCode:admin, organizationEmoji:list, organizationEmoji:write, organizationList:read, organization:read, organizationUser:admin, organizationUser:read, organization:write, nftSignature:write, nftToken:destroy, nftTransfer:read, paymentMethod:destroy, paymentMethod:read, paymentMethod:setDefault, adminPriceParameters:read, adminPriceParameters:write, refund:read, token:refresh, auth:twoFactor, user:activate, userData:update, user:delete, user:deleteSelf, userEmail:verify, userEmoji:list, userInterest:delete, userInterest:read, userInterest:write, user:list, userPubkeys:list, userPubkeys:write, user:show, user:write, user:writeSelf

DisplayFeature#

Properties#

NameTypeDescriptionNotes
codekotlin.String
idjava.util.UUID

DisplayOrder#

Properties#

NameTypeDescriptionNotes
amountOverpaidInCentskotlin.LongAmount overpaid in cents
createdAtjava.time.OffsetDateTimeA UTC timestamp for when this order was initially created.
eligibleForRefundkotlin.BooleanWhether an order is eligible for a refund via an admin.
idjava.util.UUIDThe unique identifier for this order
miscRefundedTotalInCentskotlin.LongThe total of miscellaneous refund amounts retirned to the order.
orderItemskotlin.collections.List<DisplayOrderOrderItems>The list of individual line items making up this order.
orderNumberkotlin.StringThe order number is the last 8 characters of the order's ID for user display purposes.
refundedTotalInCentskotlin.LongThe total of refund amounts for the order.
remainingDueInCentskotlin.LongRemaining due in cents to mark the cart as Paid
statusinline
The order of the status. Orders start in 'Draft' status, then move to 'PendingPayment' and finally, 'Paid', unless they are 'Cancelled'.
totalInCentskotlin.LongThe sum of all the items in this order, plus fees, in USD cents.
updatedAtjava.time.OffsetDateTimeA UTC timestamp for the last time any field in this order was modified.
userDisplayOrderUser
userIdjava.util.UUIDThe identifier of the user placing this order
expiresAtjava.time.OffsetDateTimeCheckout carts have a limited time before they expire. This prevents users from blocking inventory from being sold to other customers. The expiry time is configurable on the server and is typically 5 minutes.[optional]
organizationIdjava.util.UUIDThe organization id of the user, if applicable. This will generally be null, unless the purchase is coming via a referral programme.[optional]
paidAtjava.time.OffsetDateTimeA UTC timestamp for when payment for this order was received. Will be null if no payment has been made yet.[optional]
paymentMethodDataDisplayOrderPaymentMethodData[optional]
secondsUntilExpirykotlin.IntA convenience field indicating how long before `expires_at` is reached.[optional]

Enum: status#

NameValue
statusCancelled, Draft, Paid, PendingPayment

DisplayOrderOrderItems#

Properties#

NameTypeDescriptionNotes
clientFeeInCentskotlin.IntThe fee attributable to the referral partner, in addition to the nominal unit price, in USD cents.
companyFeeInCentskotlin.IntThe fee attributable to the service host or company, in addition to the nominal unit price, in USD cents.
createdAtjava.time.OffsetDateTimeA UTC timestamp for when this order item was created.
idjava.util.UUIDA unique identifier for this order item
itemTypeinline
The type of order. Current enumerations are EmojiId and Discount
orderIdjava.util.UUIDThe id of the order this order item
quantitykotlin.IntThe number of items in the line order. For emoji id sales, this should always be one.
refundedQuantitykotlin.IntThe number of items refunded. For emoji id sales, this should always at most be one.
unitPriceInCentskotlin.IntThe nominal, non-discounted price of the item, in USD cents.
updatedAtjava.time.OffsetDateTimeA UTC timestamp for when any field in the order item was modified.
codeIdjava.util.UUIDThe code associated with this order item for providing a discount.[optional]
emojiIdkotlin.AnyThe emoji id that is being purchased[optional]
mainIdjava.util.UUIDMain item ID[optional]
mainTablekotlin.AnyMain item table[optional]
markedInvalidAtjava.time.OffsetDateTimeA UTC timestamp for when this order item was marked as invalid.[optional]
markedInvalidAtReasoninline
Marked invalid at reason Taken / PendingPurchase[optional]
parentIdjava.util.UUIDParent order item's ID, set for discounts and fees[optional]
rhythmScorekotlin.IntThe rhythm score belonging to this order item, only set for order items containing EmojiIds.[optional]

Enum: item_type#

NameValue
itemTypeDiscount, LootBox, EmojiId

Enum: marked_invalid_at_reason#

NameValue
markedInvalidAtReasonTaken, PendingPurchase

DisplayOrderPaymentMethodData#

Properties#

NameTypeDescriptionNotes
clientSecretkotlin.StringClient Secret for the `Stripe` method for Elements and Checkout
methodinline
Payment method
methodskotlin.collections.List<DisplayOrderPaymentMethodDataMethods>Metadata for `CoinbaseCommerce` payment method
paymentIntentIdkotlin.StringPayment method ID for `Stripe` method
cancelUrlkotlin.StringCancel url for `Stripe` method when using Checkout[optional]
invoiceIdkotlin.StringInvoice ID for the `Stripe` method for Elements[optional]
sessionIdkotlin.StringInvoice ID for the `Stripe` method for Checkout[optional]
successUrlkotlin.StringSuccess url for `Stripe` method when using Checkout[optional]

Enum: method#

NameValue
methodCoinbaseCommerce, Stripe

DisplayOrderPaymentMethodDataMethods#

Properties#

NameTypeDescriptionNotes
addresskotlin.String
amountkotlin.Double
currencykotlin.String
titlekotlin.String

DisplayOrderUser#

Properties#

NameTypeDescriptionNotes
createdAtjava.time.OffsetDateTime
freeLimitkotlin.Int
idjava.util.UUID
pubkeyskotlin.collections.List<kotlin.String>
remainingFreeEmojikotlin.Int
roleinline
twoFactorShouldPromptkotlin.Boolean
updatedAtjava.time.OffsetDateTime
alternateIdkotlin.String[optional]
deactivatedAtjava.time.OffsetDateTime[optional]
emailkotlin.String[optional]
emailVerifiedAtjava.time.OffsetDateTime[optional]
firstNamekotlin.String[optional]
lastNamekotlin.String[optional]
sourcekotlin.String[optional]
twoFactorAuthinline
[optional]
twoFactorLastPromptedAtjava.time.OffsetDateTime[optional]

Enum: role#

NameValue
roleAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

Enum: two_factor_auth#

NameValue
twoFactorAuthGoogleAuthenticator, SMS

DisplayTransferRequest#

Properties#

NameTypeDescriptionNotes
clearOnTransferkotlin.Boolean
createdAtjava.time.OffsetDateTime
eidkotlin.String
emailkotlin.String
idjava.util.UUID
recipientIdjava.util.UUID
acceptedAtjava.time.OffsetDateTime[optional]
deletedAtjava.time.OffsetDateTime[optional]
messagekotlin.String[optional]
senderCodeAcceptedAtjava.time.OffsetDateTime[optional]

DisplayUser#

Properties#

NameTypeDescriptionNotes
createdAtjava.time.OffsetDateTime
freeLimitkotlin.Int
idjava.util.UUID
pubkeyskotlin.collections.List<kotlin.String>
remainingFreeEmojikotlin.Int
roleinline
twoFactorShouldPromptkotlin.Boolean
updatedAtjava.time.OffsetDateTime
alternateIdkotlin.String[optional]
deactivatedAtjava.time.OffsetDateTime[optional]
emailkotlin.String[optional]
emailVerifiedAtjava.time.OffsetDateTime[optional]
firstNamekotlin.String[optional]
lastNamekotlin.String[optional]
sourcekotlin.String[optional]
twoFactorAuthinline
[optional]
twoFactorLastPromptedAtjava.time.OffsetDateTime[optional]

Enum: role#

NameValue
roleAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

Enum: two_factor_auth#

NameValue
twoFactorAuthGoogleAuthenticator, SMS

DisplayUserExtended#

Properties#

NameTypeDescriptionNotes
emojiIdskotlin.collections.List<kotlin.String>
alternateIdkotlin.String[optional]
createdAtjava.time.OffsetDateTime[optional]
deactivatedAtjava.time.OffsetDateTime[optional]
emailkotlin.String[optional]
emailVerifiedAtjava.time.OffsetDateTime[optional]
firstNamekotlin.String[optional]
freeLimitkotlin.Int[optional]
idjava.util.UUID[optional]
lastNamekotlin.String[optional]
pubkeyskotlin.collections.List<kotlin.String>[optional]
remainingFreeEmojikotlin.Int[optional]
roleinline
[optional]
sourcekotlin.String[optional]
twoFactorAuthinline
[optional]
twoFactorLastPromptedAtjava.time.OffsetDateTime[optional]
twoFactorShouldPromptkotlin.Boolean[optional]
updatedAtjava.time.OffsetDateTime[optional]

Enum: role#

NameValue
roleAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

Enum: two_factor_auth#

NameValue
twoFactorAuthGoogleAuthenticator, SMS

EditRequest#

Properties#

NameTypeDescriptionNotes
bypassSingleRestrictionskotlin.BooleanOptional: Allow many addresses per Tag[optional]
deletekotlin.collections.List<kotlin.String>Optional: hashes of records to delete[optional]
insertkotlin.collections.List<EditRequestInsert>Optional: list of records to add[optional]
merkleRootkotlin.StringOptional: merkle root (use WASM to generate)[optional]
signaturekotlin.StringOptional: signature (use WASM to generate)[optional]

EditRequestInsert#

Properties#

NameTypeDescriptionNotes
datakotlin.StringCategory data in text format
tagkotlin.StringCategory ID as a hex number

EidResponse#

Properties#

NameTypeDescriptionNotes
statuskotlin.BooleanResponse status. If true, the requested data will be in the result field, null otherwise
errorEidResponseError[optional]
resultkotlin.collections.List<EidResponseResult>Records associated with EmojiID[optional]

EidResponseError#

Properties#

NameTypeDescriptionNotes
codekotlin.StringError code
reasonkotlin.String

EidResponseResult#

Properties#

NameTypeDescriptionNotes
datakotlin.StringCategory data in text or hex encoded formats
hashkotlin.StringHash identifies record, can be used to delete records
tagkotlin.StringCategory as a hex string number

EmojiListItem#

Properties#

NameTypeDescriptionNotes
canonicalFormatkotlin.String
chainFormatkotlin.String
displayFormatkotlin.String
flippableEmojikotlin.collections.List<kotlin.Boolean>
generationkotlin.Int
mintedkotlin.Boolean
rhythmScorekotlin.Int
shapeEmojiListItemShape
shortnamekotlin.String
blockedUntiljava.time.OffsetDateTime[optional]
tokenIdkotlin.Long[optional]

EmojiListItemShape#

Properties#

NameTypeDescriptionNotes
patternkotlin.Any[optional]
shapeinline
[optional]

Enum: shape#

NameValue
shapeRepeaters, Eye Heart, Bookends, Adoptables

EmojiStatsResponse#

Properties#

NameTypeDescriptionNotes
emojiIdkotlin.String
metricskotlin.collections.List<EmojiStatsResponseMetrics>

EmojiStatsResponseMetrics#

Properties#

NameTypeDescriptionNotes
descriptionkotlin.String
finishDatejava.time.OffsetDateTime
keykotlin.StringCounter object
metrickotlin.StringCounter type
startDatejava.time.OffsetDateTime
valuekotlin.LongCounter value

Enable2FABody#

Properties#

NameTypeDescriptionNotes
defaultkotlin.BooleanMake this method default
providerinline
Two factor authentication backend
phonekotlin.StringPhone number required for `SMS` provider[optional]

Enum: provider#

NameValue
providerGoogleAuthenticator, SMS

Enable2FAResponse#

Properties#

NameTypeDescriptionNotes
backupCodeskotlin.collections.List<kotlin.String>One time backup codes to login[optional]
gaQrCodeSvgkotlin.StringGA secret as QR code in svg image[optional]
gaSecretkotlin.StringGA base32 encoded secret, will be null when code is disabled[optional]
phoneLastDigitskotlin.StringPhone last digits[optional]

ListOfCodeAvailability#

Properties#

NameTypeDescriptionNotes
datakotlin.collections.List<ListOfCodeAvailabilityData>[optional]
pagingListOfCodeAvailabilityPaging[optional]

ListOfCodeAvailabilityData#

Properties#

NameTypeDescriptionNotes
totalUseskotlin.Long
activatorinline
[optional]
availablekotlin.Long[optional]
codeTypeinline
[optional]
createdAtjava.time.OffsetDateTime[optional]
deletedAtjava.time.OffsetDateTime[optional]
discountAsPercentagekotlin.Int[optional]
discountInCentskotlin.Int[optional]
endDatejava.time.OffsetDateTime[optional]
idjava.util.UUID[optional]
maxEmojisPerUserkotlin.Int[optional]
maxUseskotlin.Int[optional]
namekotlin.String[optional]
organizationIdjava.util.UUID[optional]
patternkotlin.Any[optional]
redemptionCodekotlin.String[optional]
startDatejava.time.OffsetDateTime[optional]
updatedAtjava.time.OffsetDateTime[optional]

Enum: activator#

NameValue
activatorRedemptionCode, SecretKey

Enum: code_type#

NameValue
codeTypeDiscount, RandomYat

ListOfCodeAvailabilityPaging#

Properties#

NameTypeDescriptionNotes
dirinline
limitkotlin.Int
pagekotlin.Int
sortkotlin.String
tagskotlin.collections.Map<kotlin.String, kotlin.Any>
totalkotlin.Long

Enum: dir#

NameValue
dirAsc, Desc

ListOfDisplayTransferRequest#

Properties#

NameTypeDescriptionNotes
datakotlin.collections.List<ListOfDisplayTransferRequestData>[optional]
pagingListOfCodeAvailabilityPaging[optional]

ListOfDisplayTransferRequestData#

Properties#

NameTypeDescriptionNotes
clearOnTransferkotlin.Boolean
createdAtjava.time.OffsetDateTime
eidkotlin.String
emailkotlin.String
idjava.util.UUID
recipientIdjava.util.UUID
acceptedAtjava.time.OffsetDateTime[optional]
deletedAtjava.time.OffsetDateTime[optional]
messagekotlin.String[optional]
senderCodeAcceptedAtjava.time.OffsetDateTime[optional]

ListOfDisplayUserExtended#

Properties#

NameTypeDescriptionNotes
datakotlin.collections.List<ListOfDisplayUserExtendedData>[optional]
pagingListOfCodeAvailabilityPaging[optional]

ListOfDisplayUserExtendedData#

Properties#

NameTypeDescriptionNotes
emojiIdskotlin.collections.List<kotlin.String>
alternateIdkotlin.String[optional]
createdAtjava.time.OffsetDateTime[optional]
deactivatedAtjava.time.OffsetDateTime[optional]
emailkotlin.String[optional]
emailVerifiedAtjava.time.OffsetDateTime[optional]
firstNamekotlin.String[optional]
freeLimitkotlin.Int[optional]
idjava.util.UUID[optional]
lastNamekotlin.String[optional]
pubkeyskotlin.collections.List<kotlin.String>[optional]
remainingFreeEmojikotlin.Int[optional]
roleinline
[optional]
sourcekotlin.String[optional]
twoFactorAuthinline
[optional]
twoFactorLastPromptedAtjava.time.OffsetDateTime[optional]
twoFactorShouldPromptkotlin.Boolean[optional]
updatedAtjava.time.OffsetDateTime[optional]

Enum: role#

NameValue
roleAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

Enum: two_factor_auth#

NameValue
twoFactorAuthGoogleAuthenticator, SMS

ListOfPublicLootBox#

Properties#

NameTypeDescriptionNotes
datakotlin.collections.List<ListOfPublicLootBoxData>[optional]
pagingListOfCodeAvailabilityPaging[optional]

ListOfPublicLootBoxData#

Properties#

NameTypeDescriptionNotes
averageRhythmScorekotlin.DoubleAverage score of emoji IDs in loot box
createdAtjava.time.OffsetDateTime
idjava.util.UUID
priceskotlin.collections.List<kotlin.Int>The prices of the yats in the box, in cents
scoreskotlin.collections.List<kotlin.Long>The rhythm scores of the yats in the box
statusinline
Status loot box will be created in
totalValuekotlin.DoubleTotal value of EmojiIDs in the Loot Box
yatskotlin.collections.List<kotlin.String>Loot box yats
lootboxTypeListOfPublicLootBoxLootboxType[optional]
lootboxTypeIdjava.util.UUIDFor Admin: The type of loot box, if applicable[optional]
ownerListOfPublicLootBoxOwner[optional]
ownerIdjava.util.UUIDLoot box owner_id, required for Owned and Used loot boxes[optional]

Enum: status#

NameValue
statusDraft, Available, Owned, Used

ListOfPublicLootBoxLootboxType#

Properties#

NameTypeDescriptionNotes
configListOfPublicLootBoxLootboxTypeConfig
createdAtjava.time.OffsetDateTimeThe timestamp for when this loot box type was created
descriptionkotlin.StringA more detailed description of the loot box type
idjava.util.UUIDThe loot box type id
namekotlin.StringThe name of this loot box type

ListOfPublicLootBoxLootboxTypeConfig#

Properties#

NameTypeDescriptionNotes
guaranteeskotlin.collections.List<AdminNewLootBoxTypeConfigGuarantees>A set of guaranteed drops in this loot box type
maxBaseScorekotlin.LongThe upper bound (inclusive) rhythm score for standard yats in the loot box
maxLengthkotlin.LongMaximum yat length
minBaseScorekotlin.LongThe lower bound (inclusive) rhythm score for standard yats in the loot box
minLengthkotlin.LongMinimum yat length
sizekotlin.LongThe number of yats in the loot box
weightskotlin.collections.List<AdminNewLootBoxTypeConfigWeights>A set of probability weightings for chance-based drops

ListOfPublicLootBoxOwner#

Properties#

NameTypeDescriptionNotes
createdAtjava.time.OffsetDateTime
freeLimitkotlin.Int
idjava.util.UUID
pubkeyskotlin.collections.List<kotlin.String>
remainingFreeEmojikotlin.Int
roleinline
twoFactorShouldPromptkotlin.Boolean
updatedAtjava.time.OffsetDateTime
alternateIdkotlin.String[optional]
deactivatedAtjava.time.OffsetDateTime[optional]
emailkotlin.String[optional]
emailVerifiedAtjava.time.OffsetDateTime[optional]
firstNamekotlin.String[optional]
lastNamekotlin.String[optional]
sourcekotlin.String[optional]
twoFactorAuthinline
[optional]
twoFactorLastPromptedAtjava.time.OffsetDateTime[optional]

Enum: role#

NameValue
roleAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

Enum: two_factor_auth#

NameValue
twoFactorAuthGoogleAuthenticator, SMS

ListOfUserInterest#

Properties#

NameTypeDescriptionNotes
datakotlin.collections.List<ListOfUserInterestData>[optional]
pagingListOfCodeAvailabilityPaging[optional]

ListOfUserInterestData#

Properties#

NameTypeDescriptionNotes
createdAtjava.time.OffsetDateTime
emojiIdkotlin.String
idjava.util.UUID
updatedAtjava.time.OffsetDateTime
userIdjava.util.UUID

LoadJsonResponse#

Properties#

NameTypeDescriptionNotes
createdAtjava.time.OffsetDateTimeCreated at time for the record
datakotlin.AnyData value stored by key and EmojiID If there is no value for the key an empty object `{}` is returned
isLockedkotlin.BooleanData is locked
updatedAtjava.time.OffsetDateTimeUpdated at time for the record
lockedFutureWritesAtjava.time.OffsetDateTimeTime the record was locked from future writes[optional]

LoadUser#

Properties#

NameTypeDescriptionNotes
currentUserLoadUserCurrentUser
editionskotlin.collections.List<kotlin.Long>
extendedListkotlin.collections.List<LoadUserExtendedList>
incomingTransferskotlin.collections.List<ListOfDisplayTransferRequestData>
outgoingTransfersLoadUserOutgoingTransfers
walletskotlin.collections.List<LoadUserWallets>
everflowTransactionIdkotlin.String[optional]
sidebarkotlin.Any[optional]

LoadUserCurrentUser#

Properties#

NameTypeDescriptionNotes
featureskotlin.collections.List<CurrentUserFeatures>Enabled features for the user
globalScopesinline
A list of fine-grained permissions the user may perform.
organizationRoles[inline](#kotlin.collections.Map<kotlin.String, InnerEnum>)
The role this user has in each organisation. Organisations are currently not used, but are reserved for future operations.
organizationScopes[inline](#kotlin.collections.Map<kotlin.String, kotlin.collections.List<kotlin.String>>)
The scopes that are granted to this user for each organisation. Organisations are currently not used, but are reserved for future operations.
pendingTransferskotlin.collections.List<kotlin.String>List of transfers pending acceptance on current user side
pubkeyskotlin.collections.List<kotlin.String>A list of this user's public keys. When yats are deployed to the blockchain, users prove ownership of their Yats with digital signatures, proving knowledge of the private keys that \"own\" the yat. In the centralised implementation of Yat, the server will custody the users' wallets and private keys, but in other respects the ownership model is the same.
roleinline
The role assigned to this user. Roles grant authority to user accounts to perform certain actions.
userCurrentUserUser
everflowTransactionIdkotlin.Stringtransaction id indicating if the user signed up from a partner via everflow redirect[optional]

Enum: global_scopes#

NameValue
globalScopesadminCart:update, adminEmoji:destroy, adminEmoji:load, adminEmoji:register, adminEmoji:transfer, adminEmoji:updateFeatures, adminEmoji:updateSecureData, adminEmoji:write, adminFeatureUser:read, adminInvites:write, adminInvites:list, adminLootbox:read, adminLootbox:write, adminNotifications:write, adminUser:bypass2fa, adminUser:load, adminUser:loginAs, adminUser:twoFactorAuthDestroy, adminUser:roleUpdate, cart:show, cart:update, code:delete, code:read, code:write, user:createApiKey, domainAction:read, domainEvent:read, edition:delete, edition:read, edition:write, emojiGroups:delete, emojiGroups:read, emojiGroups:write, emoji::transfer, feature::delete, feature::read, feature::write, lootbox:use, order:paymentOverride, order:read, order:readSelf, order:refund, order:refundOverride, order:resendConfirmation, organization:admin, organizationCode:admin, organizationEmoji:list, organizationEmoji:write, organizationList:read, organization:read, organizationUser:admin, organizationUser:read, organization:write, nftSignature:write, nftToken:destroy, nftTransfer:read, paymentMethod:destroy, paymentMethod:read, paymentMethod:setDefault, adminPriceParameters:read, adminPriceParameters:write, refund:read, token:refresh, auth:twoFactor, user:activate, userData:update, user:delete, user:deleteSelf, userEmail:verify, userEmoji:list, userInterest:delete, userInterest:read, userInterest:write, user:list, userPubkeys:list, userPubkeys:write, user:show, user:write, user:writeSelf

Enum: organization_roles#

NameValue
organizationRolesAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

Enum: organization_scopes#

NameValue
organizationScopesadminCart:update, adminEmoji:destroy, adminEmoji:load, adminEmoji:register, adminEmoji:transfer, adminEmoji:updateFeatures, adminEmoji:updateSecureData, adminEmoji:write, adminFeatureUser:read, adminInvites:write, adminInvites:list, adminLootbox:read, adminLootbox:write, adminNotifications:write, adminUser:bypass2fa, adminUser:load, adminUser:loginAs, adminUser:twoFactorAuthDestroy, adminUser:roleUpdate, cart:show, cart:update, code:delete, code:read, code:write, user:createApiKey, domainAction:read, domainEvent:read, edition:delete, edition:read, edition:write, emojiGroups:delete, emojiGroups:read, emojiGroups:write, emoji::transfer, feature::delete, feature::read, feature::write, lootbox:use, order:paymentOverride, order:read, order:readSelf, order:refund, order:refundOverride, order:resendConfirmation, organization:admin, organizationCode:admin, organizationEmoji:list, organizationEmoji:write, organizationList:read, organization:read, organizationUser:admin, organizationUser:read, organization:write, nftSignature:write, nftToken:destroy, nftTransfer:read, paymentMethod:destroy, paymentMethod:read, paymentMethod:setDefault, adminPriceParameters:read, adminPriceParameters:write, refund:read, token:refresh, auth:twoFactor, user:activate, userData:update, user:delete, user:deleteSelf, userEmail:verify, userEmoji:list, userInterest:delete, userInterest:read, userInterest:write, user:list, userPubkeys:list, userPubkeys:write, user:show, user:write, user:writeSelf

Enum: role#

NameValue
roleAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

LoadUserExtendedList#

Properties#

NameTypeDescriptionNotes
canonicalFormatkotlin.String
chainFormatkotlin.String
displayFormatkotlin.String
flippableEmojikotlin.collections.List<kotlin.Boolean>
generationkotlin.Int
mintedkotlin.Boolean
rhythmScorekotlin.Int
shapeEmojiListItemShape
shortnamekotlin.String
blockedUntiljava.time.OffsetDateTime[optional]
tokenIdkotlin.Long[optional]

LoadUserOutgoingTransfers#

Properties#

NameTypeDescriptionNotes
datakotlin.collections.List<ListOfDisplayTransferRequestData>[optional]
pagingListOfCodeAvailabilityPaging[optional]

LoadUserWallets#

Properties#

NameTypeDescriptionNotes
ethAddresskotlin.String
userIdjava.util.UUID

LoginRequest#

Properties#

NameTypeDescriptionNotes
passwordkotlin.StringRequired: Password
alternateIdkotlin.StringAlternate identifier[optional]
emailkotlin.StringEmail[optional]
gRecaptchaResponsekotlin.StringResponse from google Recaptcha[optional]

LookupResponse#

Properties#

NameTypeDescriptionNotes
statskotlin.collections.List<EmojiStatsResponseMetrics>Number of times emoji viewed during past month
errorEidResponseError[optional]
resultkotlin.collections.List<EidResponseResult>Records associated with EmojiID[optional]
statuskotlin.BooleanResponse status. If true, the requested data will be in the result field, null otherwise[optional]

LootBoxGenerationRequest#

Properties#

NameTypeDescriptionNotes
lootBoxTypeIdjava.util.UUIDThe id of the loot box type to generate
numBoxeskotlin.LongThe number of loot boxes to generate in this sample

LootBoxSet#

Properties#

NameTypeDescriptionNotes
lootBoxeskotlin.collections.List<ListOfPublicLootBoxData>The set of loot boxes generated. The length of this array may be less than `num_requested`
numRequestedkotlin.LongThe number of loot boxes requested

MagicLinkLoginRequest#

Properties#

NameTypeDescriptionNotes
emailkotlin.StringEmail[optional]
gRecaptchaResponsekotlin.StringResponse from google Recaptcha[optional]
redirectkotlin.StringRedirect path[optional]
userIdjava.util.UUIDUser ID[optional]

MagicLinkLoginResponse#

Properties#

NameTypeDescriptionNotes
messagekotlin.StringMessage
statusinline
Status of requested user after completing the login request

Enum: status#

NameValue
statusActive, RegisteredInactive, RegisteredActive, Inactive

Metadata#

Properties#

NameTypeDescriptionNotes
animationUrlkotlin.String
attributeskotlin.collections.List<MetadataAttributes>
descriptionkotlin.String
externalLinkkotlin.String
imagekotlin.String
namekotlin.String

MetadataAttributes#

Properties#

NameTypeDescriptionNotes
traitTypekotlin.String
valuekotlin.Any

NewUserInterestParameters#

Properties#

NameTypeDescriptionNotes
emojiIdkotlin.StringEmoji ID to express interest in

OrganizationBranding#

Properties#

NameTypeDescriptionNotes
createdAtjava.time.OffsetDateTime
currencieskotlin.collections.List<kotlin.String>
namekotlin.String
organizationIdjava.util.UUID
requiresEmailkotlin.Boolean
returnLinkkotlin.String
updatedAtjava.time.OffsetDateTime
logokotlin.String[optional]
logoSmallkotlin.String[optional]
logoThumbnailkotlin.String[optional]

PaymentAddressResponse#

Properties#

NameTypeDescriptionNotes
statuskotlin.Boolean
errorEidResponseError[optional]
resultkotlin.collections.Map<kotlin.String, PaymentAddressResponseResult>[optional]

PaymentAddressResponseResult#

Properties#

NameTypeDescriptionNotes
addresskotlin.StringThe payment address
categorykotlin.StringThe category of this address
defaultkotlin.BooleanOptional: Is this address the default address for the category
descriptionkotlin.StringOptional: Description of the address[optional]
longNamekotlin.StringOptional: CryptoToken long name is a defined name for the ERC20 token[optional]
settlementNetworkkotlin.StringOptional: CryptoToken settlement network for the ERC20 token[optional]
shortNamekotlin.StringOptional: CryptoToken short name to identify an ERC20 token[optional]
signaturekotlin.StringOptional: Proof of ownership signature for the address[optional]

PaymentMethod#

Properties#

NameTypeDescriptionNotes
idkotlin.String
paymentTypekotlin.String
brandkotlin.String[optional]
countrykotlin.String[optional]
expMonthkotlin.Int[optional]
expYearkotlin.Int[optional]
last4kotlin.String[optional]

ProxyCallParameters#

Properties#

NameTypeDescriptionNotes
serviceinline
`ProxyService` type
datakotlin.StringThe data to pass through to the proxied service[optional]

Enum: service#

NameValue
serviceEcho, Scraper

ProxyResult#

Properties#

NameTypeDescriptionNotes
jsonkotlin.AnyThe response from the proxied service as a Json object
valuekotlin.StringThe response from the proxied service as a String

PublicLootBox#

Properties#

NameTypeDescriptionNotes
averageRhythmScorekotlin.DoubleAverage score of emoji IDs in loot box
createdAtjava.time.OffsetDateTime
idjava.util.UUID
priceskotlin.collections.List<kotlin.Int>The prices of the yats in the box, in cents
scoreskotlin.collections.List<kotlin.Long>The rhythm scores of the yats in the box
statusinline
Status loot box will be created in
totalValuekotlin.DoubleTotal value of EmojiIDs in the Loot Box
yatskotlin.collections.List<kotlin.String>Loot box yats
lootboxTypeListOfPublicLootBoxLootboxType[optional]
lootboxTypeIdjava.util.UUIDFor Admin: The type of loot box, if applicable[optional]
ownerListOfPublicLootBoxOwner[optional]
ownerIdjava.util.UUIDLoot box owner_id, required for Owned and Used loot boxes[optional]

Enum: status#

NameValue
statusDraft, Available, Owned, Used

PublicLootBoxType#

Properties#

NameTypeDescriptionNotes
configListOfPublicLootBoxLootboxTypeConfig
createdAtjava.time.OffsetDateTimeThe timestamp for when this loot box type was created
descriptionkotlin.StringA more detailed description of the loot box type
idjava.util.UUIDThe loot box type id
namekotlin.StringThe name of this loot box type

RandomResult#

Properties#

NameTypeDescriptionNotes
resultkotlin.collections.List<RandomResultResult>Random Emoji IDs

RandomResultResult#

Properties#

NameTypeDescriptionNotes
availabilityinline
The availability state of this emoji
availablekotlin.BooleanWhether the Emoji ID is available for purchase
emojiIdkotlin.StringEmoji ID in canonical form
flippableEmojikotlin.collections.List<kotlin.Boolean>Which emoji are flippable
lengthkotlin.LongCanonical EmojiID length in emojis
mintedkotlin.BooleanIf this Emoji is minted
rhythmScorekotlin.LongEmojiID rhythm score
shapeEmojiListItemShape
shortNameskotlin.collections.List<kotlin.String>Emoji key words
statskotlin.collections.List<EmojiStatsResponseMetrics>Total lookups using this API, if someone is viewing this Emoji ID using their own self hosted node, it will not be counted here
copykotlin.AnyEmojiID copy text[optional]
generationkotlin.IntThe generation of the Yat, if it has been purchased.[optional]
originkotlin.StringThe origin of the Yat if it was from a Prism Case[optional]
pricekotlin.IntPricing in US cents, e.g. 1024 is 10.24 USD. Price is 0 if the emoji is not available[optional]

Enum: availability#

NameValue
availabilityAvailable, Taken, InCart, ComingSoon, NoPrice

RandomYatActivateBody#

Properties#

NameTypeDescriptionNotes
noncekotlin.StringSchnorr signature nonce as a hex string
pubkeykotlin.StringPublic key to authorize usage of a code
signaturekotlin.StringSchnorr signature as a hex with alternate_id as a challenge
trackingDatakotlin.AnyCustom tracking data to be associated with a purchase[optional]

RecentlyPurchasedResult#

Properties#

NameTypeDescriptionNotes
resultkotlin.collections.List<RandomResultResult>Recently purchased emoji

RefreshRequest#

Properties#

NameTypeDescriptionNotes
refreshTokenkotlin.StringRefresh token obtained from login request

RegisterUserParameters#

Properties#

NameTypeDescriptionNotes
activatekotlin.BooleanOptional: Whether to force activation during creation (requires UserActivate scope)[optional]
activationSourcekotlin.StringOptional: Source of activation (requires UserActivate scope)[optional]
alternateIdkotlin.StringAlternate identifier[optional]
emailkotlin.StringEmail address[optional]
firstNamekotlin.StringOptional: first name[optional]
gRecaptchaResponsekotlin.StringResponse from google Recaptcha[optional]
lastNamekotlin.StringOptional: last name[optional]
partnerConversionIdkotlin.StringParameter to pass everflow click id[optional]
passwordkotlin.StringOptional: password[optional]
sourcekotlin.StringRequired when registering with `alternate_id`, source for non custodial user[optional]

RhythmResponse#

Properties#

NameTypeDescriptionNotes
rhythmkotlin.LongThe yat rhythm score, a number between 1 (least prestigious) and 100 (most prestigious)

SearchResult#

Properties#

NameTypeDescriptionNotes
alternateskotlin.collections.List<RandomResultResult>Alternative Emoji IDs
resultSearchResultResult

SearchResultResult#

Properties#

NameTypeDescriptionNotes
availabilityinline
The availability state of this emoji
availablekotlin.BooleanWhether the Emoji ID is available for purchase
emojiIdkotlin.StringEmoji ID in canonical form
flippableEmojikotlin.collections.List<kotlin.Boolean>Which emoji are flippable
lengthkotlin.LongCanonical EmojiID length in emojis
mintedkotlin.BooleanIf this Emoji is minted
rhythmScorekotlin.LongEmojiID rhythm score
shapeEmojiListItemShape
shortNameskotlin.collections.List<kotlin.String>Emoji key words
statskotlin.collections.List<EmojiStatsResponseMetrics>Total lookups using this API, if someone is viewing this Emoji ID using their own self hosted node, it will not be counted here
copykotlin.AnyEmojiID copy text[optional]
generationkotlin.IntThe generation of the Yat, if it has been purchased.[optional]
originkotlin.StringThe origin of the Yat if it was from a Prism Case[optional]
pricekotlin.IntPricing in US cents, e.g. 1024 is 10.24 USD. Price is 0 if the emoji is not available[optional]

Enum: availability#

NameValue
availabilityAvailable, Taken, InCart, ComingSoon, NoPrice

ShapeMatch#

Properties#

NameTypeDescriptionNotes
patternkotlin.Any[optional]
shapeinline
[optional]

Enum: shape#

NameValue
shapeRepeaters, Eye Heart, Bookends, Adoptables

SignatureRequest#

Properties#

NameTypeDescriptionNotes
accountkotlin.String
expirykotlin.Long[optional]

SignatureResponse#

Properties#

NameTypeDescriptionNotes
accountkotlin.String
expirykotlin.Long
signaturekotlin.String
tokenkotlin.String

StoreJsonBody#

Properties#

NameTypeDescriptionNotes
datakotlin.AnyData value allows to store any Json value, limited by 250Kb
linkedTagskotlin.collections.List<EditRequestInsert>Link tag items as part of the transaction All previously linked tags not present in new request will be deleted[optional]

SuccessResponse#

Properties#

NameTypeDescriptionNotes
messagekotlin.String

SuccessResponse2FA#

Properties#

NameTypeDescriptionNotes
messagekotlin.String
phoneLastDigitskotlin.String[optional]

TokenResponse#

Properties#

NameTypeDescriptionNotes
accessTokenkotlin.StringAccess token
hasPasswordkotlin.BooleanHas a password set
refreshTokenkotlin.StringRefresh token, only required for 2FA (???)
requires2fainline
Whether has 2FA enabled or not[optional]

Enum: requires_2fa#

NameValue
requires2faGoogleAuthenticator, SMS

TransferRequest#

Properties#

NameTypeDescriptionNotes
clearOnTransferkotlin.BooleanClear emoji data when emoji transferred to destination
eidkotlin.String
emailkotlin.StringTransfer to specified email, would register new user account if not existent
forceTransferkotlin.BooleanAdmin can force transfer, for regular user it has no effect
messagekotlin.StringMessage displayed to recipient and included in the invitiation email[optional]

UpdateAccountResponse#

Properties#

NameTypeDescriptionNotes
everflowTransactionIdkotlin.Stringtransaction id indicating if the user signed up from a partner via everflow redirect[optional]
featureskotlin.collections.List<CurrentUserFeatures>Enabled features for the user[optional]
globalScopesinline
A list of fine-grained permissions the user may perform.[optional]
organizationRoles[inline](#kotlin.collections.Map<kotlin.String, InnerEnum>)
The role this user has in each organisation. Organisations are currently not used, but are reserved for future operations.[optional]
organizationScopes[inline](#kotlin.collections.Map<kotlin.String, kotlin.collections.List<kotlin.String>>)
The scopes that are granted to this user for each organisation. Organisations are currently not used, but are reserved for future operations.[optional]
pendingTransferskotlin.collections.List<kotlin.String>List of transfers pending acceptance on current user side[optional]
pubkeyskotlin.collections.List<kotlin.String>A list of this user's public keys. When yats are deployed to the blockchain, users prove ownership of their Yats with digital signatures, proving knowledge of the private keys that \"own\" the yat. In the centralised implementation of Yat, the server will custody the users' wallets and private keys, but in other respects the ownership model is the same.[optional]
roleinline
The role assigned to this user. Roles grant authority to user accounts to perform certain actions.[optional]
tokenResponseUpdateAccountResponseTokenResponse[optional]
userCurrentUserUser[optional]

Enum: global_scopes#

NameValue
globalScopesadminCart:update, adminEmoji:destroy, adminEmoji:load, adminEmoji:register, adminEmoji:transfer, adminEmoji:updateFeatures, adminEmoji:updateSecureData, adminEmoji:write, adminFeatureUser:read, adminInvites:write, adminInvites:list, adminLootbox:read, adminLootbox:write, adminNotifications:write, adminUser:bypass2fa, adminUser:load, adminUser:loginAs, adminUser:twoFactorAuthDestroy, adminUser:roleUpdate, cart:show, cart:update, code:delete, code:read, code:write, user:createApiKey, domainAction:read, domainEvent:read, edition:delete, edition:read, edition:write, emojiGroups:delete, emojiGroups:read, emojiGroups:write, emoji::transfer, feature::delete, feature::read, feature::write, lootbox:use, order:paymentOverride, order:read, order:readSelf, order:refund, order:refundOverride, order:resendConfirmation, organization:admin, organizationCode:admin, organizationEmoji:list, organizationEmoji:write, organizationList:read, organization:read, organizationUser:admin, organizationUser:read, organization:write, nftSignature:write, nftToken:destroy, nftTransfer:read, paymentMethod:destroy, paymentMethod:read, paymentMethod:setDefault, adminPriceParameters:read, adminPriceParameters:write, refund:read, token:refresh, auth:twoFactor, user:activate, userData:update, user:delete, user:deleteSelf, userEmail:verify, userEmoji:list, userInterest:delete, userInterest:read, userInterest:write, user:list, userPubkeys:list, userPubkeys:write, user:show, user:write, user:writeSelf

Enum: organization_roles#

NameValue
organizationRolesAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

Enum: organization_scopes#

NameValue
organizationScopesadminCart:update, adminEmoji:destroy, adminEmoji:load, adminEmoji:register, adminEmoji:transfer, adminEmoji:updateFeatures, adminEmoji:updateSecureData, adminEmoji:write, adminFeatureUser:read, adminInvites:write, adminInvites:list, adminLootbox:read, adminLootbox:write, adminNotifications:write, adminUser:bypass2fa, adminUser:load, adminUser:loginAs, adminUser:twoFactorAuthDestroy, adminUser:roleUpdate, cart:show, cart:update, code:delete, code:read, code:write, user:createApiKey, domainAction:read, domainEvent:read, edition:delete, edition:read, edition:write, emojiGroups:delete, emojiGroups:read, emojiGroups:write, emoji::transfer, feature::delete, feature::read, feature::write, lootbox:use, order:paymentOverride, order:read, order:readSelf, order:refund, order:refundOverride, order:resendConfirmation, organization:admin, organizationCode:admin, organizationEmoji:list, organizationEmoji:write, organizationList:read, organization:read, organizationUser:admin, organizationUser:read, organization:write, nftSignature:write, nftToken:destroy, nftTransfer:read, paymentMethod:destroy, paymentMethod:read, paymentMethod:setDefault, adminPriceParameters:read, adminPriceParameters:write, refund:read, token:refresh, auth:twoFactor, user:activate, userData:update, user:delete, user:deleteSelf, userEmail:verify, userEmoji:list, userInterest:delete, userInterest:read, userInterest:write, user:list, userPubkeys:list, userPubkeys:write, user:show, user:write, user:writeSelf

Enum: role#

NameValue
roleAdmin, OrgController, OrgMember, OrgOwner, Bot, Super, User

UpdateAccountResponseTokenResponse#

Properties#

NameTypeDescriptionNotes
accessTokenkotlin.StringAccess token
hasPasswordkotlin.BooleanHas a password set
refreshTokenkotlin.StringRefresh token, only required for 2FA (???)
requires2fainline
Whether has 2FA enabled or not[optional]

Enum: requires_2fa#

NameValue
requires2faGoogleAuthenticator, SMS

UpdateOrganizationBranding#

Properties#

NameTypeDescriptionNotes
currencieskotlin.collections.List<kotlin.String>
returnLinkkotlin.String
logokotlin.String[optional]
logoSmallkotlin.String[optional]
logoThumbnailkotlin.String[optional]
requiresEmailkotlin.Boolean[optional]

UpdateUserParameters#

Properties#

NameTypeDescriptionNotes
currentPasswordkotlin.StringOptional: Current password, must be provided if one exists[optional]
emailkotlin.StringOptional: Email[optional]
firstNamekotlin.StringOptional: First name[optional]
lastNamekotlin.StringOptional: Last name[optional]
passwordkotlin.StringOptional: User password[optional]

UserInterest#

Properties#

NameTypeDescriptionNotes
createdAtjava.time.OffsetDateTime
emojiIdkotlin.String
idjava.util.UUID
updatedAtjava.time.OffsetDateTime
userIdjava.util.UUID

Wallet#

Properties#

NameTypeDescriptionNotes
ethAddresskotlin.String
userIdjava.util.UUID

WalletSyncRequest#

Properties#

NameTypeDescriptionNotes
signaturekotlin.String
sourceinline

Enum: source#

NameValue
sourceMint, Dashboard

Documentation for Authorization#

JWT#

  • Type: API key
  • API key parameter name: Authorization
  • Location: HTTP header

apiKey#

  • Type: API key
  • API key parameter name: Authorization,X-Api-Key
  • Location: HTTP header

two_factor#

  • Type: API key
  • API key parameter name: Authorization
  • Location: HTTP header