Last updated
Edit

SetFee

[Source]

A SetFee pseudo-transaction marks a change in transaction cost or reserve requirements as a result of Fee Voting.

Note
You cannot send a pseudo-transaction, but you may find one when processing ledgers.

Example SetFee JSON

This transaction has two formats, depending on whether the XRPFees amendment was enabled at the time:

{
    "Account": "rrrrrrrrrrrrrrrrrrrrrhoLvTp",
    "BaseFeeDrops": "10",
    "Fee": "0",
    "LedgerSequence": 92508417,
    "ReserveBaseDrops": "1000000",
    "ReserveIncrementDrops": "200000",
    "Sequence": 0,
    "SigningPubKey": "",
    "TransactionType": "SetFee",
    "date": 786494751,
    "ledger_index": 92508417
}

SetFee Fields

In addition to the common fields, SetFee pseudo-transactions use the following fields:

SetFee Fields

The fields of a SetFee pseudo-transaction depend on whether the XRPFees amendment was enabled at the time. In addition to the common fields, they can use the following:

FieldJSON TypeInternal TypeDescription
BaseFeeDropsStringAmountThe charge, in drops of XRP, for the reference transaction. (This is the transaction cost before scaling for load.)
ReserveBaseDropsStringAmountThe base reserve, in drops.
ReserveIncrementDropsStringAmountThe incremental reserve, in drops.
LedgerSequenceNumberUInt32(Omitted for some historical SetFee pseudo-transactions) The index of the ledger version where this pseudo-transaction appears. This distinguishes the pseudo-transaction from other occurrences of the same change.
Note

In the full history of the XRP Ledger, there is an exception to the rule that transaction hashes are unique. Two early SetFee pseudo-transactions had the exact same fields, resulting in the same hash, 1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B. The first of these transactions appears in ledger 3715073 and the second is in ledger 3721729. Newer SetFee pseudo-transactions include a LedgerSequence field so that they are guaranteed to be unique.