LTC - How Fee Estimate Works

Litecoin (LTC) operates on a UTXO (Unspent Transaction Output) model, where the transaction fee is estimated based on two primary parameters:

  1. Approximate fee per kilobyte
  2. Transaction size

LTC Fee Estimate Formula

The Formula

Estimated Fee == "approximate fee per kilobyte" x "transaction size"

Step_1: Calculating the approximate fee per kilobyte

To estimate the fee for a LTC transaction, you can use the Tatum endpoint for LTC "fee estimate":

Example request:

curl --request GET \
     --url https://api.tatum.io/v3/blockchain/fee/LTC \
     --header 'accept: application/json' \
     --header 'x-api-key: {YOUR_API_KEY}'
//response:
{
    "fast": 13.597,
    "medium": 8.461,
    "slow": 4.577,
    "block": 2701104,
    "time": "2024-06-11T11:31:08.697675402Z",
    "weight": 1
}

There's also the option to make a RPC node request.

Example RPC request:

curl --location 'https://api.tatum.io/v3/blockchain/node/LTC/' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {YOUR_API_KEY}' \
--data '{
    "jsonrpc":"1.0",
    "id":"curltext",
    "method":"estimatesmartfee",
    "params":[2] // specifies the target confirmation time in blocks.
}'
//Response:
{
    "result": {
        "feerate": 0.00001,
        "blocks": 2
    },
    "error": null,
    "id": "curltext"
}

Step_2: Calculating the Transaction Size

Transaction Size (in bytes) = (Number of Inputs x 148) + (Number of Outputs x 34) + 10

  • Number of Inputs: The number of transaction inputs (unspent transaction outputs or UTXOs) that your transaction is spending.
  • Number of Outputs: The number of transaction outputs, including the recipient's address and any change addresses.
  • 10 bytes: A fixed overhead for the transaction header.

Let's break it down:

  • Number of Inputs x 148 bytes: Each input typically takes 148 bytes. This includes the previous transaction's reference (36 bytes) plus a scriptSig (typically 110 bytes) for unlocking the UTXO and some additional bytes for metadata.
  • Number of Outputs x 34 bytes: Each output typically takes 34 bytes. This includes 8 bytes for the amount in satoshis, 1 byte for the OP_RETURN code (if used), and 25 bytes for the recipient's public key or address.

Example LTC transaction

Parameters

  • Number of Inputs = 2
  • Number of Outputs = 2

Using the formula

  1. Transaction Size (in bytes) = (2 x 148) + (2 x 34) + 10
  2. Transaction Size (in bytes) = 296 + 68 + 10
  3. Transaction Size (in bytes) = 374 bytes

So, the transaction size in this example is 374 bytes.

Baseline feerate vs Estimate Fee by Tatum

There is a difference between the baseline fee rate (from RPC call) and the estimates from the Tatum endpoint.

Baseline Fee Rate

The baseline fee rate (0.00001 Litecoins per kilobyte) is a standard minimum rate often used as a reference. This represents a minimal fee that might be accepted by the network during very low traffic times, but it doesn't guarantee timely inclusion in a block, especially during high network congestion.

Estimated Fee (Tatum)

The fee estimates (fast, medium, slow) provided by the Tatum endpoint are dynamic and reflect the current network conditions.

  • Fast: This rate (13.597 Litecoins per byte or 0.013597 Litecoins per kilobyte) is for transactions that need to be confirmed quickly, often within the next block or two.
  • Medium: This rate (8.461 Litecoins per byte or 0.008461 Litecoins per kilobyte) balances cost and confirmation time, suitable for transactions that can wait a few blocks.
  • Slow: This rate (4.577 Litecoins per byte or 0.004577 Litecoins per kilobyte) is the lowest among the estimates and is used for transactions that are not time-sensitive, potentially taking longer to confirm.