# Economy

**URL:** https://heroiclabs.com/docs/hiro/dart/economy/
**Keywords:** economy, hiro
**Categories:** hiro, dart, economy

---


# Economy

Read more about the Economy system in Hiro [here](../../concepts/economy/).

## Donation claim

Claim one or more rewards which are partially or full donated by other players.

```dart
var request = EconomyDonationClaimRequest();
request.donation_ids = ["donation_1", "donation_2"];

var donation_rewards = await hiro.economyDonationClaim(session!, request);
print(donation_rewards);

```

## Donate to a user

Donate some resource (currencies, items, etc.) to a user by donation ID.

```dart
var request = EconomyDonationGiveRequest();
request.user_id = "user_id";
request.donation_id = "donation_1";

var update_ack = await hiro.economyDonationGive(session!, request);
print(update_ack);
```

## Get donation progress

Get progress on one or more donations for a set of players by their IDs.

```dart
var request = EconomyDonationGetRequest();
request.ids = ["donation_1", "donation_2"];

var donations = await hiro.economyDonationGet(session!, request);
print(donations);
```

## Request a donation

Request a donation which other players can contribute into.

```dart
var request = EconomyDonationRequest();
request.id = "donation_1";

var donation_ack = await hiro.economyDonationRequest(session!, request);
print(donation_ack);
```

## Get store items

Get all store items defined in the Virtual Store.

```dart
var request = EconomyListRequest();
request.store_type = EconomyStoreType.AppleAppstore;

var economy_list = await hiro.economyStoreGet(session!, request);
print(economy_list);
```

## Grant currencies or reward modifiers

Grant one or more currencies or reward modifiers to te player.

```dart
var request = EconomyGrantRequest();
request.currencies = {
    "coins": "100"
};

var update_ack = await hiro.economyGrant(session!, request);
print(update_ack);

```

## Store Types

Currently supported Store Types for purchases:

* EconomyStoreType.AppleAppstore
* EconomyStoreType.GooglePlay
* EconomyStoreType.Fbinstant
* EconomyStoreType.Discord

## Send a purchase intent

Send a marker of intent to purchase by the player.

```dart
var request = EconomyPurchaseIntentRequest();
request.item_id = "item_1";
request.store_type = EconomyStoreType.AppleAppstore;
request.sku = "sku_1";

await hiro.economyPurchaseIntent(session!, request);
```

## Purchase a store item

Purchase a store item by the player.

```dart
var request = EconomyPurchaseRequest();
request.item_id = "item_1";
request.store_type = EconomyStoreType.AppleAppstore;
request.receipt = "<receipt>";

var purchase_ack = await hiro.economyPurchaseItem(session!, request);
print(purchase_ack);
```

## Get ad placement status

Get the current status on an Ad placement which may have been rewarded.

```dart
var request = EconomyPlacementStatusRequest();
request.reward_id = "reward_1";
request.placement_id = "placement_1";
request.count = 0;

var placement_status = await hiro.economyPlacementStatus(session!, request);
print(placement_status);
```

## Start a new ad placement

Start a new Ad placement by placement ID.

```dart
var request = EconomyPlacementStartRequest();
request.placement_id = "placement_1";

var placement_status = await hiro.economyPlacementStart(session!, request);
print(placement_status);
```

## Placement success

Webhook RPC to handle Rewarded Video Ad placement success callbacks.

```dart
await hiro.economyPlacementSuccess(session!);
```

## Placement fail

Webhook RPC to handle Rewarded Video Ad placement failure callbacks.

```dart
hiro.economyPlacementFail(session!);
```