The app’s recommended fee is dynamic, based on the network’s recommended fee, and factoring the amount of bitcoin the user wants to send.
Since bitcoin transaction fees are a based on the size of the transaction in bytes of data, the primary fee calculation that needs to be made is to determine the fee per byte, usually expressed as satoshis per byte.
We start by querying several public bitcoin nodes and retrieving their estimated fee/byte for getting a confirmation. The nodes return estimated fee amounts based on the number of blocks for a confirmation. We record the amounts for confirmation in 3 through 200 blocks. Fees are higher for confirmation in 3 blocks vs 200 blocks with ranging fees in between.
Edge defaults to a “Optimal” fee setting which targets a confirmation between 5 to 30 blocks. The wallet chooses between the 5 through 30 block fee estimate based on the amount of bitcoin the user is trying to send. Higher amounts will send fees closer to the 5 block estimate, smaller amounts will send fees closer to the 30 block estimate. This is an attempt at lowering fees for smaller value transactions.
Edge also has two other presets available, "Low" and "High". The "Low" preset is recommended when confirmation time isn't important and you're willing to wait for your transaction to confirm. Edge aims for your low priority transactions to be confirmed within 200 blocks. The "High" preset aims to get your transaction confirmed within 3 blocks. You also have the option to define a "Custom" fee, in satoshis/byte, if you'd like.
Recommended fees change as network conditions change. A low fee one day may be enough to get a transaction confirmed quickly on another day when there aren't as many competing transactions in the network. Edge uses multiple sources to calculate a fair fee for the network conditions when you are sending your transaction.