Alchemix Self-Repaying ENS (SRENS)

Alchemix Finance
5 min readApr 20, 2023

--

Ever lost your ENS? Now you never have to again.

Alchemix is proud to present its Self-Repaying ENS tool, SRENS. Anyone with an ETH position in Alchemix may authorize the tool to mint new loans as necessary to automatically renew one or more ENS domains of their choosing.

Before we get into the details, a huge thank you to wary (@wary__wary) for building this tool as part of the hackathon & Alchemix grants program. SRENS is the first of what we hope are many subscription services in DeFi built on Alchemix Self-Repaying loans. For more information on grants and building on top of Alchemix, please head here

Heartbreak

How do I use it?

You can access SRENS at either ens.alchemix.fi or through our utilities page at alchemix.fi/utilities

1. Ensure you have adequate ETH deposited in an Alchemix alETH position. Alchemix’s LTV ratio is 50%, so make sure the borrowable amount of alETH is sufficient to pay for at least a 1-year renewal on all your selected domains. Users should note that using SRENS to renew their ENS will cost 3–5x the gas as renewing it manually due to the prior loan and swap processes. This extra cost can be partially offset by the system SRENS uses to snipe low gas fees when renewing (see Considerations).

You can see the balances in your ‘Account’ section below.

Account balance

2. Search for any ENS address you want to renew. These could be your own, or someone else’s, and then click the toggle switch for each ENS to which you want to auto-renew. ENS domains associated with your connected wallet will automatically populate.

3. In order for the contract to do its thing, click the big green “Approve” button to give the SRENS contract the ability to mint alETH from your Alchemix position on your behalf.

Approve button

4. After the approval from step 3 is confirmed, click the big green “Subscribe” button to enable SRENS to Auto-renew your ENS so that your name never expires.

Auto-renew toggle

Your selected ENS names will now automatically renew annually as long as you have enough credit in your Alchemix position.

Considerations

Users can subscribe to the Self Repaying ENS renewal (SRENS) service for one or more ENS names. Users do not need to own the ENS names that are being renewed, but the names must be registered and non-expired or in their grace period (i.e., within 90 days after expiry). Gelato keepers tell the app to monitor the names and to renew them when possible. This is done by creating self-repaying ETH debt from the respective user’s Alchemix account. The app also tries to get a cheaper renewal price by monitoring the transaction cost 90 days before expiry.

A one-year renewal duration was chosen to balance the number and the cost of self-repaying ENS renewal transactions.

To mitigate renewal cost spikes (e.g., during a bull market) the SelfRepayingENS app (SRENS) limits the allowed tx.gasprice for a name depending on its expiry date:

  1. More than 90 days until expiry — SRENS does not attempt to renew the name.
  2. 90 Days or less until expiry — the maximum allowed tx.gasprice is slowly raised from 0 to 120 gwei following a math formula.
  3. After expiry — The gasprice limit is removed to renew it whatever the cost.

Strategies

1. Use your existing Alchemix position to renew.
The quickest way to get up and running is to use your existing Alchemix position to renew. This will be the most gas-efficient option as well, as you only have to manage one Alchemix position on one wallet. However, you will need to make sure you leave room to pay for your ENS domains if you are taking loans from this position for other purposes.

2. Create a new EOA.
If you prefer to isolate your SRENS renewal funds to make them easier to track, you can create a new wallet and Alchemix position to renew all your ENS domains. You can still take an initial loan from this wallet if you like, or just wait for loans to be drawn as your ENS domains begin to self-renew.

3. Whitelist a Multisig
A DAO with multiple ENSs for various deployers, contracts, etc, may wish to use SRENS. If a DAO wishes to deposit to Alchemix to use SRENS, they will need to request that their multisig be whitelisted by Alchemix. There are no requirements to be whitelisted other than providing the contract address of the multisig.

Some users may feel that they need to only deposit “just enough” ETH into Alchemix to renew their ENS domains so as not to “waste” funds. However, depositing extra funds “just to be safe” has very little opportunity cost, as all of your deposit will always be earning yield in Alchemix.

Future development

We’re planning to continue the development of SRENS from it’s current v1 state and we welcome any feedback, comments and ideas. Head over to our Discord or forum and let us know what features you’d like to see in v2!

Further reading & Links

The SRENS service is a smart contract written in Solidity that uses:

  • The Alchemix Protocol to manage users self-repaying ETH debt (i.e. alETH)
  • The Curve Protocol to exchange alETH and ETH
  • The Ethereum Name System protocol to manage the ENS names
  • Gelato to automate the smart contract actions

The source code is located here: https://github.com/The-Wary-One/self-repaying-ens

The Ethereum mainnet deployment is here: 0xef6274Eb92b55dA6D4BCE0b7D686f37064348aBB

A dashboard is located here — https://dune.com/wary/self-repaying-ens

--

--