Author

Topic: My Bitcoin journey and a question about Bitcoin fee calculation (Read 268 times)

legendary
Activity: 2744
Merit: 3096
Top Crypto Casino
Yeah I know, segwit is still not widely accepted yet while it's founded since 2017 if I'm not mistaken, we're already on 2022 or 5 years and many services still doesn't want to enable segwit address.
Not really sure about this, but as far as I can see, most services (at least decent ones) support segwit. Those which still don't support it are not worth using in first place and it's better to avoid them.
Back in late 2017 - early 2018, many services refused to support segwit in an attempt to support the Bitcoin cash (BCH) fork as it offered lower fees. But, obviously, this didn't work and they had no other choice but to start supporting segwit.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
Well that's also one question that I forgot to ask, when I send a transaction I ended up paying to 2 outputs, the one is the address I want to send while the other is miner address.
To add what NeuroticFish said:

The one address is the receiving address (the one you want to send money to), and the other is your change. The mining fee is subtracted from your input(s), and doesn't take place in the transaction. For example, if you have an input of 0.1 BTC with two outputs of 0.8 BTC and 0.199 BTC, the deduction (0.001 BTC) is the mining fee*. This is how the protocol works; it's more efficient to imply the transaction fee than to bloat the UTXO set with another output.

*Just an example, 0.001 BTC is a very high fee.

Thanks for this guide, especially the transaction weight, but it seems really hard to understand and I have no idea why such data get multiplied by x1 and x4, but it seems interesting to read it.
After the activation of SegWit, transaction data started to being calculated in weight units. The key to understanding why non-witness data is 4 times more expensive than witness data, is the needed balance between the cost of spending an output and the cost of creating an output.
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
but what I don't understand is the block 741131 weight only 607 kB and the block isn't fully fill up like the block isn't completed yet. Or does this mean the miner has successfully mined the blocks which mean the transactions is already have at least 1 confirmation, but after all the transactions are confirmed 100% then the blocks will be filled up?

There are various reasons for a mined block to not be full.
One reason is when miners find blocks (almost) in the same; then one of the blocks will probably have no user transactions in it (only the block reward).
And the reason from your case is the the mempool has became empty and there were no more transactions to be included into the block (and yes, in the next 36 minutes transactions started piling up again).
The miners don't wait for transactions. They mine normally at an average of 6 blocks/hour.
And it doesn't matter how full the block is. If your transaction is included, it has the first confirmation. Every new block coming, no matter how full or empty it is, will increase your "confirmations" counter.

Well that's also one question that I forgot to ask, when I send a transaction I ended up paying to 2 outputs, the one is the address I want to send while the other is miner address. But if we want to calculate a fee on Bitcoin fee estimator, we can pick 1 input and 1 output, then the amount will come up and there's no error. However you said it's "usually", does this mean it's possible the transaction only have 1 input and 1 output?

You can have tens of inputs or only one, you can have tens of outputs or only one. So yes, 1 to 1 is also possible.
Also you've got it wrong. One output is not the miner's address, it's usually yours. The transaction fee is not sent to an address directly.

Let me detail it a little.
You always spend complete inputs. If the transaction fee + the amount sent to the other party is exactly the value of the input then you have 1 to 1. But this usually doesn't happen, hence the change (exactly like the change in a shop when you pay with a bigger banknote) returns to you. And the change is another output, that's why you usually end up with 1 to 2.
hero member
Activity: 910
Merit: 680
I find the graphics of https://mempool.space pretty useful.

You should add one extra output since usually your wallet receives the change. If you need more details, please ask.
Hey thanks for this awesome sites, I'm more understand after I see this graphics. Based on this I see the average of Bitcoin block is confirmed after around 10 minutes and the weight is around 1.3 MB to 1.6 MB, but what I don't understand is the block 741131 weight only 607 kB and the block isn't fully fill up like the block isn't completed yet. Or does this mean the miner has successfully mined the blocks which mean the transactions is already have at least 1 confirmation, but after all the transactions are confirmed 100% then the blocks will be filled up?



