neoburger / code

neoburger smart contracts
GNU General Public License v3.0
6 stars 4 forks source link

NeoBurger FAQ #2

Closed vang1ong7ang closed 2 years ago

dusmart commented 3 years ago

Why GAS unclaimed on account dashboard does not grow smoothly as time goes by?

The GAS is actually transferred twice before going into users' accounts. When you claim your unclaimed GAS reward, you're actually taking step two. The GAS you will get will be exactly the same as you saw in your account dashboard.

  1. The first step is from all NeoAgents to NeoBurger. (distribute GAS to bNEO holders)
  2. The second step is from NeoBurger to users. (claim the GAS you earned)

The first step is automatically performed by our bots from time to time. Users can also help claim them by calling sync and claim on agents. While considering about transaction fee, users should better not do this themselves. Only a little amount of GAS can stay in agents' accounts before bots automatically distribute them. You can see every agents' undistributed gas in dashboard.

The GAS unclaimed in your account grows immediately after these three things happen.

  1. the first step is done by our bots (the interval is usually less than one day)
  2. someone donates GAS to NeoBurger (all users will share the donate)
  3. someone withdraws NEO by burning bNEO (the withdraw fee will be distributed to other users)
dusmart commented 3 years ago

Why GAS reward per NEO per year in dashboard changes?

When votes change, our profits will change.

  1. The GAS reward is changing over time because others will change their vote target.
  2. Our operator (maybe a bot) will also redistribute the votes from time to time to earn more GAS.
dusmart commented 3 years ago

If someone mint bNEO by depositing NEO before the bots distribute NeoAgent's GAS, will we suffer a loss?

In short, we'll earn all the money without loss.

Our bots will distribute the GAS in time. Only a few GAS could stay in agents' accounts. If someone becomes a new bNEO holder before we distribute the GAS, he'll get a few more rewards indeed. But our NeoBurger can not be exploited even if he can choose the exact time.

If someone wants to earn the GAS by depositing NEO before we distribute the GAS and leaving immediately after we distribute the GAS, he must give a withdraw fee to other users when leaving. Our system's parameters make sure the amount he earned is less than the fee he spent.

Here comes the proof. Assume that we have X bNEO total supply now and y undistributed GAS in agents. Say our withdrawal fee is FEE. If the bad guy joined before GAS distribution and left right after distribution, the total GAS he can exploit is N / (X + N) * y - FEE * N * X / (X + N). Since our bot will always make that undistributed GAS is a little ( y < FEE * X ), the GAS he can exploit will always less than 0.