NEOLearn

EconomyService

The wallet, NEO Credits packs, the Marketplace's items, buying and inventory.

Updated October 17, 2026

On this page

Credits, the ledger, payments and the marketplace. Every method is a POST with a JSON body; see the overview for the protocol, authentication and errors.

Summary#

MethodAuthDescription
GetWalletAccount
ListTransactionsAccount
ListCreditPacksNone
StartTopUpAccountStarts a top-up with a payment provider; returns the checkout URL.
ListItemsOptional
GetItemOptional
CreateItemAccount
UpdateItemAccountThe creator edits a listing (name, description, price, or delists it).
BuyItemAccount
ListInventoryAccount

Methods#

GetWallet#

HTTP
POST /neo.platform.v1.EconomyService/GetWallet
Content-Type: application/json

Auth: A signed-in account. Guests are refused.

Request: GetWalletRequest. Response: Wallet.

ListTransactions#

HTTP
POST /neo.platform.v1.EconomyService/ListTransactions
Content-Type: application/json

Auth: A signed-in account. Guests are refused.

Request: ListTransactionsRequest. Response: ListTransactionsResponse.

ListCreditPacks#

HTTP
POST /neo.platform.v1.EconomyService/ListCreditPacks
Content-Type: application/json

Auth: None.

Request: ListCreditPacksRequest. Response: ListCreditPacksResponse.

StartTopUp#

Starts a top-up with a payment provider; returns the checkout URL.

HTTP
POST /neo.platform.v1.EconomyService/StartTopUp
Content-Type: application/json

Auth: A signed-in account. Guests are refused.

Request: StartTopUpRequest. Response: StartTopUpResponse.

ListItems#

HTTP
POST /neo.platform.v1.EconomyService/ListItems
Content-Type: application/json

Auth: Optional. Signed-in callers get personalised fields.

Request: ListItemsRequest. Response: ListItemsResponse.

GetItem#

HTTP
POST /neo.platform.v1.EconomyService/GetItem
Content-Type: application/json

Auth: Optional. Signed-in callers get personalised fields.

Request: ItemRef. Response: Item.

CreateItem#

HTTP
POST /neo.platform.v1.EconomyService/CreateItem
Content-Type: application/json

Auth: A signed-in account. Guests are refused.

Request: CreateItemRequest. Response: Item.

UpdateItem#

The creator edits a listing (name, description, price, or delists it).

HTTP
POST /neo.platform.v1.EconomyService/UpdateItem
Content-Type: application/json

Auth: A signed-in account. Guests are refused.

Request: UpdateItemRequest. Response: Item.

BuyItem#

HTTP
POST /neo.platform.v1.EconomyService/BuyItem
Content-Type: application/json

Auth: A signed-in account. Guests are refused.

Request: BuyItemRequest. Response: BuyItemResponse.

ListInventory#

HTTP
POST /neo.platform.v1.EconomyService/ListInventory
Content-Type: application/json

Auth: A signed-in account. Guests are refused.

Request: ListInventoryRequest. Response: ListInventoryResponse.

Types#

BuyItemRequest#

FieldTypeDescription
itemIdstring
expectedPricestring (int64)The price the buyer saw (rejected if it changed).
soldInExperienceIdstringThe experience the purchase happened in (for the selling-game share), optional.
requestIdstringIdempotency key from the client.

BuyItemResponse#

FieldTypeDescription
walletWallet
itemItem
transactionIdstring

CreateItemRequest#

FieldTypeDescription
kindstring
namestring
descriptionstring
pricestring (int64)
experienceIdstring

CreditPack#

FieldTypeDescription
idstring
creditsstring (int64)
priceMinorstring (int64)Price in the smallest currency unit (cents).
currencystring

GetWalletRequest#

No fields: send {}.

ItemRef#

FieldTypeDescription
itemIdstring

ListCreditPacksRequest#

FieldTypeDescription
channelstring

ListCreditPacksResponse#

FieldTypeDescription
packsarray of CreditPack
methodsarray of PaymentMethodEvery method, configured or not; clients offer the configured ones.

ListInventoryRequest#

FieldTypeDescription
kindstring

ListInventoryResponse#

FieldTypeDescription
itemsarray of Item

ListItemsRequest#

FieldTypeDescription
kindstring
experienceIdstring
limitnumber

ListItemsResponse#

FieldTypeDescription
itemsarray of Item

ListTransactionsRequest#

FieldTypeDescription
limitnumber

ListTransactionsResponse#

FieldTypeDescription
transactionsarray of Transaction

PaymentMethod#

A way to pay for Credits, and whether this environment can take it.

FieldTypeDescription
idstringcard, sandbox, usdc, store_apple, store_google (StartTopUpRequest.method)
labelstring
configuredboolean
reasonstringWhen it isn't configured: why (e.g. "card payments aren't configured in this environment").

StartTopUpRequest#

FieldTypeDescription
packIdstring
methodstringcard (fiat, the default), usdc (crypto), store_apple, store_google, sandbox (dev and test environments only). ListCreditPacks says which this environment takes.

StartTopUpResponse#

FieldTypeDescription
orderIdstring
checkoutUrlstring
statusstring

Transaction#

FieldTypeDescription
idstring
kindstringtop_up, purchase, sale, refund, grant
amountstring (int64)Signed change to the caller's spendable balance.
memostring
createdAtstring

UpdateItemRequest#

FieldTypeDescription
itemIdstring
namestring
descriptionstring
pricestring (int64)-1 = unchanged.
statusstringlisted or delisted; empty = unchanged.

Wallet#

FieldTypeDescription
purchasedstring (int64)Credits bought with money (spendable, not cash-out-able).
earnedstring (int64)Credits earned from sales (spendable; cash-out-able after the hold).
pendingstring (int64)
totalstring (int64)

See also#