# How to run ToEarnFun App

## Getting started

Although ToEarnFun is developed using flutter, currently we only implement Bluetooth connection adaptation for Android models. So we only released the `APK` installation file for Android, you need an Android phone to install it.

## Build and install App

### Install from APK

Download this [1.0.0-alpha](https://github.com/polketio/toearnfun_flutter_app/releases/tag/1.0.0-alpha) and install it on your **Android Mobile Phone**.

### Install from source code

Clone the latest source code from github.

```bash
git clone https://github.com/polketio/toearnfun_flutter_app.git
```

### Run App on local node(Option)

1. [Start the local node.](https://polketio.gitbook.io/toearnfun/how-to-run-a-polket-node#single-node-development-chain)
2. Modify the following code segment of the **toearnfun\_flutter\_app** project.
3. To configure the necessary data for the local node, [refer to here](#configure-the-local-node-environment-option).

```javascript
  //file: toearnfun_flutter_app/lib/plugin.dart
  
  ......
  
  @override
  List<NetworkParams> get nodeList {
    return [
      {
        'name': 'Polket Testnet',
        'ss58': 42,
        'endpoint': 'ws://10.0.2.2:9944', // change the `endpoint` to the url of the local node  
      },
    ].map((e) => NetworkParams.fromJson(e)).toList();
  }
  
  ......
```

{% hint style="info" %}
The special address **10.0.2.2:9944** on Android is the right endpoint of local node, [see more about it](https://developer.android.com/studio/run/emulator-networking).
{% endhint %}

Open **Android Studio**, and **open Android Emulator** or connect **Android Mobile Phone**.

```bash
# Run ToEarnFun App on Polket testnet
flutter run lib/main_dev.dart
```

#### Build APK

```bash
flutter build apk --split-per-abi
```

#### Install APK

```bash
flutter install
```

## How to test

### Configure the local node environment(Option)

{% hint style="info" %}
If we run the network using a local node, we first need to initially configure some data.
{% endhint %}

Open the [Polkadot Explorer](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer) in a browser and connect to the local node.&#x20;

In `currencies` module `create` an asset `FUN` for training incentives.&#x20;

<figure><img src="https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FGqicnB6Wlr4LSz2hKmuT%2F4001672903431_.pic.jpg?alt=media&#x26;token=adb40e0b-c8c0-4ba3-a601-47eb5b9b622e" alt=""><figcaption></figcaption></figure>

In events, we see that the `AssetId` starts at 1.

<figure><img src="https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2Fex5SnEo6yFMjdHkdDRjx%2F4011672903490_.pic.jpg?alt=media&#x26;token=b3b8a1d5-05a6-4ec3-9301-95fb47312eca" alt=""><figcaption></figcaption></figure>

In `vfe` module `createVfeBrand`, fill in the content as shown below.

The same as `Assets`, the `BrandId`starts at 1.

<figure><img src="https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2Fif90iNXQSLmh5gZpRzLm%2F3991672903070_.pic.jpg?alt=media&#x26;token=2c40c1a1-91dc-4a6e-bc89-b5de04fc7b96" alt=""><figcaption></figcaption></figure>

We use `sudo key` to set `AssetId 1` as the incentive token.

<figure><img src="https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FnWMP46UyZxaYNCFr2Oqm%2F4021672903556_.pic.jpg?alt=media&#x26;token=b352d73f-289e-4432-bbbf-14ad0a00ac82" alt=""><figcaption></figcaption></figure>

Although we haven't registered a producer yet, the `BrandId 1` owner can pre-approve `ProducerId 1` to mint 10000 items of `VFE`.

<figure><img src="https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2F3rx3yJ1H160GVwke9lLB%2F4071672903791_.pic.jpg?alt=media&#x26;token=b3c05567-25d5-40a3-88f2-d9a12d468a9e" alt=""><figcaption></figcaption></figure>

In the App, we will use a demo account `5C4vzxJwrWbds1wdV5YmMEyeifXhJbFVPQSfzbr371aTLsLp` for testing.

So we transfer a little test coins to it for transaction fees.

<figure><img src="https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2F2v2bwoHLj717eL9K1863%2F4041672903650_.pic.jpg?alt=media&#x26;token=b8c986fe-4f55-4d9f-9e26-65d1b9201e47" alt=""><figcaption></figcaption></figure>

### Import demo account

1. Click `Import wallet` button.
2. We have filled in a demo `mnemonic` for testing by default. Just click `Continue` button.
3. Setup the wallet `name` and `password`.

<img src="https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FBZldUq345Vhw3RnW3huH%2F3711672402848_.pic.jpg?alt=media&#x26;token=076e5b86-1263-4243-80da-b148ac114f72" alt="" data-size="original">

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FT4tSMrFivZQOv0CPdD0X%2F3721672402883_.pic.jpg?alt=media\&token=23b73f84-507b-4da4-ba53-bff9330c245e)

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2Fj6NctI00hiCAFW7qUfTM%2F3731672402930_.pic.jpg?alt=media\&token=d071ca07-fe0a-4bd4-9cfe-1a065ee92638)

### Register and bind device

After the account is created, we will enter the `Home` page. Then click the `Image` button, select the `Simulated Jump Rope`  item to bind device.

> In fact, we have already produced a real smart jump rope that can be connected. Due to time constraints, we first provide a simulator for testing.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FHFkVNPoN4IgiHrY4QXZJ%2F3741672402962_.pic.jpg?alt=media\&token=5be52ef3-9a32-46b6-b231-7a7d224931c2)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FqQZXR03k7MQb3Eijs6nY%2F3751672403001_.pic.jpg?alt=media\&token=cce72066-48c7-4fc3-bc09-084f99334fda)

