Skip to content

Clawback MPT tokens

Recover tokens from a holder's account.

How clawback works

Clawback allows the issuer to forcibly recover tokens from a holder without their consent. This is useful for regulatory compliance, fraud recovery, or asset recall scenarios.

Clawback requires lsfMPTCanClawback to be set during issuance. This flag cannot be added after the MPT is created.

Prerequisites

  • You are the issuer of the MPT
  • The MPT has lsfMPTCanClawback enabled
  • The holder has tokens to claw back

Claw back tokens in the UI

To claw back tokens from a holder:

  1. Go to Accounts and open the issuer account.

  2. Click Create order and select Ledger-specific operations.

  3. In Ledger, select the XRP Ledger network.

  4. In Operation, select Clawback. A warning confirms that the action can't be reversed and is meant for regulatory compliance or to correct unauthorized transfers.

  5. In Asset holder, select the holder's account.

  6. Select the token and the amount:

    • Listed asset — Select the token and enter the amount.
    • Unlisted asset — In Type, select Multi-purpose token (MPT). Then enter the Token issuance ID and the Amount in base units. For example, with an asset scale of 2, enter 100000 to claw back 1,000.00 tokens.
    The Clawback form with an unlisted MPT
  7. Select a Fee Strategy, then click Submit for approval and sign the operation with the app. The signing window shows the operation as Clawback with the holder, the amount in base units, and the issuance ID.

    The signing window for a Clawback operation

Claw back tokens with the API

To clawback tokens from a holder, submit a Clawback transaction:

{
  "payload": {
    "id": "{{intent_id}}",
    "accountId": "{{issuer_account_id}}",
    "parameters": {
      "type": "XRPL",
      "feeStrategy": {
        "priority": "Medium",
        "type": "Priority"
      },
      "operation": {
        "type": "Clawback",
        "currency": {
          "issuanceId": "000004C463C52827307480341125DA0577AFFC21D4B2D083",
          "type": "MultiPurposeToken"
        },
        "holder": {
          "address": "rHolderAddress...",
          "type": "Address"
        },
        "value": "500000"
      }
    },
    "customProperties": {},
    "type": "v0_CreateTransactionOrder"
  }
}

Parameters

FieldTypeRequiredDescription
currency.issuanceIdstringYesThe 192-bit MPT issuance ID.
currency.typestringYesMust be MultiPurposeToken.
holderobjectYesThe holder to claw back tokens from.
holder.typestringYesOne of: Account (internal account UUID), Address (XRPL address), or Endpoint (endpoint UUID).
holder.addressstringConditionalThe holder's XRPL address. Required when holder.type is Address.
holder.accountIdstringConditionalInternal account UUID. Required when holder.type is Account.
holder.endpointIdstringConditionalEndpoint UUID. Required when holder.type is Endpoint.
valuestringYesThe amount to claw back (raw integer value).

Response

A successful request returns the transaction order with status Pending. After confirmation:

  • The holder's balance decreases by the clawed back amount.
  • The total supply decreases accordingly.
  • The issuer does not receive the tokens — they are removed from circulation.

Clawback frozen tokens

Clawback works even when a holder's tokens are frozen. This allows issuers to recover tokens from non-compliant or sanctioned addresses.

Typical workflow:

  1. Freeze the holder's tokens to prevent transfers.
  2. Clawback the tokens.
  3. Optionally unfreeze the holder.