Well that's also one question that I forgot to ask, when I send a transaction I ended up paying to 2 outputs, the one is the address I want to send while the other is miner address. But if we want to calculate a fee on Bitcoin fee estimator, we can pick 1 input and 1 output, then the amount will come up and there's no error. However you said it's "usually", does this mean it's possible the transaction only have 1 input and 1 output?


Transaction weight: https://learnmeabitcoin.com/technical/transaction-weight

Hell, some don't even accept SegWit.  Roll Eyes
Thanks for this guide, especially the transaction weight, but it seems really hard to understand and I have no idea why such data get multiplied by x1 and x4, but it seems interesting to read it.

Yeah I know, segwit is still not widely accepted yet while it's founded since 2017 if I'm not mistaken, we're already on 2022 or 5 years and many services still doesn't want to enable segwit address.


If you are going to use Electrum fee estimator then I suggest using the Mempool mode instead of Static or ETA as it usually gives the most accurate estimation.
I have read in this article below, it's said both of Mempool and ETA (estimated time of arrival) calculate based on the market conditions, so doesn't this mean both Mempool and ETA are good option?

Just on Android, Electrum has over 500000+ downloads, I mean people that have downloaded it, that is just on Android.
I know 500.000+ is a big numbers, but Trust wallet have been downloaded for 10 Million+ I ever saw an ads about Trust wallet, but I never saw any ads about electrum, that's why the differences is really big and many people doesn't really pay attention about security.

