According to Monero source code there are two metrics for the transaction size:

There is Wallet RPC method returning them both estimate_tx_size_and_weight: https://github.com/monero-project/monero/blob/v0.17.2.0/src/wallet/wallet2.cpp#L14187 and https://github.com/monero-project/monero/blob/v0.17.2.0/src/wallet/wallet_rpc_server.cpp#L4317

I'm trying to understand how that metrics are related to real transaction size, for example:

What's wrong with the estimation or maybe I don't understand some logic behind?


In your 1st and 2nd examples, where the difference is tiny, you're talking about a few bytes difference between estimated and actual size. I'd expect to see this due to things like varints. Also, weight and size estimates for these match because the bulletproof clawback isn't being calculated/applied due to there only being 2 outputs on those txs.

In your 3rd example, you're seeing a big difference between estimated weight and real size because this tx has 16 outputs, hence you're seeing the bulletproof clawback come into play on the weight estimate. Also, you're seeing the several hundred bytes difference between real and estimate size because that tx has a tx_extra field which is 547 bytes in size and the estimation only uses the common case of tx_extra being 44 bytes in size.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.