# User Hydro Balances and the Allowance Structure

The Snowflake smart contract maintains a balance of HYDRO tokens for all user `EINs`. We can consider this balance as HYDRO deposited into a user's Snowflake. Once deposited into a user's Snowflake, HYDRO can become accessible to Snowflake DApps with the user's permission. Users provide this permission by setting "Allowances" for the DApp. A set allowance grants the DApp shared autonomy over the user's Snowflake Balance up to the amount set by the user. DApps should be sufficiently audited to enable management of this Allowance in a trusted fashion.&#x20;

While DApps using the Allowance structure are by definition "Resolvers" for an `EIN`, not all resolvers will need to use the Allowance structure. Only DApps that want to include identity-driven token-transfer functionality will need Allowance-management functions.&#x20;