Follow the steps and select the `Simulated` device to connect.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2F5a9jroz3gKWHEjNdCHwK%2F3761672403026_.pic.jpg?alt=media\&token=8f0af937-2d5f-481d-86f2-c1d06d5cf375)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FY4aCoe5r4qGdlcDRxL10%2F3771672403043_.pic.jpg?alt=media\&token=00185fb0-6e6b-4158-b20e-4f0a2eca49c2)

1. Click `Register` button, if current account isn't producer, the program first registers the account as a `producer`. Then click `Register` button again to register this device on chain.
2. Click `Bind` button to activate this device on chain.
3. After the binding is successful, you will return `Home` page and get a new `Virtual Fitness Equipment` (VFE).
4. Click `STATUS` label, `disconnected` will change to `connected` .

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2Fs42TUfNAJ2tVlXovBLnj%2F3781672403073_.pic.jpg?alt=media\&token=5a7f0f3c-653a-4cf3-9447-09d0e5f5bebc)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FhLr0Ua7AVupGFQ7hiWZt%2F3791672403118_.pic.jpg?alt=media\&token=7f97aecb-c7e6-422f-8f6b-feb42d1b762b)

### Generate simulated training report

Since there is no real equipment, we produce simulated training reports.

1. In `Home` page Click `My Training` label, enter `Training Report` page.
2. Click `AppBar right button`, the app will generate a simulated training report. Select this report, and click `>` image button, enter detail page.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FtzITsUfXpM1Wvtk7m9M3%2FWechatIMG395.png?alt=media\&token=6201be04-0436-461b-94dc-1521b291f03b)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FhWwcKzdjodK5L2p3nSNU%2F3801672403197_.pic.jpg?alt=media\&token=dd3ed7a0-6f08-4175-9de2-256e2a538ab2)

### Upload training reports and earn FUN rewards

1. New training reports are available within a 1-day deadline. Click `Report Now` button to upload training report on chain.
2. After the runtime verification training report is valid, `FUN` rewards will be issued to users. Based on the reported training volume, the user's daily available energy will be consumed.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FmmpMuVDeslWuSvu0PArQ%2F3811672403241_.pic.jpg?alt=media\&token=ba1c03ec-546e-4bed-b8b6-34b90135a83c)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FWQYxdk9TyDCA8d6zwQOn%2F3821672403625_.pic.jpg?alt=media\&token=4f89d08a-a6d6-43d6-954d-0bcaee76d329)

#### View user daily training and VFE details

1. In `Home` page, we can see the user's daily training chart. The user's daily energy will be restored by 25% each period. The user's daily earning cap resets every 24 hours.
2. Click `VFE` image, we can enter `VFE Detail` page, see more information about `VFE`.

**Sport Type**

The system will support 3 sports types: `JumpRope`, `Running`, `Riding`. Currently under development is `JumpRope`.

**VFE Rarity**

VFE currently has 4 rarities, and the attribute values of different rarities are different.

* Common.
* Elite.
* Rare.
* Epic.

**Initial attribute points**

The ability of `VFE` consists of four attributes: `Efficiency`, `Skill`, `Luck`, and `Durability`, and the range of initial points varies according to the rarity.

| Quality | Min. Attribute | Max. Attribute |
| ------- | -------------- | -------------- |
| Common  | 2              | 8              |
| Elite   | 6              | 12             |
| Rare    | 10             | 18             |
| Epic    | 20             | 30             |

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FGqcf765AggHtkBGcMPI1%2F3831672403662_.pic.jpg?alt=media\&token=0b159f68-9bba-4e89-8975-85c807a0d959)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FRrtTyZjVpbAAFs4ZU5or%2F3841672403681_.pic.jpg?alt=media\&token=ba497a28-13f9-4180-a9bb-fe14ce20caa2)

