-
Notifications
You must be signed in to change notification settings - Fork 6.2k
Use TVL with 'doublecounted' instead of Pool2 for Super DCA #16022
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This test failure looks unrelated to this change. Let me know if there's something I need to do to resolve this CI check failure. |
The whitepaper link seems broken. Are there any docs? Can you explain what happens to user deposits? |
@waynebruce0x, apologies for the broken link. Thanks for taking the time to review this PR. Here's the excerpt from the whitepaper (link: https://github.com/Super-DCA-Tech/super-dca-whitepaper) about the "Super DCA Liquidity Network" below. I wrote it prior to v4 so the diagram shows v3, its the same architecture for v4 though. There's also the README from the Super DCA Hook contract repo: https://github.com/Super-DCA-Tech/super-dca-gauge. This README explains the functionality of the Super DCA Hook in more details. Users deposit to the network by creating a position in TOK-DCA pools that have the Super DCA Hook attached. Super DCA eliminates fees for DCA users and instead earns revenue by keeping the liquidity network spreads low; ie, keeping the exchange rate of USDC>>DCA>>ETH == the exchange rate of USDC>>ETH. LPs in the Super DCA liquidity network earn fees from "external trades," those not originating from the Super DCA Pool contracts (ie people not doing DCA). This is done by the hook using v4's dynamic fees features. Embedded AMM using a Uniswap Liquidity NetworkSuper DCA creates its own network of liquidity on Uniswap. It does this by pairing tokens with its own protocol token, the DCA token. Swaps between two tokens, like USDC to ETH, are routed through two Uniswap pools, USDC-DCA and DCA-ETH. The route through the protocol’s DCA token. The collection of DCA pools on Uniswap create a liquidity network for the protocol to use. Figure 3: Super DCA Liquidity Network, routes swaps through two pools, each pool is paired with the DCA token, pools take 0.05% fee so the net fee through the network is 0.1% The liquidity network is an open network that meets the description of the TWAMM describe by Paradigm. Mainly, it allows anyone to trade with the protocols liquidity network (i.e., embedded AMM) at any time, “just as if it were a normal AMM.” This is a necessary feature since it means that other traders will be incentivized to keep the various DCA pools inline with the global exchange rates. Arbitrage opportunities created as the price of tokens moves means that searchers will keep the liquidity pools' exchange rates inline with global exchange rates. |
Also this white paper excerpt shows how the Super DCA's long term investors (ie Super DCA users) interact with the liquidity network through the Super DCA Pool contracts. Those contracts are found in this repo: https://github.com/Super-DCA-Tech/super-dca-contracts Pool MechanicsSuper DCA uses Superfluid, Uniswap, and Gelato in combination to create a TWAMM. The details of these are shown in the Figure below. Users stream tokens into the Super DCA Pool. The tokens accumulate in an internal swap buffer. Once enough tokens have accumulated in this buffer such that a fraction (e.g., 1%) can be used to pay for the execution of the swap, either Gelato or a Staked User will trigger the swap. The remaining input token amount is then swapped using Uniswap. The swap itself routes through the Super DCA protocol token which means that DCA token stakers immediately realize the liquidity pool fees collected as part of the Uniswap protocols functionality. After the swap occurs, the output token (e.g., OP) lands back in the Super DCA Pool where it is distributed using Superfluid proportional to each users input amount. Figure 2: Users stream tokens into the Pool using Superfluid, Gelato or a staked user will trigger the swap once enough input tokens have accumulated such that a fraction will cover the gas cost plus a premium, input tokens are swapped through the protocol's token using two Uniswap pools, the output tokens are distributed back to users using Superfluid again. |
Thanks @waynebruce0x! I really appreciate you all at Defillama being so quick to get these adapters reviewed and integrated. |
Hi Team,
I misunderstood how TVL would be displayed when I selected
pool2
. I looked over other adapters using Uniswap V4 Hooks and found thisdoublecounted
module export and I think this is more appropriate.This adapter does NOT count the Super DCA Token in the TVL. It only counts actual tokens (USDC, WBTC, ETH, AAVE). I hope by excluding the DCA token, it will be acceptable to classify this as Super DCA's TVL, with
doublecounted
indicating Super DCA's TVL resides inside of Uniswap V4.I hope you will consider accepting this update from
pool2
totvl
so that the Super DCA TVL is displayed on the chart. I have details about the Super DCA Liquidity Network construction here: https://github.com/Super-DCA-Tech/superdca-liquidity-network?tab=readme-ov-file#how-its-used. Super DCA creates a network of liquidity within the Uniswap V4 protocol.Thank you,
Mike
Please enable "Allow edits by maintainers" while putting up the PR.
package-lock.json
file as part of your changes, we use lockfileVersion 2, and most use v1 and using that messes up our CIName (to be shown on DefiLlama):
Super DCA
Twitter Link:
https://x.com/super_dca
List of audit links if any:
Website Link:
https://superdca.org
Logo (High resolution, will be shown with rounded borders):
Already shared.
Current TVL:
Treasury Addresses (if the protocol has treasury)
NA
Chain:
Base, Optimism
Coingecko ID (so your TVL can appear on Coingecko, leave empty if not listed): (https://api.coingecko.com/api/v3/coins/list)
NA
Coinmarketcap ID (so your TVL can appear on Coinmarketcap, leave empty if not listed): (https://api.coinmarketcap.com/data-api/v3/map/all?listing_status=active,inactive,untracked&start=1&limit=10000)
NA
Short Description (to be shown on DefiLlama):
Already shared.
Token address and ticker if any:
DCA
Category (full list at https://defillama.com/categories) *Please choose only one:
DCA Tools
Oracle Provider(s): Specify the oracle(s) used (e.g., Chainlink, Band, API3, TWAP, etc.):
Implementation Details: Briefly describe how the oracle is integrated into your project:
Documentation/Proof: Provide links to documentation or any other resources that verify the oracle's usage:
forkedFrom (Does your project originate from another project):
methodology (what is being counted as tvl, how is tvl being calculated):
Already shared.
Github org/user (Optional, if your code is open source, we can track activity):
Super-DCA-Tech