The SQD Tokenomics 2.0 is designed for the phase that follows the initial "bootstrapping phase" when we subsidize the workers (the supply side) and make the usage essentially free (the demand side). Tokenomics 2.0 is based on the following principles:
- Allow the consumers (Portal runners) to pay in stables, reducing the exposure to $SQD volatility and velocity
- Make $SQD directly capture the protocol revenues and the network adoption (in particular, Portal registrations)
- Gradually reduce the amount of $SQD released for rewards so that:
- The workers are not overly underpaid if the $SQD price is low
- The workers are not overly overpaid if the $SQD price is high
- Early adopters have an assymmetric risk/reward by not selling $SQD (similar to early Bitcoin miners)
- Make $SQD deflationary long term by accumulating USDT (liquid) revenues and buying $SQD on the market
- Generate the revenues on-chain and grow the Treasury
- Allow $SQD holders to earn yield in USDT (or other assets)
- Reduce the $SQD dilution, and incentivize long-term holding
In order to achive the goals above, we introduce a new token, $rSQD used solely for paying out the rewards. $rSQD is going to be soft-pegged to USD via a stableswap mechanism, and the workers will receive both $SQD and $rSQD. The amount of $SQD distruted will be reduced, as the amount of $rSQD will be increased. The APY is controlled by yearlyRewardCapCoefficient, which will be gradually lowered to 25%, 15%, 10%, 5%, 3%, 1% respectively every 6 months.
In order the above mechanics to work the key pre-requisite is to make a stable and healthy market for USDT/$rSQD. The issuance of $rSQD should be at least 80% backed by the USDT liquidity to ensure that there's enough liquidity, and at the same time we should attract external liquidity providers to the market -- for that we can distribute $SQD as liquidity incentives for LPs.
$rSQD will be mintable, each new round of reward distribution will automatically mint the required amount of tokens. Note that it is completely independent from the depth of the available USDT/rSQD liquidity, and if it dries up $rSQD will (temprarily) de-peg. This should absorb short-term shocks but the goal is to build a market strong enough to sustain the peg long term. We also seed the initial liquidity and provide healthy and sustainable incentives for liquidity providers.
It's worth mentioning that proving $SQD liquidity incentives to LPs is going to be orders of magnitude cheaper compared to paying $SQD to the workers, as the LP incentive is normally a fraction of the volumes. That means that we can allocated say only 10% of the USDT/rSQD pool as $SQD incentives, wich means 10x less issuance compared to the direct rewards.
The demand for rUSD is additionaly boosted by the possibility to lock it into a staking contract and earn $SQD. This is additionally should drive back the peg should rUSD price go low, as one can buy it cheap, stake and get $SQD. The $SQD staking rate can be thought of a central bank base rate, set by the protocol.
The current naked "Stake SQD to get Network access" model has multiple drawbacks:
- It does not generate the revenue streams (in particular, no USDT)
- The portal registration requires a substantial initial investment (10000 SQD min) and a token purchase
- The portal registration is bound to Arbitrum (high friction for non-EVM users)
- The network adoption is not directly connected to $SQD appreciation
The drawbacks above can be addressed by the device we call "SQD Borrow Pool". It meets the following goals:
- For SQD holders, it gives an opportunity to earn yield in USDT (and other liquid assets supported by the pool)
- For current and potential Portal users it allows to register and use the portal without purchasing SQD and in a capital efficient way, similar to paying a subscription in stables
- Generates a stable income in liquid assets (USDT) for the SQD Treasury, in particular for sustaining the rUSD peg
- Enables integtations with centralized payment providers or payments in foreign chains (in a centralized or potentially decentralized manner through cross-chain bridging an messaging).
For the sake of simplicity we assume that the "liquid asset" henceforth is USDT, but it can be any other (like USDC or ETH)
The Borrow Pool is a smart contract that supports the following functions:
- Provide (deposit) SQD (for USDT yield)
- Pay in USDT to register and use a Portal. One provides the desired request per second (rps), the subscription period and the payment in USDT.
- Terminate the subscription and withdraw the remaining USDT. The termination transaction can be made as a public method with a small fee attached to it, so that anyone can call it to receive the fee (it's a standard trick to "automate" transactions on chain)
- Withdraw the accrued USDT yield (distributed pro-rata to SQD depositors), paid from the fees collected from the USDT payments
For example this is how a centralized service (eg SQD Cloud) for registering Portals may look like:
- Accept credit card payments from the users
- Keep USDT on Arbitrum
- Whenever a user requests a Portal registration, collect the subscription fee, and initiate the registration on-chain
- Terminate and withdraw whenever the user subscription ends
SQD Treasury will be the first provider for the pool, and initiall we will make a cap on how much SQD can be provided.
Isn't it the same as UST-Luna scheme?
They say that a 5% shortage on the supply side rises the price 5x. How much would 20% shortage affect the price? I assume, most worker operators don't care about the tokens and want to convert them to USDT asap. But the lack of USDT collateral will mean that only "the fastest" operators will get paid, and the others will be left with some tokens waiting that some LP will come and donate their money to get $SQD rewards. But I think it just delegates the part of the stress on the $rSQD/USDT to $SQD/USDT.
On the scheme it says
Do you mean "rSQD/USDT < 0.8"? Who is the actor performing that and where do they get USDT?
Why isn't it enough to run the SQD borrow pool without the first part with a new token?
With the current approach there is a "value" of the SQD token — it's something you need to have to be able to run queries over the network. With the proposed approach I don't see the value of either SQD nor rSQD