An MPToken entry tracks MPTs held by an account that is not the token issuer. You can create or delete an empty MPToken entry by sending an MPTokenAuthorize transaction. You can send and receive MPTs using a Payment transaction.
Requires the MPTokensV1 amendment. Loading...
{
"LedgerEntryType": "MPToken",
"Account": "rajgkBmMxmz161r8bWYH7CQAFZP5bA9oSG",
"MPTokenIssuanceID": "000004C463C52827307480341125DA0577DEFC38405B0E3E",
"Flags": 0,
"MPTAmount": "100000000",
"OwnerNode": "1"
}In addition to the common fields, MPToken entries have the following fields:
| Field Name | JSON Type | Internal Type | Required? | Description |
|---|---|---|---|---|
Account | String - Address | AccountID | Yes | The owner (holder) of these MPTs. |
AuditorEncryptedBalance | String | Blob | No | The holder's total confidential balance encrypted under the auditor's key for independent auditing. Only present if an auditor is configured. Requires the ConfidentialTransfer amendment. Loading... |
ConfidentialBalanceInbox | String | Blob | No | Encrypted inbox balance that receives incoming confidential transfers. Before it can be spent, the holder must merge it into their spending balance using the ConfidentialMPTMergeInbox transaction. Present when the holder has a confidential balance. Requires the ConfidentialTransfer amendment. Loading... |
ConfidentialBalanceSpending | String | Blob | No | Encrypted spending balance used to generate proofs for outgoing transactions. Present when the holder has a confidential balance. Requires the ConfidentialTransfer amendment. Loading... |
ConfidentialBalanceVersion | Number | UInt32 | No | Version number that increments each time the spending balance changes. This version is cryptographically bound to ZKPs in outgoing transactions to prevent replay attacks and ensure proof validity. If the version changes between proof generation and submission, the transaction will fail. Requires the ConfidentialTransfer amendment. Loading... |
HolderEncryptionKey | String | Blob | No | The holder's ElGamal public key for confidential balances. Present when the holder has a confidential balance. Requires the ConfidentialTransfer amendment. Loading... |
IssuerEncryptedBalance | String | Blob | No | Copy of the holder's total confidential balance encrypted for the issuer to audit supply. Present when the holder has a confidential balance. Requires the ConfidentialTransfer amendment. Loading... |
LockedAmount | String - Number | UInt64 | No | The amount of tokens currently locked up (for example, in escrow). Requires the TokenEscrow amendment. Loading... |
MPTAmount | String - Number | UInt64 | Yes | The amount of tokens currently held by the owner. The minimum is 0 and the maximum is 263-1. |
MPTokenIssuanceID | String - Hexadecimal | UInt192 | Yes | The MPTokenIssuance identifier. |
OwnerNode | String | UInt64 | Yes | A hint indicating which page of the owner directory links to this entry, in case the directory consists of multiple pages. |
PreviousTxnID | String - Hash | UInt256 | Yes | The identifying hash of the transaction that most recently modified this entry. |
PreviousTxnLgrSeq | Number | UInt32 | Yes | The sequence of the ledger that contains the transaction that most recently modified this object. |
MPToken entries can have the following flags combined in the Flags field:
| Flag Name | Flag Value | Description |
|---|---|---|
lsfMPTLocked | 0x00000001 | If enabled, indicates that the MPT owned by this account is currently locked and cannot be used in any XRP transactions other than sending value back to the issuer. |
lsfMPTAuthorized | 0x00000002 | (Only applicable for allow-listing) If set, indicates that the issuer has authorized the holder for the MPT. This flag can be set using a MPTokenAuthorize transaction; it can also be "un-set" using a MPTokenAuthorize transaction specifying the tfMPTUnauthorize flag. |
The ID of an MPToken entry is the SHA-512Half of the following values, concatenated in order:
- The
MPTokenspace key (0x0074). - The
MPTokenIssuanceIDfor the issuance being held. - The
AccountIDof the token holder.