# Resolver-Initiated Via Payments

In addition to facilitating direct HYDRO transfers between users, Snowflake facilitates indirect payments which undergo arbitrary logic prior to completion in the form of `via` contracts. `Via` contracts route a HYDRO token transfer through a smart contract before executing a function at an end destination. As with direct payments, this can occur between `EINs`, `addresses`, and Resolvers. Resolver-initiated `Via` functions can only be performed with Allowances set by an `EIN` for a Resolver.

Custom `via` contracts can be written using the Building a Via Contract section of this documentation.<br>