### Battery charge

After each successful `upload training report`, not only the user's energy is consumed, but also the battery of the VFE is consumed.

1. In the `VFE Detail` page, click the `Charge` button at the bottom.
2. In the `dialog view`, you can slide the `slider bar`, select the amount you want to charge, and finally click the `confirm` button to pay `FUN` as the charging cost.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2F4j4U2kqLrbpJ1psKqo1s%2Fcharge.pic.jpg?alt=media\&token=e7df4160-f3ba-4aea-954b-cbc5aa437b6e)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FMbhzTvgS5YMZUtOMgvUT%2Fconfirm-charge.pic.jpg?alt=media\&token=f01efe19-21af-4c30-bf4d-a17eef962e78)

### Level up

To get more `FUN`, in addition to training every day, you can also level up `VFE` to improve each training to get more `FUN`.

1. In the `VFE Detail` page, click the `Level up` button at the bottom.
2. In the `dialog view`, you can level up `VFE` by paying enough `FUN`.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FNda1wz7WCmGbeRlE6mBm%2Flevelup.pic.jpg?alt=media\&token=6bd9f904-5896-41cd-a441-b595726115dd)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FOdJOZjfRuTmaahKOkJgx%2Fconfirm-levelup.pic.jpg?alt=media\&token=693816e6-0030-4fd7-a02d-31e5ee04aa09)

### Increase VFE ability

New points can be added after `VFE` completes the level up.

1. In the `VFE Detail` page, click the `+ Point` button at the `Attributes`.
2. In the `Add Points` page You can freely add the available points to each attribute.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FkDt4gWLiKtpybQFVRP4C%2Fadd-point.pic.jpg?alt=media\&token=13655d2c-b284-4d12-b79e-fb44dbfa6f33)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2F4ViQCQgvbKmdtxCBXc0v%2Fconfirm-add-point.pic.jpg?alt=media\&token=3d43a719-5e5e-46f7-94ec-979d627c0113)

### Transfer VFE

When you fully charge the VFE and unbind the device, you can transfer money to other users.

1. In the `VFE Detail` page, first you should unbind the `VFE`, click the `Unbind` button at the bottom.
2. After the VFE is unbound, you can click the `Transfer` button at the bottom.
3. In the `Send VFE` page, If we want to transfer `VFE` to Alice, just copy Alice's address *`5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY`* to the `TextField.`(In the `Android Emulator`, long press `TextField`, then `Paste` the address into it.)
4. Finally, after you check that the address is correct, click `Send` button to complete the transfer.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2Fwsmqm93Y6jNmd2BvdgP9%2Funbind.pic.jpg?alt=media\&token=fc3fddaa-5105-4dbf-b1aa-16996a67c736)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2F8Bh8f0RpGeRUzUvEacQO%2Ftransfer.pic.jpg?alt=media\&token=4c491aef-62a0-493d-a3ca-1891261ac78d)

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FgeAalOMrtcCt7uyt7haw%2Fpaste-address.pic.jpg?alt=media\&token=f460fdeb-6c3f-494b-87ac-aa052b361228)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2F8riFgSm7v6eYgwyKyXFx%2Fconfirm-transfer.pic.jpg?alt=media\&token=85996551-d08e-45ee-ac42-436e9f42b977)

In the [explorer](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer), you will find the `Transfer` event appears. Next, you will use Alice to place an order on the marketplace.

<figure><img src="https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2ForjEwJSpI8ZeGGxFkOtg%2Fevent-transferred.pic.jpg?alt=media&#x26;token=26590004-528a-4520-83b5-a780fad4fc6b" alt=""><figcaption></figcaption></figure>

### Marketplace

`ToEarnFun` provides an on-chain `VFE` marketplace. First, we use `Alice` to submit an order in the explorer, then we also submit an order in the App, and finally purchase Alice's order in the App.

#### Make order in Polkadot Explorer

Open the [Polkadot Explorer](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer) in a browser, go to `Developer->Extrinsics`. In `vfeOrder` module `submitOrder(assetId, price, deadline, items)`, fill in the content as shown below. We completed submitting an order with `Alice`.

<figure><img src="https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FwXT69p5eUbwLIfT4EcQJ%2Fsubmit-order.pic.jpg?alt=media&#x26;token=be6e9388-ea2b-468a-87d1-02e2793326ce" alt=""><figcaption></figcaption></figure>

#### Take order in App

