# Energy

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

---


# Energy

Read more about the Energy system in Hiro [here](../../concepts/energy/).

## Get all energies

Get the energies and their current timers for the player.

```dart
var energyList = await hiro.energyGet(session!);
print(energyList);
```

## Spend one or more energies

Spend one or more energies for the player.

```dart
var request =  EnergySpendRequest();
request.amounts = {
    "power": 10,
    "tickets": 1
};

var energySpendRewards = await hiro.energySpend(session!, request);
print(energySpendRewards);
```

## Spend energies with custom refill start times

Spend one or more energies and set a custom refill start time for each.

```dart
var request = EnergySpendWithRefillStartTimeRequest();
request.spends = {
    "power": EnergySpendWithTime()
        ..amount = 10
        ..refillStartTime = DateTime.now().millisecondsSinceEpoch ~/ 1000,
    "tickets": EnergySpendWithTime()
        ..amount = 1
        ..refillStartTime = (DateTime.now().millisecondsSinceEpoch ~/ 1000) - 300,
};

var energySpendReward = await hiro.energySpendWithRefillStartTime(session!, request);
print(energySpendReward);
```

## Granting energy

While energy can be granted as part of a reward, you can also grant it directly.

```dart
var request = EnergyGrantRequest();
request.amounts = {
    "power": 10,
    "tickets": 1
};

var energyList = await hiro.energyGrant(session!, request);
print(energyList);
```