Ethereum, also referred to as "ether" or "ETH," is the native digital asset of the ethereum network. Its primary purpose is to pay for transactions. In the ethereum ecosystem, though, "transactions" include not only sending funds from one address to another, but any update to the Ethereum Virtual Machine.
Any time a computer performs calculations, it requires computational effort. If you want to update something in the ethereum network, whether a simple update like sending a transaction that reduces the balance in your address and increases the balance in someone else's, or something more complex like replacing a key in a vault, the transaction has a cost, measured in units called "gas." The more complex the update, the more ETH you have to spend in gas!
Simple transactions
The simplest kind of transaction with the lowest gas fee is sending a transaction from one externally owned address (EOA) to another. The update subtracts the balance from one address and adds it to another one.
Transactions with contract addresses
If either the sending address or the receiving address is a contract address, the fee for a transaction will be higher, because the code in the contract needs to run in order for the transaction to complete. Running the contract code costs gas.
Even if you are just sending funds from an EOA to a contract address, you will notice a higher fee than if you were sending to another EOA, because the receiving address' contract code needs to run for the transaction to complete.
Contract update transactions
There are also fees associated with updating the contract at a contract address, since this also requires computational effort. Each type of update has a certain number of units of gas associated with it, which is the basis for the gas fee.
Base fee
All transactions include a "base fee," which fluctuates based on the level of network demand and how full the most recent blocks have been. Because this fee fluctuates, the amount cannot be known precisely at the moment a transaction is created. Your Casa app will calculate a maximum expected fee for the transaction, but your transaction may end up costing less. This means that even if you use the "Send Max" button, you may end up with a small balance, since any unused portion of the fee will be refunded.
In rare situations, like if you create a transaction and take hours or days to collect enough devices to add all the signatures, it could happen that the base fee may increase higher than the maximum fee predicted in your app, and your transaction may fail. If this happens, you will need to create a new transaction and try again.