When one creates a CDP, a proxy contract is deployed at the same time and tied to their Ethereum account. This proxy contract is technically the owner of a CDP, and each CDP owner has one of their own. You can think of it as a proxy contract, smart contract wallet, or a proxy wallet - people call it all sorts of things. In the case of Maker specifically, this contract is called a DSProxy.
The DSProxy was introduced by Maker in October 2018 together with their new CDP Portal which provided a massive improvement in user experience compared to the previously used Dai Portal. This was mostly because having a proxy wallet enabled wrapping multiple actions into a simple transaction. Prior to that, we had CDPs sitting directly on Ethereum accounts and had to manually do things step by step (and transaction by transaction) on the Dai Portal (e.g. creating a CDP by going ETH to WETH, WETH to PETH, PETH to Dai etc.). With the introduction of DSProxy all of this is done magically in the background in one transaction, where we only need to select the amount of collateral we’re locking in and the amount of Dai that we want generated. One transaction and the whole process is done.
This characteristic of DSProxy allowed us to create unique, multi step, but single transaction features in DeFi Saver such as Boost and Repay. Neither would be possible without it.
Another great thing about DSProxy is that it can provide privileges to other addresses besides yours to make certain actions on your behalf. When you enable DeFi Saver’s CDP Automation, you are actually providing our Monitoring smart contract with the rights to apply Boost or Repay to your CDP. You can find more information about it in our Automation introduction and the more recent Automation faux pas posts.
To cut a long story short, we really like DSProxy. It’s a short, but effective piece of code that allows us to build cool, advanced features for CDP owners. What’s more, it’s been audited many times over and heavily battle tested over the last year with no issues whatsoever.
However, not all CDPs (or proxies) are created equal.
Alternative proxy solutions
Although DSProxy is by far the most prevalent choice for CDP management today, it’s also not the only one. Firstly, there are users who decided against migrating to DSProxy when the new CDP Portal was introduced, presumably because of security concerns. Some of them stuck with the old interface to this day.
Secondly, there are teams who opted to create their own proxy wallets, such as InstaDapp and Argent. The main goal in this case, at least as we see it, is to create a more closed ecosystem that features a unique user experience.
Since the number of CDPs that still sit directly on Ethereum accounts keeps declining and Argent’s ecosystem is still fairly limited, we’ll focus on comparing DSProxy to InstaDapp’s proprietary proxy wallet, since about 10% of ETH currently collateralized in Maker has been locked using InstaDapp.
Pros and cons of different approaches
One of the main reasons why we decided to stick with using DSProxy for DeFi Saver was security. All of the smart contracts constituting the Maker protocol have passed a plethora of audits and so has DSProxy. But even more important, perhaps, is that it has proven to be reliable, effective and secure. Its record remains unstained despite over 1million ETH temptingly locked in Maker at basically any point throughout the last year. Our choice to use DSProxy compared to creating a proxy of our own also keeps the added risk to using DeFi Saver on top of Maker to a minimum. On the other hand, InstaDapp’s proxy wallet is slightly younger, has historically handled 10x less of ETH and there have been some issues brought up by a recent audit.
The other reason why we like DSProxy is because it’s a very open piece of code, in that it allows us to build advanced new features for users with little to no limitations. Features such as DeFi Saver’s Boost and Repay for CDP owners, but also Smart Savings, which uses the very same DSProxy contract. All of these would have been possible with a proprietary proxy contract of ours, too, however we didn’t see the need to complicate the user experience or force them away from other dashboards by removing compatibility with other dashboards, most importantly Maker’s own CDP Portal.
Contrary to that, CDP owners who are currently with InstaDapp are in a way limited to that user experience. Namely, the InstaDapp proxy wallet disables the ability to call any functions for the CDPs they hold except those allowed by the InstaDapp team in their smart contracts. While this can be considered a security measure, it unfortunately also makes it impossible for anyone with a CDP on an InstaDapp proxy wallet to use our Boost, Repay or Automation features.
For those who would like to try an alternative CDP management dashboard and all of the mentioned features, we have implemented a simple migration process that will move your CDP from the InstaDapp proxy to Maker’s standard DSProxy, allowing you to try everything DeFi Saver has to offer. Please note that this process can be reversed and you can later migrate your CDP back to an InstaDapp proxy if you decide to do so.
Migrating to a DSProxy
If you want to migrate your CDP and try out DeFi Saver, the process is really dirt simple:
- Log into our MakerDAO CDP dashboard with your wallet of choice
- Click the “Migrate” button in the notice that shows up on screen and confirm the transaction
- (A DSProxy will be deployed for your account in case you already don’t have one and your CDP will be migrated to it.)
- You’re good to go as soon as the transaction goes through!