# Training & Tokens

This page covers the NFT training system, token exchange, and details about $TRAIN and $FIGHT tokens.

***

## NFT Training for $TRAIN <a href="#training" id="training"></a>

Earn $TRAIN rewards by training your Street Fighter NFTs. Training is **non-custodial** - your NFTs remain in your wallet at all times.

### How It Works

1. **Train Fighters** - Visit the [My Fighters](/duel-white-paper/getting-started/fighters.md#my-fighters) page and click "Train Fighters" to register new NFTs
2. **Earn Rewards Over Time** - Your NFTs accumulate $TRAIN rewards every hour while registered
3. **Collect $TRAIN** - Click "Collect $TRAIN" anytime to claim your accumulated rewards

### Non-Custodial System

Unlike traditional staking, your NFTs **never leave your wallet**. The training contract tracks which NFTs you have registered for training. When you collect rewards, the contract verifies your current ownership and pays rewards only for NFTs you still own.

### Smart Auto-Reconciliation

The training contract automatically handles ownership changes:

**"Train Fighters" (Green Button)** - Only appears when you have new NFTs to register

* Registers new trainable NFTs for training
* Processes in batches of 50 (efficient for 1000+ NFT collections)
* Automatically pays pending rewards before adding new assets
* Cleans up any NFTs you no longer own

**"Collect $TRAIN" (Yellow Button)** - Always available when you have pending rewards

* Claims your accumulated $TRAIN rewards
* Automatically reconciles ownership changes (removes sold NFTs, adjusts counts)
* Pays rewards based on NFTs you actually own

### Automatic NFT Tracking

The training contract tracks individual registered assets:

* Each NFT is registered with its rarity and powerscore
* Rewards are calculated based on time since last claim
* Both actions automatically remove NFTs you no longer own

This means you **don't need to manually sync** after selling an NFT. Just click "Collect $TRAIN" and the contract will automatically:

1. Detect which NFTs you no longer own
2. Pay rewards for NFTs you still have
3. Clean up stale registrations

### Important Notes

* **Ownership Required**: If you sell or transfer an NFT, unclaimed rewards for that NFT are not claimable
* **No Lock-up Period**: Your NFTs can be sold or transferred at any time
* **Use in Games**: Trained NFTs can still be used in WAX Duel battles
* **All Powerscores**: NFTs with Powerscore 1-5 can all be trained (not just Powerscore 5)

### stf.capcom Reward Rates

All Series 1 trainable NFTs from the stf.capcom collection (Powerscore 1-5) are eligible for $TRAIN rewards. There is no limit to the number of NFTs you can train.

Each eligible NFT earns an hourly $TRAIN reward based on its **rarity** and **powerscore**.

#### Complete Rates Table ($TRAIN per day)

| Rarity          | PS1   | PS2   | PS3   | PS4   | PS5    |
| --------------- | ----- | ----- | ----- | ----- | ------ |
| **Base**        | 0.284 | 0.568 | 1.136 | 2.273 | 4.545  |
| **Foil**        | 0.5   | 1.0   | 2.0   | 4.0   | 8.0    |
| **Battle**      | 0.833 | 1.667 | 3.333 | 6.667 | 13.333 |
| **Weld**        | 1.25  | 2.5   | 5.0   | 10.0  | 20.0   |
| **Action**      | 2.5   | 5.0   | 10.0  | 20.0  | 40.0   |
| **Collector's** | 12.5  | 25.0  | 50.0  | 100.0 | 200.0  |

#### Powerscore Multipliers

Each powerscore level applies a multiplier to the base rate (PS5):

| Powerscore | Multiplier      |
| ---------- | --------------- |
| **PS5**    | 100% (1.0x)     |
| **PS4**    | 50% (0.5x)      |
| **PS3**    | 25% (0.25x)     |
| **PS2**    | 12.5% (0.125x)  |
| **PS1**    | 6.25% (0.0625x) |

**Formula:** `Daily Rate = Base Rate (PS5) × Powerscore Multiplier`

#### Base Hourly Rates (PS5)

For reference, here are the base hourly rates used to calculate daily earnings:

| NFT Rarity      | Rarity Odds | $TRAIN / hour (PS5) | $TRAIN / day (PS5) |
| --------------- | ----------- | ------------------- | ------------------ |
| **Base**        | 44%         | 0.18939394          | 4.545              |
| **Foil**        | 25%         | 0.33333333          | 8.0                |
| **Battle**      | 15%         | 0.55555555          | 13.333             |
| **Weld**        | 10%         | 0.83333333          | 20.0               |
| **Action**      | 5%          | 1.66666666          | 40.0               |
| **Collector's** | 1%          | 8.33333333          | 200.0              |

> **Note:** Golden NFTs and Build NFTs cannot earn $TRAIN rewards from the training system. Golden NFTs have a different benefit: no cooldown between games.

### Using $TRAIN

Once you've earned $TRAIN tokens, you can:

* **Exchange for $FIGHT** via the [in-app exchange](#exchange) at a rate of 100 $TRAIN = 1 $FIGHT
* **Use $FIGHT to bet** on games at [WAX Duel](https://waxduel.io)

### Historical: WAXDAO Staking Farm

The previous WAXDAO staking farm was closed on **January 9, 2026**. All users who were staking at that time received their accumulated $TRAIN rewards and NFTs returned to their wallets. The new training system described above replaces the WAXDAO farm with a more integrated, non-custodial solution.

***

## Exchange $TRAIN for $FIGHT <a href="#exchange" id="exchange"></a>

Exchange tokens directly in the WAX Duel app. Click on your token balances in the header to open the Token Overlay, then use the Exchange tab.

### Exchange Rates

| Direction        | Rate  | Example               |
| ---------------- | ----- | --------------------- |
| $TRAIN -> $FIGHT | 100:1 | 100 $TRAIN = 1 $FIGHT |
| $FIGHT -> $TRAIN | 1:80  | 1 $FIGHT = 80 $TRAIN  |

The 20% spread (100 vs 80) creates a natural fee structure.

The in-app exchange is powered by the [bank.duel contract](/duel-white-paper/reference/smart-contracts.md#bank-duel), which holds reserves of both tokens and executes exchanges instantly.

### How to Exchange

1. Connect your wallet at [waxduel.io](https://waxduel.io)
2. Click on your token balance in the header
3. Select the "Exchange" tab
4. Choose your exchange direction ($TRAIN -> $FIGHT or $FIGHT -> $TRAIN)
5. Enter the amount and confirm the transaction

### Minimum Exchange Amounts

* **TRAIN -> FIGHT**: Minimum 100 $TRAIN (to receive at least 1 $FIGHT)
* **FIGHT -> TRAIN**: Minimum 1 $FIGHT

***

## $TRAIN Token <a href="#train-token" id="train-token"></a>

The [$TRAIN Token](https://waxblock.io/tokens/TRAIN-wax-token.duel) has been created on the [token.duel](https://waxblock.io/account/token.duel) smart contract to reward training of approved NFTs hourly.

### How to Earn $TRAIN

1. Go to [My Fighters](https://waxduel.io/stf-capcom/fighters) on waxduel.io
2. Register your NFTs for training (non-custodial - NFTs stay in your wallet)
3. Earn $TRAIN tokens over time based on NFT rarity
4. Claim your rewards anytime

$TRAIN can be [exchanged for $FIGHT](#exchange) via the in-app exchange. $FIGHT is used to play Duel. Future in-game uses of $TRAIN will be created over time.

### $TRAIN Token Details

* **Contract:** [token.duel](https://waxblock.io/account/token.duel)
* **Symbol:** TRAIN
* **Precision:** 8 decimals
* **Max Supply:** 1,000,000,000 TRAIN

### Token History

* 4/3/2023 - 1,000,000,000 $TRAIN (with precision of 8 decimals) created by token.duel

$TRAIN is issued as rewards for NFT training via the [train.duel](/duel-white-paper/reference/smart-contracts.md#train-duel) contract.

***

## $FIGHT Token <a href="#fight-token" id="fight-token"></a>

The [$FIGHT Token](https://waxblock.io/tokens/FIGHT-wax-token.duel) has been created on the [token.duel](https://waxblock.io/account/token.duel) smart contract. It is used to play the Duel game and is rewarded to winners. Different Duel Game Modes may require different amounts of $FIGHT to play.

### How to Get $FIGHT

1. [Train your NFTs](#training) to earn $TRAIN tokens, then exchange for $FIGHT
2. [Buy $FIGHT with $WAXP](#waxp-exchange) directly via the in-app exchange
3. [Win duels](#fight-token) and earn $FIGHT from the prize pool

$FIGHT can also be exchanged back to $TRAIN (1:80 ratio).

### Using $FIGHT

* **Bet on Games:** Use $FIGHT to create or join duels
* **Win Prizes:** Winners receive 80% of the total prize pool in $FIGHT
* **Minimum Bet:** 1 $FIGHT per game

### $FIGHT Token Details

* **Contract:** [token.duel](https://waxblock.io/account/token.duel)
* **Symbol:** FIGHT
* **Precision:** 8 decimals
* **Max Supply:** 1,000,000,000 FIGHT

### Token History

* 4/3/2023 - 1,000,000,000 $FIGHT (with precision of 8 decimals) created by token.duel

$FIGHT is issued as needed to support the Duel game via the [bank.duel](/duel-white-paper/reference/smart-contracts.md#bank-duel) exchange reserve.

***

## Buy $FIGHT with $WAXP <a href="#waxp-exchange" id="waxp-exchange"></a>

You can buy $FIGHT directly with $WAXP via the in-app exchange.

### WAXP Exchange Rate

| Direction       | Rate | Example            |
| --------------- | ---- | ------------------ |
| $WAXP -> $FIGHT | 1:1  | 1 $WAXP = 1 $FIGHT |

### How to Buy

1. Connect your wallet at [waxduel.io](https://waxduel.io)
2. Click on your token balance in the header
3. Select the "$FIGHT" tab
4. Enter the WAXP amount and confirm the transaction

To sell $FIGHT for WAX, use the [$FIGHT / WAX Alcor Spot Market](https://alcor.exchange/trade/fight-token.duel_wax-eosio.token).

***

## Token Flow Summary

```
                         +------ Buy with $WAXP ------+
                         |                            |
                         v                            |
Train NFTs -> $TRAIN -> Exchange -> $FIGHT -> Duel -> Win more $FIGHT
                                                             |
                                                             v
                                                     Continue dueling
```

### Ways to Get $FIGHT

1. **Train NFTs** -> Earn $TRAIN -> Exchange for $FIGHT
2. **Buy $FIGHT** -> Purchase directly with $WAXP
3. **Win Duels** -> Collect prize pool in $FIGHT

### Ways to Use $FIGHT

1. **Bet on Duels** -> Wager on battles
2. **Exchange for $TRAIN** -> Convert back at 1:80 ratio
3. **Sell on Alcor** -> Trade on the [Alcor DEX](https://alcor.exchange/trade/fight-token.duel_wax-eosio.token)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://duel-2.gitbook.io/duel-white-paper/tokens/training-and-tokens.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