1. In App, the bottom toolbar's last tab is `marketplace`. Alice's order appears here.
2. You can buy it now by clicking the `Buy` button on the order item. You can also click on the order to view the `VFE` details.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2F9sD61YRcmGVvHfq8RW66%2Fmarket.pic.jpg?alt=media\&token=ca5f8562-d2f7-4958-9ef3-daeda9dde986)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2F4jIRoSmX4xlyuLmtvUS8%2Fbuy-vfe.pic.jpg?alt=media\&token=596a93c3-52b8-4555-860a-17b1275acb38)

#### Make order in App

After the `VFE` is unbinded, you can sell it to `VFE` marketplace.

1. In the `VFE Detail` page, if the `VFE` is unbond, you can click the `Sell` button at the bottom.
2. Place a price, click `Maker Order`, and you can sell it to the marketplace.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2F7TsCaSOaQjXvNeP0eMsB%2Fsell-vfe.pic.jpg?alt=media\&token=ef8e01bd-c388-4cc8-91de-88f6e9b49be0)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FHQtkr8ceAc967GW56bnH%2Fconfirm-sell.pic.jpg?alt=media\&token=41578209-0cd4-4f93-b3cf-fdad85472e00)

#### Cancel Order

1. You can click `My Sale` to view your orders on the marketplace.
2. You can click the `cancel` button to delete the unblied order.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FJvTSkxWCNKVVg2W0tHZQ%2Fcancel-order.pic.jpg?alt=media\&token=ffcfd15a-1325-415c-a519-8dbffd2c16ed)

### User wallet

In `Home` page or `VFE Detail` page, Click `Appbar right button`, can enter `Wallet` page. We can see all assets of user on `Polket` chain.

> The Polket chain is developed based on substrate, and these assets can be circulated to the polkadot ecosystem in the future.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FlDJHABl6VIOiv3huWbjP%2F3851672403699_.pic.jpg?alt=media\&token=8ff7a351-bfff-42b3-be30-0280eb36cd56)

### Buyback plan

`FUN` is not only used in VFE's gameplay, but also can be used to get other assets in the buyback plan.

#### Create buyback plan

Open the [Polkadot Explorer](https://polkadot.js.org/apps/?rpc=ws%3A%2F%2F127.0.0.1%3A9944#/explorer) in a browser, go to `Developer->Extrinsics`. In `buyback` module `createPlan(sellAssetId, buyAssetId, minSell, buybackAmount, sellerLimit, start, period, mode)`, fill in the content as shown below. We use the `Alice` account to create a buyback plan.

<figure><img src="https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FPqK65lnFfBOf59ZKYEj8%2Fcreate-buybackplan.pic.jpg?alt=media&#x26;token=5333a278-ddac-47c1-aa11-0a0e703ce01f" alt=""><figcaption></figcaption></figure>

* **sellAssetId** is the asset used by user will sell to plan. Value 1 is `FUN`.
* **buyAssetId** is the asset used by the creator for buyback `sellAssetId`. Value 0 is `PNT`.
* **minSell** is the limitation of the minimum selling of **sellAssetId**.
* **buybackAmount** is the total number of buyback plan. Please ensure that the account has sufficient balance available.
* **sellerLimit** is used to limit the number of participants.
* **start** is the block number of the buyback plan when starts. When the plan status is `Inprogress`, the user can participate.
* **period** is after how many blocks the buyback plan will end.
* **mode** is sell asset will be handle after buyback plan completed.

#### Buyback plan in App

In the App, you can see the buyback plan just created, click `View` button to view the plan detail.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FiSp6njzqCthRow1r8aNo%2Fwallet.pic.jpg?alt=media\&token=abea2170-d863-477a-835d-9644ec8f082f)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FOGQ4HVeG5jbfwuAM8QtN%2Fbuybackplans.pic.jpg?alt=media\&token=ce72c8e3-7ece-46f1-8ec7-7a1d62c93695)

#### Participate in the buyback plan

1. On the detailed page, you can lock in `FUN` to the plan, and then wait for the plan to end.&#x20;
2. After the plan completed, the plan will give you a reward for another asset according to the final buyback price.

![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FarZyOqZi85jn2h2d17nw%2Fbuybackplan-detail.pic.jpg?alt=media\&token=8e820d87-2ef6-4d84-b7e1-271e2bee4262)![](https://635227825-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FSNVE0uFwZQaZbTfSUSjM%2Fuploads%2FMIQgMyigeFoQxGMLrv6Q%2Fbuybackplan-completed.pic.jpg?alt=media\&token=aa808ab3-8924-422a-9431-e1cd5fc0cda3)
