# Unlockables

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

---


# Unlockables

Read more about the Unlockables system in Hiro [here](../../concepts/unlockables/).

## Create a random unlockable

Create a random unlockable to assign to a slot (or overflow) unless there are no slots.

```dart
var unlockables_list = await hiro.unlockablesCreate(session!);
print(unlockables_list);
```

## Get in progress unlockables

Get the unlockables which are currently in progress for the player.

```dart
var unlockables_list = await hiro.unlockablesGet(session!);
print(unlockables_list);
```

## Start an unlock

Start the unlock timer for an unlockable in the specified slot.

```dart
var request = UnlockablesRequest();
request.instance_id = "unlockable_instance_1";

var unlockables_list = await hiro.unlockablesUnlockStart(session!, request);
print(unlockables_list);
```

## Purchase an unlockable

Purchase an unlockable with soft currency based on the remainder cost calculated by the offset left to wait.

```dart
var request = UnlockablesRequest();
request.instance_id = "unlockable_instance_1";

var unlockables_list = await hiro.unlockablesPurchaseUnlock(session!, request);
print(unlockables_list);
```

## Purchase a new unlockable slot

Purchase a new slot to be used to store unlockables.

```dart
var unlockables_list = await hiro.unlockablesPurchaseSlot(session!);
print(unlockables_list);
```

## Claim an unlockable

Claim an unlockable whose start timer has completed or completion was fast tracked with a purchase.

```dart
var request = UnlockablesRequest();
request.instance_id = "unlockable_instance_1";

var unlockables_list = await hiro.unlockablesClaim(session!, request);
print(unlockables_list);
```