Fuse Pool USDC Allocation
Q2. How are the tokens in the USDC Vault being allocated into the various Fuse Pools?
Introduction
Rari Capital is a suite of decentralized finance protocols on a mission to bridge the gap between technical and non-technical minds, in order to bring the next wave of mass users into this industry.
Product EARN
The Yield Aggregator system optimizes for the highest returns across a series of protocols within the Ethereum DeFi ecosystem. Our USDC and DAI pools are broadcast into stable-asset strategies, while the ETH pool maintains exposure to price volatility of Ethereum. These pools earn yield for users by lending and farming across various DeFi protocols such as Compound Finance, dYdX, KeeperDAO, mStable, yEarn, Aave, and Fuse Pools. We are actively expanding our strategy set to focus on more sustainable yields on and off of the blockchain. The pools are now playing an active role within Fuse by providing liquidity to borrowers, as well as letting pool depositors reap the benefits of high-yield opportunities.
Rari Capital USDC Pool
The Rari Capital USDC Pool allows users to deposit USDC or any ERC20 token and receive $RSPT in return. The $RSPT token tracks your interest-accruing position. All ERC20s will be swapped to USDC (meaning there is slippage for all deposits except USDC). As a holder of $RSPT, the Yield Aggregator protocol is working autonomously to deliver the highest yield on your principle.
Methodology
This analysis will explore how the tokens in the DAI Vault are allocated to different Fuse Pools since they are not an important part of the investment strategy compared to other yield platforms or investments.
Rari USDC Vault Dashboard shows some useful data for our analysis. On the lower left part, the most recent transactions are shown and on the lower right part, a transaction history is linked. By comparing a couple of transaction logs, I am abe to identify two addresses that are common for all transactions:
tx_to_address = '0x66f4856f1bbd1eb09e1c8d9d646f5a3a193da569'
as the USDC Vault Controllertx_from_address = '0x1e87ebbe2e02037dd4697d443c5507ff97959c99'
as the address sending the funds
The transactions found have different events. I will use the Pool Allocation events to identify the pools and the Transfer events to gather the amounts allocated as well as the type of transfer (deposit or withdrawal).
Results
Figure 3 shows the allocation by pool of the USDC Vault. Fuse-7 Pool is the biggest allocation by far followed by Compound and Fuse-18. Marginal amounts of Fuse-13, Fuse-14 and Fuse-11 are also allocated.
On May 25th, Fuse-7 Pool stands with 87% of the total USDC Vault, followed by Compound with 8.3% and Fuse-18 with 4,1%- The remaining pools are all below 0.5%.
Conclusion
A very interesting bounty that was a big challenge due to the intricacies of the smart contract controlling Rari's USDC Vault. Although the 3 main pools are correctly identified according to the Rari USDC Vault Dashboard, distribution is slighty different and quantities are off by a magnitude order. I couldn't find a way to get to the same results.
This bounty was updated on May 25th after being discussed originally 2 months before personally with user s.castellano as well as on Discord chat. Analysis and queries are my own.
Two CTE are created and joined following the structure below:
-
POOLS table queries the
ethereum.emitted_events
table for transactions with the two addresses identified above as contrains and additionallyevent_name = 'PoolAllocation'
. By searching the tx_id on etherscan I can map theevent_inputs:pool
variable to the pool name with a case. -
TRANSFERS table queries the
ethereum.emitted_events
table for transactions with the two addresses identified above as contrains and additionallyevent_name = 'Transfers'
. I will identify txs with theevent_inputs:from = '0x66f4856f1bbd1eb09e1c8d9d646f5a3a193da569'
as deposits to a Fuse Pool (+ amount) andevent_inputs:to = '0x66f4856f1bbd1eb09e1c8d9d646f5a3a193da569'
as withdrawals from a Fuse Pool (-amount). -
These two tables are joined to obtain the distribution of all transfers to and from the USDC Vault Controller by pool name.
Figure 5. shows the single transfers by amount with Deposits as positive amount and Withdrawals as negative. Aditionally, Figure 6. shows the pool allocations over time by type, with marker size as the allocation amount.
From these graphs, three big deposits of 10M to Fuse Pools 18, 6 and 7 on the same day can be identified. For Fuse-7, almost only deposits have been made while for the other two pools funded with 10M, the withdrawals have been depleting the big 10M deposit. Compound pool has received 2 deposits, making it the second biggest allocation while AAVE received one deposit that got withdrawn on the same day. The other Fuse pools shown are neglectable due to the small amounts.
Analysis by @KaskCEA powered by Flipside Crypto
Results Summary
- Three pools were heavily funded with 10M deposit on November 6th - Fuse-6, Fuse-7 and Fuse-18 Pools
- On January 30th and 31st, Fuse-6 and Fuse-18 pools were withdrawn (6.8M and 7.1M respectively) while Fuse-7 received deposits for 6.4M.
- Since then, the strategy of reallocating to Fuse-7 has continued, depleting Fuse-6 completing and leaving Fuse-18 with 1,4M allocation.
- Compound pools received 2 deposits amounting to 2.9M.
- Fuse-7 is the top allocation in the USDC-Vault with 30M.