Quote
@Plaguedeath, if you are not running full node, as https://mempool.space is good for beginners so does https://jochen-hoenicke.de/queue/#BTC,24h,weight good for advanced users.
I have saw this jochen-hoenicke.de have been mentioned in several thread if someone talking about Bitcoin fee, but honestly I don't understand what it is and how we can choose a correct transactions fee since it's calculated with the weight (probably because I'm not yet understand weight in Bitcoin). Based on the data I hover my pointer there's a transaction using 200+ sat/byte with 0.001 vMB and there's many transactions using 1 sat/byte with 3.473 vMB. If the graph never fall to 1 sat/byte, this mean any transactions with 1 sat/byte will never included in Bitcoin block and will comeback to the sender after 14 days?

sr. member
Activity: 854
Merit: 424
Playbet.io - Crypto Casino and Sportsbook
[GUIDE] How to Safely Download and Verify Electrum. Verify your wallet. Don't trust any link even on official website. Verify it with signature.

Plot your transaction in mempool. You can get calculation for your transaction size and you can choose relevant fee rate (cheap but good enough from tip of mempool) to use.
legendary
Activity: 1512
Merit: 4795
Leading Crypto Sports Betting & Casino Platform
Then after some research I found a wallet named "Electrum" honestly I don't have any idea about this wallet since it's not popular and looks like a plain-not professional wallet, but many people said it's a good wallet for beginners due to verifiable signature and open source.
Just on Android, Electrum has over 500000+ downloads, I mean people that have downloaded it, that is just on Android. There are scam apps on Playstore store, some people prefer to download directly from official site. Experienced people that are using bitcoin prefer the desktop version, there are still both desktop version for Windows and Linux. Experiened people prefer to download Electrum directly from Electrum official site, https://electrum.org. Many people are using it, but newbies are not exposed to the best wallets on sites or apps like Playstore that is full of close source and non recommendable wallets.

I am still surprised that most SPV bitcoin wallets do not have coin control, address freeze, replace-by-fee and many other features that you can see on Electrum and use for your own advantage.

If you are going to use Electrum fee estimator then I suggest using the Mempool mode instead of Static or ETA as it usually gives the most accurate estimation.
Regardless of the wallet someone is using, either with good estimation algorithm or not, it is still worthy of the very short time spent to first check mempool to know the perfect feerate to use. Sites like https://mempool.space can even indicate when new blocks are mined, what has really helped me countless numbers of times to check if the transaction I broadcasted has been included in a block.

@Plaguedeath, if you are not running full node, as https://mempool.space is good for beginners so does https://jochen-hoenicke.de/queue/#BTC,24h,weight good for advanced users.
hero member
Activity: 2366
Merit: 793
Bitcoin = Financial freedom
Damn that's pretty honest question and even I want to know few thing on those list more technically so I will read those replies and understand thing better than I know for now. Electrum is popular around bitcoin holders, its unfortunate that you didn't hear about it early anyway you can use the electrum to set the fee manually but sometimes electrum gives wrong estimate fees even recently the required fee was around 2-3sat/byte but it showed around 16 or something so I always use this site https://mempool.space/ before making any transaction so you will exactly know how much you need to pay.
legendary
Activity: 2744
Merit: 3096
Top Crypto Casino
I'm surprised this wallet have a feature to adjust the fees manually, the lowest is 1 sat/byte. But since I'm not really understand how to calculate the correct fee, I'm using the slow option which is very cheap than Trust wallet offer.
It's true that Electrum lets you customize the fee rate and this is one of the many advantages of using it. But you have to know that the speed of confirmation of your transaction doesn't depend on the wallet you are using but depends on the fee rate you set and the network status at that time. If the mempool was congested when you made that transaction (like it's right now) with the lowest fee-rate then your transaction could've remained stuck (unconfirmed) for many hours and even days.
If you are going to use Electrum fee estimator then I suggest using the Mempool mode instead of Static or ETA as it usually gives the most accurate estimation.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
The main problem is I failed to understand what is block, weight, size, mempool, and etc
Block: https://learnmeabitcoin.com/beginners/blocks
Transaction weight: https://learnmeabitcoin.com/technical/transaction-weight
Mempool (AKA "Memory Pool"): https://learnmeabitcoin.com/technical/memory-pool

I want to learn such thing because it will help me to know how long my Bitcoin will arrive with the accurate calculations.
If you want to calculate your fee, you can use Electrum's internal feature. At the moment, as you can see, 20-27 sat/vB have a medium to high priority. Alternatively, visit mempool.space.

Note that each mempool may be different to each node, and therefore a site might have a different fee estimation than another.

From what I understood is the more we have input and the more output we need to send, the more fees that we need to pay.
Exactly. That's because the fee is calculated based on the transaction size, not on the amounts transacted. The input consolidation, that you mentioned, means to make 1 output out of x inputs, so you can save money in fees later. Normally, you should consolidate when the mempool is nearly empty to get advantage of the low fees.

But since many services and casinos doesn't accept taproot address yet, so I'm use segwit address.
Hell, some don't even accept SegWit.  Roll Eyes
legendary
Activity: 3668
Merit: 6382
Looking for campaign manager? Contact icopress!
The main problem is I failed to understand what is block, weight, size, mempool, and etc, I want to learn such thing because it will help me to know how long my Bitcoin will arrive with the accurate calculations. So I will not wrong again when I want to send Bitcoin for exact time e.g. 6 hours, I will not wrong again to send to low or to high fees.

Block: Bitcoin uses a public ledger to "write down" all the transaction. The public ledger is made of "blocks". The blocks are mined by the miners. The blocks are the "things" that contain transactions. A transaction start getting confirmations from the moment it was included into a (mined) block. The more you pay (sat/vByte) for your transaction, the more appealing can it become for the miners to include your transaction and cash in the transaction fee you pay. This can be very helpful in the days "the network is busy".

Mempool is the "waiting room" for the transactions. From here the transactions are picked and included into mined blocks. It's important to know that every bitcoin node has its own mempool and while the nodes do exchange information, the mempools may not contain exactly the same information.

If you want to get some basic understanding on how the transactions get into blocks, I find the graphics of https://mempool.space pretty useful. You can also get a feeling too on what fee you could use in that moment.

Now, a transaction is sent to bitcoin nodes like a "letter". That "letter" tells how many inputs you're using and how many outputs you create. This gets trickier, it depends on how many times and how small amounts you've received into your wallet and to how many direction you send. You should add one extra output since usually your wallet receives the change. If you need more details, please ask. The point is that the "letter" may be longer or shorter depending on how many inputs and outputs it has to describe. And what matters for the miners is how much you pay for each character of that letter (let's say so), not how much you pay for the entire letter.
So you can end up paying 20$ to send 10$ of Bitcoin or you can end up paying 10 cents for sending out 1 million $ worth of Bitcoin.

TL;DR; you can look at https://mempool.space for getting a glimpse on how the things work and for seeing what transaction fee you should use in Electrum. Use RBF option in Electrum for the case something unexpected happens and the transaction takes too long for your linking (although transactions can get automatically back to you if not confirmed in 2 weeks)
hero member
Activity: 910
Merit: 680
I'm started my Bitcoin journey when I saw there's an online crypto casino ads popping out on my phone, since I'm a gambler and want to try the site I search about how to buy Bitcoin on google search. Then I see so many popular exchange that can be used to buy Bitcoin e.g. Binance, Coinbase, eToro etc. Then I choose Binance because it's claimed very secure and have an insurance aka SAFU. All went smooth and I can send my Bitcoin to the casino. then I gamble it.

Honestly I've leaving my Bitcoin on Binance for a long time, since I think at that time Binance is very secure, but after I saw an article talking about hacked exchange, I search about Binance and found it once got hacked on 2018. After that I learn to not leave my Bitcoin on Binance anymore and just hold on my own wallet. At that time I choose Trust wallet since there's many articles and users recommend it. During the registration I get the seed phrase of my address and I think, this is the difference between exchange (custodial) and wallet (non custodial). I feel it's safe and there wouldn't be any problem, but when I want to send my Bitcoin, this wallet charge ridiculous fee. The actual fee I paid to the miner only around 20% from the wallet charge and I feel like got cheated by this wallet.

Then after some research I found a wallet named "Electrum" honestly I don't have any idea about this wallet since it's not popular and looks like a plain-not professional wallet, but many people said it's a good wallet for beginners due to verifiable signature and open source. Then I installed and when I want to send my Bitcoin to casino, I'm surprised this wallet have a feature to adjust the fees manually, the lowest is 1 sat/byte. But since I'm not really understand how to calculate the correct fee, I'm using the slow option which is very cheap than Trust wallet offer.

But something weird happen to Binance few days ago when they disabled the Bitcoin on chain withdrawal, seems like they're messed up and not that trustworthy like their popularity. After that, I use decentralized exchanges e.g. Bisq to prevent from this kind issues, who knows centralized exchanges might add more terrible rules or update that we don't see yet right now.

I'm not yet understand about Bitcoin completely, but at least I know it works and how to use it safely, from my story above, I have learn:
1. Don't use any centralized exchanges instead use decentralized exchanges e.g. Bisq
2. Don't use any custodial, not verifiable, and closed source wallet instead use the non custodial wallet, verifiable signatures and open source wallet e.g. Electrum


Although Electrum do suggest a fee before I made a transaction and I think it's relatively cheap, but I read some users said Electrum and any other wallet sometime can miscalculate the correct Bitcoin fees since they calculate based on the previous day, not the current one. I have read some thread like this below, but I still not completely understand:
1. [Jun 2022] Mempool empty! Use this opportunity to Consolidate your small inputs!
2. How to calculate bitcoin transaction size and fees
3. How to calculate bitcoin segwit transaction fee and some other questions.

The main problem is I failed to understand what is block, weight, size, mempool, and etc, I want to learn such thing because it will help me to know how long my Bitcoin will arrive with the accurate calculations. So I will not wrong again when I want to send Bitcoin for exact time e.g. 6 hours, I will not wrong again to send to low or to high fees.

From what I understood is the more we have input and the more output we need to send, the more fees that we need to pay. Also the difference type of address Legacy Address (P2PKH), Pay to Script Hash (P2SH), Native SegWit (P2WPKH), and Taproot (P2TR) do have a factors to calculate the fees. From what I understand legacy address is the most highest fee, pay to script hash is the number 2, while segwit and taproot they're almost same offering cheaper fees. But since many services and casinos doesn't accept taproot address yet, so I'm use segwit address.

Thanks for reading my journey and my question Smiley
Jump to: