The XLS-20 standard for NFTs has a preliminary implementation that can be used in test networks, but is not yet available as an amendment to the XRP Ledger protocol. An amendment may be included in a future XRP Ledger release.

The NFTokenCancelOffer transaction can be used to cancel existing token offers created using NFTokenCreateOffer.

Example NFTokenCancelOffer JSON

    "TransactionType": "NFTokenCancelOffer",
    "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
    "TokenIDs": "000100001E962F495F07A990F4ED55ACCFEEF365DBAA76B6A048C0A200000007"


An existing offer, represented by an NFTokenOffer object, can be cancelled by:

  • The account that originally created the NFTokenOffer.
  • The account in the Destination field of the NFTokenOffer, if one is present.
  • The issuer of the token identified by the TokenUID field in the NFTokenOffer object, if the token has the lsfIssuerCanCancelOffers flag set.
  • Any account, if the NFTokenOffer specifies an expiration time and the close time of the parent ledger in which the NFTokenCancelOffer is included is greater than the expiration time.

This transaction removes the listed NFTokenOffer object from the ledger, if present, and adjusts the reserve requirements accordingly. It is not an error if the NFTokenOffer cannot be found: if that is the case, the transaction should complete successfully.

NFTokenCancelOffer Fields

In addition to the common fields, a NFTokenCancelOffer transaction uses the following fields:

Field JSON Type Internal Type Description
TransactionType String UInt16 NFTokenCancelOffer transaction type. The integer identifier is 28.
TokenIDs Array VECTOR256 An array of TokenID objects, each identifying the NFTokenOffer object that should be cancelled by this transaction. It is an error if an entry in this list points to an object that is not an NFTokenOffer object. It is not an error if an entry in this list points to an object that does not exist.