When to claim your fx!

Just coded some useless chart to know when it’s best to claim our FX rewards…
The graph takes the following hardcoded parameters : FX being staked on 2 different nodes (2 claims necessary but only redelegated on one of the 2 nodes), APY 30.63%.
Gain on the left indicates you how much % FX (compared to initial at stake) you’ll have over 2 years by just staking, claiming rewards and redelegating them.

For 50 kFX : claim approx. every 6.000 minutes (4.2 days)
For 20 kFX : claim approx. every 12.000 minutes (8.5 days)
For 10 kFX : claim approx. every 24.000 minutes (17 days)
For 5 kFX : claim approx. every 48.000 minutes (34 days)

If you claim too early, the fees obliterate your ratio.

Enjoy !!


And in case you want to play with the Python code (using PyCharm for example):

import sys
import matplotlib.pyplot as plt
import numpy as np

def apy_per_mn(apy):
    return apy / (365 * 24 * 60)

def compute(value, fee, apy_mn, claim_period, resulting_period_mn):
    _coefficient = 1 + (claim_period * apy_mn)
    while value > 0 and resulting_period_mn > 0:
        value = (_coefficient * value) - fee
        resulting_period_mn -= claim_period
    if value <= 0:
        return 0
    return value

def main():
    claim_period_size = 21 * 24 * 60
    apy_current = 30.63 / 100
    fee_withdraw_delegator_reward = 0.44388
    fee_delegate = 0.608796
    fee_total = 1 * fee_withdraw_delegator_reward + fee_delegate
    resulting_period_mn = 730 * 24 * 60

    values = np.array([5000, 10000, 20000, 50000])

    table = np.empty((5, claim_period_size - 1), dtype=float)

    i = 0
    apy_mn = apy_per_mn(apy_current)
    for val in values:
        results = []
        for x in range(1, claim_period_size):
            y = compute(val, fee_total, apy_mn, x, resulting_period_mn)
        table[i] = np.asarray(((results/val)-1)*100)
        i += 1

    # Initialise the figure and axes.
    fig, ax = plt.subplots(1, figsize=(8, 6))
    fig.suptitle('FunctionX staking results (based on time before claiming)', fontsize=15)

    x = np.arange(1, claim_period_size, 1)

    ax.plot(x, table[0], color="red", label="Initial: $5K FX")
    ax.plot(x, table[1], color="pink", label="Initial: $10K FX")
    ax.plot(x, table[2], color="green", label="Initial: $20K FX")
    ax.plot(x, table[3], color="blue", label="Initial: $50K FX")
    ax.set_xlabel('Period (in minutes) to claim reward')
    ax.set_ylabel('% gain')
    major_xticks = np.arange(0, claim_period_size, 2500)
    minor_xticks = np.arange(0, claim_period_size, 500)
    major_yticks = np.arange(80, 88, 0.5)

    ax.set_xticks(minor_xticks, minor=True)

    # Add a legend, and position it on the lower right (with no box)
    plt.legend(loc="lower right", title="Legend Title", frameon=False)


if __name__ == '__main__':

put your Pundix on Pundi x chain and delegate, the arrow you have drawn - the upper panel is for delegating fx on FX core, the lower Panel is for delegating PUNDIX on Pundi x chain, those 2 panels don’t work together, if you have put your Pundix on the FX core chain you will need to bridge them over to Pundi x chain to delegate them

1 Like

thanks for the information. I already delegate fx. I also have pundix to delegate for the test, but I only get current “purse”, no pundix.

what came to pundix in the delegation in the last 30 days would mean an APY of 0.045%. that can not be.

  1. Read Request for Comment: Pundi X Reward Token (Project name ‘PR’) | by Zac Cheah | Pundi X | Medium
  2. The staking rewards you will get when you stake PUNDIX on PUNDIX Chain are primarily $PURSE tokens.
  3. You get very little PUNDIX as staking rewards.

the PUNDIX your getting is like a fee readmittance not reward really, PUSRE is the reward for delegation if they could have done it in PUNDIX we wouldn’t need to have PURSE, PUNDIX being fully minted none can be created for rewards


Yes, that’s right. Thank you very much