I’m using Daedalus version 3.3 and have performed two send transactions – each – noting a transaction fee of one FULL ADA. However, I’ve read in the documentation and have confirmed snapshots from a friend’s transaction history screen that the fees should be about 0.17 ADA.
What could be going wrong?
What setting do I need to adjust or re-configure in Daedalus to engage transactions fees of 0.17 ADA vs. a full ADA coin?
There is no set constant fee for a transaction. Tx fees depend on the size of the tx (in bytes) and is totally unrelated to the ADA value being transferred.
The (current) cheapest ADA tx fee is 0.17 ADA. That will be for a tx that consumes one input and produces two outputs. However, if the amount you are sending needed more than one input to make up the transaction value, then it would be larger than the minimum and hence incurs larger fees.
It you go the summary tab in Daedalus, you can click on the transaction itself and then you will see the details of how many inputs were required, the number of outputs and the fee.
To understand this, you need to understand the basics of how cryptocurrencies work.
Cardano uses the same UTxO model as bitcoin. If you have ADA in your wallet, then the Daedalus wallet and the Cardano node have one or more UTxOs that belong to you.
Say you have have a regular wallet with three notes, a $5, a $10 and a $20, and you need to pay your friend $14. There are two ways to do this. You can give him the $5 and the $10 and he can give you $1 change, or you can give him the $20 and he gives you $6 change. You can consider the three notes as three UTxOs. To pay your friend $14 you can you can use two UTxOs (the $5 and the $10) or a single UTxO (the $20).
When building a Cardano transaction, using a single UTxO (eg the $20) will be more expensive that using multiple UTxOs (eg the $5 and the $10).
Check this support article in case what @erikd has already explained (just that the example there tells you how you can limit your fee to be 0.17 ADA, which is basically either empty entire wallet to exact 0 lovelaces OR leave 1.2 ADA in your wallet before moving funds
It may be that in your case specifically what happens is the following: currently you cannot send less than 1 ada. For reference, please read the “Using Ada For Administrative Operations” section of the Cardano developer guide:
“each address must hold a minimum ada value (min-ada-value, currently set at 1 ada)”
Meaning that when you send 1 having an amount of only 2 ada (it would be ~ 1.16 this is 1 transfer + ~ 0.16 transfer fee) an amount of ~ 0.84 ada would remain in your wallet. This amount it would be insufficient to stay in the wallet because (I repeat), the minimum amount for that is 1 ada.
Therefore, when sending 1 ada with an amount of only 2 ada, the wallet puts the rest as fee.
That fee model is ridiculous. When you go into a shop to buy something for $15 - the cashier does not vary the transaction fee if you make payment with a $100 bill or 2 $10 bills. This is as bad as Ethereum’s gas fees. Why doesn’t Cardano say: each transaction will cost 2 USA cents and adjust the amount of ADA required at the start of each day to be exactly 2 USA cents? Update the protocol to handle daily changing fees without any hard forks. See the pricing model for Stellar - much more sensible. Thanks.
Blockchain is aware only of itself, not of what the $ price per coin is assigned on Kraken or Binance. You would need to connect the blockchain to an oracle service that aggregates the real world prices and gives that input to the blockchain.
Alternatively the blockchain could pass a vote to lower gas fees charged per byte etc, but that takes time.
The transaction price is denominated in ADA. A fair transaction price when ADA is USD0.05 is very different from the fair transaction price when it is at USD1.30.
With the suggestion on this reply chain, I was able to get fractional transaction fees vs. a full ADA token being charged. Thank you for all the helpful suggestions.