rFOX - shapeshift/rFOX GitHub Wiki

What is rFOX

rFOX is a novel staking mechanism ratified by FOX token holders in SCP-166. SCP-186 expanded it's scope including WETH<>FOX LP tokens on Arbitrum, sunset the LP program in January of 2026, and moved to USDC distribution in February of 2026. The contracts expect that any token will be fully ERC20 compliant and not a rebasing or fee on transfer type token, just single sided FOX staking and UNIv2 LP tokens are currently expected. Stakers in contract lock their staking Token.

Stakers then receive a percentage of the Shapeshift DAO's total revenue that is accumulated through affiliate fees during each epoch. The distribution of these rewards is handled off chain by the DAO multisig, distributed as USDC to the stakers wallet, and is not part of the rFOX contract. The rFOX contract is responsible for tracking the staked balances and an arbitrary unit of rewards that are due to each staker. These reward units (similar to points) allow for an easy way to calculate each participants starting balance and ending balance for each epoch. The delta between these two values represents the accumulated rewards for a user in a given epoch, and a multiplier can be applied to then translate that into a USDC amount for off chain distribution.

When a user chooses to unstake, they immediately stop earning rewards and enter into a cool-down period. Initially this is set at 28 days, but the contracts are intended allow for this to change. Users can choose to unstake any amount of their fully staked balance and the contract also supports multiple concurrent unstakes (potentially with differing cool down periods). After the cool down period has ended, the user is able to claim back their stakingToken.

The owner of these contracts is the Shapeshift DAO multisig and the contracts are intended to be upgradeable as determined by the DAO. Similarly, the owner has the ability to pause various features in the contract as a safeguard in the case something goes wrong.

FAQs

When are rewards distributed and how do I receive my rewards?

Distributions of rewards will occur on the 15th of each month for the preceding month. If the 15th falls on a weekend or holiday, the distribution will be completed the following business day. Users will not need to do anything to claim their rewards and then will be sent directly to the staking address designated by the user in the smart contract.

When does each epoch start and end?

Epochs align with calendar months starting on July 1st 2024. Each epoch will last for the entire calendar month ending at midnight UTC on the last day of the month.

How do I get my FOX back?

Users can unstake any amount of FOX they choose at any time. Each amount unstaked will take 28 days to then become re-claimable by the user.

Can FOX staked in rFOX still be used to vote?

Yes, the DAO intends to enable a snapshot strategy for the smart contract to enable voting power for users who stake their FOX

Can mainnet FOX be staked?

No, FOX needs to be bridged to Arbitrum prior to staking. This can be done in the Shapeshift UI. Please note that bridging FOX back to mainnet from Arbitrum through the native bridge takes 7 days.

How will rewards and accounting be verified?

At the end of each epoch, we will post a public record of the accounting to IPFS and link it on the forum for the community to validate before rewards are sent out. Users can verify these amounts by running the open source CLI tool included in this repo.