[Tutorial] Adjusting a Vault's Debt Ceiling with the IAM

Hi Everyone,

As someone who regularly stares at MakerDAO vault parameters and frequently sees debt ceilings getting maxed, I wanted to learn how to use the DC IAM functions in order to automatically adjust the debt ceilings when possible. @hexonaut was kind enough to educate me on the process and thought it prudent to share what I learned. So if you see a vault type maxed out (or too low) follow this guide in order to raise it further.

Step 1 - Determine the hex code

Every vault type has a hexadecimal string associated with its name. We can determine what this is based on the name of the vault and then converting it into hex code.

Example

Let’s use ETH-A as an example. Head over to ASCII to Hex | Text to Hex Code Converter and input “ETH-A” into the blank field

To determine the code needed to enter into the IAM contract we add 0x in front to get 0x4554482d41. Lastly we need to ensure the code is 66 characters long so we need to add 54 zeroes for a final input of 0x4554482d41000000000000000000000000000000000000000000000000000000

We can repeat this step for any other vault name to get the code associated with that vault type.

Step 2 - Input code into the IAM contract

The contract can be found here - https://etherscan.io/address/0xc7bdd1f2b16447dcf3de045c4a039a60ec2f0ba3#writeContract

Connect to Web3 then head down to “2. exec”. Under “_ilk (bytes32)” is where you will enter the hex code for the vault you wish to adjust. Enter the corresponding code here and hit write!

Send the transaction and you’ve just adjusted the debt ceiling! Make sure that the ttl (12 hours as of now) has passed or the transaction will fail.

Bonus - Checking the last time the IAM was executed

In order to find out whether it has been more than 12 hours since the IAM was executed so you don’t waste gas, you can do the following.

In the etherscan contract go to the “events” tab and you will see a list of all transactions by date. Look for the latest transaction that includes the hex code (under “[topic1]”) of the Vault you would like to check and the corresponding date (far left). If its been more than 12 hours you’re good!

Thanks for participating in keeping the Maker system healthy!

Below is a list of all active IAM’s and their corresponding hex codes so you don’t have to figure it out for yourself.

ETH-A - 0x4554482d41000000000000000000000000000000000000000000000000000000

ETH-B - 0x4554482d42000000000000000000000000000000000000000000000000000000

WBTC-A - 0x574254432d410000000000000000000000000000000000000000000000000000

AAVE-A - 0x414156452d410000000000000000000000000000000000000000000000000000

COMP-A - 0x434f4d502d410000000000000000000000000000000000000000000000000000

LINK-A - 0x4c494e4b2d410000000000000000000000000000000000000000000000000000

UNI-A - 0x554e492d41000000000000000000000000000000000000000000000000000000

YFI-A - 0x5946492d41000000000000000000000000000000000000000000000000000000

Easy Mode

@BrianMcMakerDAO was kind of enough to create a contract to automatically adjust all available IAMs. All you have to do is “write” to the “1. bat”. Thanks Brian!

15 Likes

This is awesome! Can I steal this for the docs here?

Alternatively, you’re more than welcome to put together a PR yourself :slight_smile:

1 Like

Please do!

1 Like

wow thanks. Really love to see this kind of noob-friendly tutorial
As a Maker fans I know the instant access thing and understand that someone can just execute it, but never know how. It is obscure to less technical users like me

So to make sure it is 12 hours, do I just go to the “transactions” tab and see the last transaction is >12 hours? (currently is 7 hours 12 mins)

2 Likes

@Aaron_Bartsch

Your tutorial was so easy and instructive that even I could raise the ETH-A debt ceiling. Not cheap, but good clean fun!

1 Like

That’s a great question! I added a bonus section to explain/check when the last transaction was made. Thanks for the feedback!

2 Likes