Last updated
Edit

SetFee

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

{
    "Account": "rrrrrrrrrrrrrrrrrrrrrhoLvTp",
    "BaseFee": "000000000000000A",
    "Fee": "0",
    "ReferenceFeeUnits": 10,
    "ReserveBase": 20000000,
    "ReserveIncrement": 5000000,
    "Sequence": 0,
    "SigningPubKey": "",
    "TransactionType": "SetFee",
    "date": 439578860,
    "hash": "1C15FEA3E1D50F96B6598607FC773FF1F6E0125F30160144BE0C5CBC52F5151B",
    "ledger_index": 3721729,
}

SetFee Fields

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

FieldJSON TypeInternal TypeDescription
BaseFeeStringUInt64The charge, in drops of XRP, for the reference transaction, as hex. (This is the transaction cost before scaling for load.)
ReferenceFeeUnitsUnsigned IntegerUInt32The cost, in fee units, of the reference transaction
ReserveBaseUnsigned IntegerUInt32The base reserve, in drops
ReserveIncrementUnsigned IntegerUInt32The 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.

If the XRPFees amendment is enabled, SetFee pseudo-transactions use these fields instead:

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.