Client
.NET/Unity C++/Unreal/Cocos2d-x JavaScript/Cocos2d-js Godot 3 Godot 4 Java/Android Defold cURL REST Swift Dart/Flutter
Server
TypeScript Go Lua
Economy
# The Economy system allows you to manage virtual currencies, donations, in-game store transactions, and advertisements. Learn more in the Economy concept guide .
Overview
# The Economy system enables your game to:
Handle player donations and rewards. Manage in-game store purchases. Administer virtual currency and reward distributions. Control advertisement placements and rewards. Before You Start
# Ensure that you have:
Unity project configured with Hiro SDK. Nakama system integrated (guide ). Working with Donations
# Claiming Donations
# Claim rewards donated by other players:
1
2
3
4
request = EconomyDonationClaimRequest ()
request . donation_ids = [ "donation_1" , "donation_2" ]
donation_rewards = await hiro_client . economy_donation_claim ( request )
Donating to Users
# Donate resources (currencies, items) to other players:
1
2
3
4
5
request = EconomyDonationGiveRequest ()
request . user_id = "user_id"
request . donation_id = "donation_1"
update_ack = await hiro_client . economy_donation_give ( request )
Checking Donation Progress
# Check progress on donations:
1
2
3
4
request = EconomyDonationGetRequest ()
request . ids = [ "donation_1" , "donation_2" ]
donations = await hiro_client . economy_donation_get ( request )
Requesting Donations
# Request donations from players:
1
2
3
4
request = EconomyDonationRequest ()
request . id = "donation_1"
donation_ack = await hiro_client . economy_donation_request ( request )
Managing Store Transactions
# Retrieving Store Items
# Fetch available items from the virtual store:
1
2
3
4
request = EconomyListRequest ()
request . store_type = EconomyStoreType . AppleAppstore
economy_list = await hiro_client . economy_store_get ( request )
Supported Store Types
# Currently supported store types:
EconomyStoreType.AppleAppstore
EconomyStoreType.GooglePlay
EconomyStoreType.Fbinstant
EconomyStoreType.Discord
Purchase Flow
# Sending Purchase Intent
# Initiate an intent to purchase:
1
2
3
4
5
6
request = EconomyPurchaseIntentRequest ()
request . item_id = "item_1"
request . store_type = EconomyStoreType . AppleAppstore
request . sku = "sku_1"
await hiro_client . economy_purchase_intent ( request )
Completing Purchases
# Finalize item purchases:
1
2
3
4
5
6
request = EconomyPurchaseRequest ()
request . item_id = "item_1"
request . store_type = EconomyStoreType . AppleAppstore
request . receipt = "<receipt>"
purchase_ack = await hiro_client . economy_purchase_item ( request )
Granting Rewards
# Grant virtual currencies or rewards to players:
1
2
3
4
request = EconomyGrantRequest ()
request . currencies = { "coins" : "100" }
update_ack = await hiro_client . economy_grant ( request )
Managing Advertisements
# Ad Placement Status
# Retrieve status of ad placements:
1
2
3
4
5
6
request = EconomyPlacementStatusRequest ()
request . reward_id = "reward_1"
request . placement_id = "placement_1"
request . count = 0
placement_status = await hiro_client . economy_placement_status ( request )
Starting Ad Placements
# Begin an ad placement:
1
2
3
4
request = EconomyPlacementStartRequest ()
request . placement_id = "placement_1"
placement_status = await hiro_client . economy_placement_start ( request )
Handling Ad Callbacks
# Handle rewarded video ad callbacks:
1
2
3
4
5
# Success Callback
await hiro_client . economy_placement_success ()
# Failure Callback
await hiro_client . economy_placement_fail ()
Next Steps
#