Skip to content


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation


DSAuth-protected ERC20 token vault

A vault is useful any time you need to segregate token holdings into several distinct buckets, or when you want to set up a shared account, perhaps owned by a ds-multisig.

A DSMultiVault is able to hold any number of different ERC20 tokens.

A DSVault is bound to a single token. It is useful as a handle on the token that the system can pass around without also needing to transfer the tokens themselves, or passing a Multivault/Token pair.

Vaults are protected by ds-auth which means they support sophisticated access control out of the box.

Whoever owns or controls a DSVault can tell it to perform token operations, such as transferring X amount of token Y to account Z, or even(provided the vault has the necessary approval) transferring X amount of token Y from account W to account Z.

Anyone is free to make deposits to a vault by simply transferring tokens directly into it using the a transfer function. The owner of a vault can also ask the vault to perform the transfer.

Vaults are very staightforward to understand and think about, and can be a useful building block in many different kinds of applications.