# Donations

**URL:** https://heroiclabs.com/docs/hiro/unity/economy/donations/
**Summary:** Donations are a way for players to share in-game items.
**Keywords:** donations, hiro
**Categories:** hiro, unity, donations

---


# Donations

## Listing available donations

You can list available donations.

```csharp
foreach (var donationKvp in economySystem.Donations)
{
    var id = donationKvp.Key;
    var donation = donationKvp.Value;

    Debug.Log($"Donation {id} - {donation.Name}. Rewards: ");

    foreach (var reward in donation.RecipientRewards)
    {
        foreach (var currency in reward.Currencies)
        {
            Debug.Log($"{currency.Key}: {currency.Value}");
        }

        foreach (var item in reward.Items)
        {
            Debug.Log($"{item.Key}: {item.Value}");
        }

        foreach (var energy in reward.Energies)
        {
            Debug.Log($"{energy.Key}: {energy.Value}");
        }
    }
}
```

You can also list donations in several other ways.

By donation ids:

```csharp
var donationsKvp = await economySystem.GetDonationsAsync(new [] { "<donationId1>", "<donationId2>" });
```

By team (using the [Team System](../../teams/)):

```csharp
var teamMembers = teamsSystem.TeamMembers;
var donationsKvp = economySystem.GetDonationsAsync(teamMembers);
```

Or by friends list:

```csharp
var friendsList = await nakamaSystem.Client.ListFriendsAsync(nakamaSystem.Session);
var donationsKvp = await economySystem.GetDonationsAsync(friendsList);
```

## Requesting a donation

You can request a donation for a user.

```csharp
await economySystem.RequestDonationAsync("<donationId1>");
```

## Donating to a user

You can make a donation to a particular user.

```csharp
await economySystem.DonateAsync("<donationId>", "<targetUserId>");
```

## Claiming rewards for donations

You can claim rewards for completed donations.

```csharp
await economySystem.ClaimDonationsAsync(new[] {"<donationId1>", "<donationId2>"});
```
