# ❓Trading Rewards - FAQs

Frequently asked questions for VRTX trading rewards.

## How to query the amount of rewards I have earned?

Via the Rewards query.

## Do we need to be >0.25% of maker volume in epoch 1 to qualify for epoch 2?

No, each epoch is independent. You will qualify as long as your maker volume of the current epoch is >0.25%.

## Quoting requirements are 5K per side for BTC/USDC and ETH/USDC spot, what’s the requirements for BTC and ETH perps?

Spot and perpetual markets have the same requirements, so both of them should be 5K.

## How is the `uptime`

field in the rewards response calculated?

`uptime`

field in the rewards response calculated?Uptime represents the total minutes in the epoch (out of 28 days) your `Q_MIN(N)`

is positive, so it's a value in the range of `[0, 40320]`

.

## What does `maker_fee`

in rewards response represent? Isn’t maker fee rate 0?

`maker_fee`

in rewards response represent? Isn’t maker fee rate 0?`maker_fee`

doesn’t represent fees that maker paid, it represents the accumulative `taker_fee`

that the opposite side of your maker order paid, which means for a trade --

`(taker, maker, taker_fee)`

, we keep track of fees as follows --

`taker_fees(taker) += taker_fee`

, `maker_fees(maker) += taker_fee`

.

## Are all calculations based on subaccount or wallet address?

Calculations are based on wallet addresses. To sum them up, we extract the wallet from all subaccounts, and all trades / orders across multiple subaccounts are unified.

## Do we have to provide liquidity on both the bid and ask sides of the orderboook to get rewards?

Yes, we take the smaller side of bid and ask as your size.

## What does `reward_coefficient`

refer to in `global_rewards`

of rewards response?

`reward_coefficient`

refer to in `global_rewards`

of rewards response?The `reward_coefficient / num_product`

represents the portion of tokens (both maker and taker) allocated to the product. Assume epoch total maker tokens are 1000, we have 4 products. If a product has `reward_coefficient = 1.2`

, maker / taker tokens allocated to this product will be `1000 * 1.2 / 4`

.

We want to allocate more tokens to more active markets, so the more fees a market collected, the higher `reward_coefficient`

it will have.

## For `Q_MIN(N)`

, does the order need to be in the books for the whole minute to qualify?

`Q_MIN(N)`

, does the order need to be in the books for the whole minute to qualify?Not the whole minute, we take a snapshot every minute using random sampling. You’ll qualify as long as you meet the requirements when the snapshot is taken.

## How is the base price determined when calculating `spread`

?

`spread`

?We use the mid-market price --`(bid_1 + ask_1) / 2`

.

## Can you provide an example illustrating the `Q_MIN(N)`

calculations?

`Q_MIN(N)`

calculations?`Q_MIN(N) = min(Q_BID(N), Q_ASK(N))`

, where:

`Q_BID(N) = BidDepth_1 / BidSpread_1 + BidDepth_2 / BidSpread_2 + ...`

`Q_ASK(N) = AskDepth_1 / AskSpread_1 + AskDepth_2 / AskSpread_2 + ...`

We’ll use an example to introduce how these values (`Depth`

and `Spread`

) are calculated.

Assume you have the following orders:

**Price**: $80, size: 999 (bid)**Price**: $98, size: 10 (bid)**Price**: $99, size: 6 (bid)**Price**: $101, size: 8 (ask)**Price**: $102, size: 15 (ask)**Price**: $140: size: 999 (ask)

Assuming the mid market price is $100, min depth is $1.5k, and max spread is 0.05, we have:

`BidDepth_3 = 80*999 = 79920`

,`BidSpread_3 = (100-80)/100 = 0.2`

`BidDepth_2 = 98*10 = 980`

,`BidSpread_2 = (100-98)/100 = 0.02`

`BidDepth_1 = 99*6 = 594`

,`BidSpread_1 = (100-99)/100 = 0.01`

`AskDepth_1 = 101*8 = 808`

,`AskSpread_1 = (101-100)/100 = 0.01`

`AskDepth_2 = 102*15 = 1530`

,`AskSpread_2 = (102-100)/100 = 0.02`

`AskDepth_3 = 140*999 = 139860`

,`AskSpread_3 = (140-100)/100 = 0.4`

Since `BidSpread_3 > 0.05`

and `AskSpread_3 > 0.05`

, these two orders will be ignored. Now the depths of valid orders are:

`BidDepth = BidDepth_2 + BidDepth_1 = 1574`

`AskDepth = AskDepth_2 + AskDepth_1 = 2338`

Since both depths are more than the requirement ($1.5k), we have:

`Q_BID(N) = 594 / 0.01 + 980 / 0.02 = 108400`

`Q_ASK(N) = 808 / 0.01 + 1530 / 0.02 = 157300`

So, `Q_MIN(N) = min(108400, 157300) = 108400`

.

However, if the $99 order’s size is 5 (instead of 6), the `Q_MIN(N)`

will be 0 since the min depth requirement can’t be fulfilled on the bid side.

## How can I get more maker tokens?

We have `q_score = sum_q_min^0.3 * maker_fee^0.7 * uptime^5`

, where `sum_q_min`

represents the sum `Q_MIN(N)`

across all minutes, `maker_fee`

and `uptime`

have been introduced above. `q_score`

directly determines how many tokens you will get which is -- `q_score / sum(q_score, across all addresses) * total_maker_tokens`

, so you can try to increase any of these three values to get better `q_score`

subsequently getting more tokens.

Last updated