Today's dapp is a simple but very useful utility called a "vault".

The purpose of a vault is also very simple: to store ERC20 tokens.

A vault is useful for example any time you need to segregate token

holdings into several distinct buckets, or when you want to set up a

shared account, maybe owned by a DSEasyMultisig (see Dapp-a-day 5).

Vaults are protected using DSAuth (see Dapp-a-day 4), so they can

either just be owned or can have more sophisticated access control.

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 (as long as the vault has the necessary ERC20 approval)

transferring X amont of token Y from account W to account Z.

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

Anyone is free to make deposits to a vault by simply transferring

tokens directly into it using the regular ERC20 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.

Take a look at the source code: https://github.com/nexusdev/ds-vault

If you’ve been paying attention, you’ll notice that there is something

strange about the source repository: there’s no contracts/ directory!

Why? Well, Dapple allows you to keep your source code wherever you

want (by configuring the sol_sources property in your dappfile ),

and so far the convention has always been to put it in contracts/ .

Nexus has decided to move away from this convention as part of a more

general policy to try to whenever possible avoid the term "contract".

Because "smart contracts" are neither smart nor contracts, and because

the term "contract" in particular already means something different,

we are taking this opportunity to move to the tried-and-true src/ .

If you think of a directory as a "vault" for source code, then you see

why it made sense to bring this up in the context of today's dapp. :-)