As explained in the Overview, the FINN token contract automatically buys back tokens from token holders. Here we will discuss in detail the buyback process.
In Finn Exchange all trading fees and funding fees are accumulated on the FeeAccount, which is a Fantom address. After each trade a percentage of the trade value is transferred to the fee account. This happens in real-time straight on the smart contract (the fees are deposited to the FeeAccount during each trade).
Fee account is a Fantom account that collects the trading fees on the Fantom smart contract. To collect the fees from the Exchange, the fee account must request the withdrawal of funds (as would any user).
The FINN Token contract implements the Finn Exchange interface and is able to access the withdraw function on the exchange contract.
Only the token contract can withdraw the trading fees accumulated in the fee account.
To collect the fees, the Token Contract calls the Exchange contract and requests a withdrawal of the full balance from the fee account. Funds arrive into the Token Contract and are split into 2 shares:
Operational Share (60%)
Buyback Share (40%)
The operational share is immediately sent to the operational wallet defined in the token contract. The Buyback share is used to buy available tokens on the FINN token exchange.
On the Fantom blockchain, no transaction is possible without an external trigger, therefore we cannot schedule the buyback to happen periodically. However, this is not an issue, because:
We need the operational share (60%) to cover the running costs of the exchange. The only way to collect the operational share is by implicitly initiating a buyback.
The extractFeesFromFinn() method on the token contract is public and can be triggered by anyone, therefore if we don't trigger it, anyone can.
We will aim to trigger a buyback at least once a month.