Skip to content

ConfidentialMPTClawback

[Source]

Claw back a holder's entire confidential balance (inbox and spending), removing it from circulation.

Unlike a regular Clawback, confidential balances are encrypted, so the issuer must provide the plaintext total amount to claw back and a Zero-Knowledge Proof (ZKP) validating the amount.

Caution

Issuers should lock the MPT issuance for the holder before submitting this transaction to ensure state consistency during proof verification. See Confidential Clawback.

Requires the ConfidentialTransfer amendment. Loading...

Example ConfidentialMPTClawback JSON

{
  "TransactionType": "ConfidentialMPTClawback",
  "Account": "rDB2bV1SRJcJEvJjhi7H5NUxwRpF4o3Ain",
  "Holder": "rhdqgMJT8JwqqBJuYU7cAxD7CGX1DeqC7m",
  "MPTokenIssuanceID": "003CE81F85A1B66910DD3571C42D38A9F5A8EF78F3C8E2C0",
  "MPTAmount": "10000",
  "ZKProof": "E4A57C2D220860067BF61BE8DA18C4A920B90998C4B7D53C0EF0D1EB27D6E7DD51CDC8BA598F60C861C708C629930F8B91704CC9135AB22088C74FBCB888850A",
  "Fee": "10",
  "Sequence": 3991586
}
Query example transaction

ConfidentialMPTClawback Fields

In addition to the common fields, ConfidentialMPTClawback transactions use the following fields:

FieldJSON TypeInternal TypeRequired?Description
HolderStringAccountIDYesThe account from which funds are being clawed back.
MPTAmountStringUInt64YesThe plaintext total amount being removed.
MPTokenIssuanceIDStringUInt192YesThe unique identifier for the MPT issuance.
ZKProofStringBlobYesA 64-byte compact Clawback sigma proof that proves the issuer's on-ledger balance mirror (IssuerEncryptedBalance) decrypts to the plaintext total amount (MPTAmount) being clawed back.

Error Cases

Besides errors that can occur for all transactions, ConfidentialMPTClawback transactions can result in the following transaction result codes:

Error CodeDescription
tecBAD_PROOFThe Zero-Knowledge Proof verification failed. The proof does not show that the IssuerEncryptedBalance (the mirror balance) encrypts the plaintext MPTAmount.
tecINSUFFICIENT_FUNDSThe issuance's ConfidentialOutstandingAmount or total OutstandingAmount is less than the requested MPTAmount.
tecNO_PERMISSIONThe transaction lacks the required permissions. Common causes include:
- The issuance does not have the Can Clawback or Can Hold Confidential Balance flag enabled.
- The issuance is missing the IssuerEncryptionKey field.
- The holder's MPToken is missing the IssuerEncryptedBalance or HolderEncryptionKey field, meaning the holder never opted in to confidential transfers.
tecNO_TARGETThe Holder account does not exist.
tecOBJECT_NOT_FOUNDThe MPTokenIssuance or the holder's MPToken does not exist.
temBAD_AMOUNTThe MPTAmount is zero or exceeds the maximum allowable MPT amount.
temDISABLEDThe ConfidentialTransfer amendment is not enabled.
temMALFORMEDThe transaction is malformed. Common causes include:
- The Account is not the issuer of the MPTokenIssuanceID.
- The Account and the Holder are the same.
- The ZKProof length is not 64 bytes.

See Also