Skip to content

Clawback

[Source]

(Added by the [Clawback amendment][].)

Revoke tokens that were previously issued by your account. The Clawback feature is disabled by default. To use it, you must first submit an AccountSet transaction that enables Allow Trust Line Clawback. If your account has already issued tokens, you cannot enable Clawback afterward. You can only activate Allow Trust Line Clawback if your owner directory is completely empty — meaning before creating trust lines, offers, escrows, payment channels, checks, or signer lists. Once enabled, Clawback becomes a permanent capability of your account and cannot be undone.


{
"TransactionType": "Clawback",
"Account": "rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn",
"Amount": {
"currency": "USD",
"issuer": "rfkE1aSy9G8Upk4JssnwBxhEv5p4mn2KTy",
"value": "123.45"
}
}

A Clawback transaction includes:

FieldJSON TypeDescription
AmountCurrency AmountThe quantity to be revoked, as well as the counterparty from which it is taken. The value must not be zero. If greater than the holder’s balance, the entire balance is revoked. In the issuer sub-field, specify the holder’s address (not the issuer’s).

In Xahau, an IOU/Non-XAH token on a trust line always has an issuer, but trust lines are bidirectional and under certain settings both sides may act as issuers. In this transaction, the issuer’s address goes in the Account field, while the holder’s address goes in the issuer sub-field of Amount.


Besides the standard transaction errors, Clawback may fail with:

Error CodeDescription
temDISABLEDThe Clawback amendment is not enabled on Xahau.
temBAD_AMOUNTThe holder’s balance is zero. (It is not an error if the specified amount exceeds the holder’s balance — in that case, the full available balance is revoked). Also occurs if the counterparty in Amount is the same account submitting the transaction.
tecNO_LINENo trust line exists with the specified counterparty, or the trust line has a balance of zero.
tecNO_PERMISSIONHappens if you try to enable lsfAllowTrustLineClawback while lsfNoFreeze is already enabled, or vice versa.