Pular para o conteúdo

You can send MPTs to other authorized holders using either a transaction order or a transfer order.

Prerequisites

PrerequisiteAdditional information
An XRPL account with MPT balanceCheck balances
The destination address (must be authorized for the MPT)Provided by the recipient
The MPT must have lsfMPTCanTransfer flag setToken flags

Choose your approach

ApproachWhen to use
Transfer orderStandard approach when you have a validated ticker for the MPT
Transaction orderWhen you need full control over ledger-specific parameters

Send MPTs in the UI

To send an MPT with a transaction order:

  1. Go to Accounts and open the sending account.

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

  3. In Ledger, select the XRP Ledger network.

  4. In Operation, select Transfer token.

  5. In Destination, select the receiving account. Optionally, click Add destination tag.

  6. Select the token and the amount:

    • Listed asset — If the MPT's ticker is allowlisted, select the token and enter the amount. This is quicker than entering the issuance ID.
    • Unlisted asset — If the MPT's ticker isn't allowlisted, 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 send 1,000.00 tokens.
    The Transfer token 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 Payment with the type Multi-purpose token, the source and destination accounts, and the amount.

    The signing window for a Transfer token operation

The issuer uses the same operation to issue tokens to a holder. When the receiving account is in Ripple Custody, the tokens arrive in quarantine. For more information, see Receive MPTs.

Use the v0_CreateTransferOrder intent with the MPT ticker ID:

Payload example

{
  "payload": {
    "id": "{{intent_id}}",
    "accountId": "42e44ded-a268-4426-a0fe-7287b5d52a01",
    "tickerId": "c688abc8-e179-47c2-be37-ade6a73ee074",
    "outputs": [
      {
        "destination": {
          "address": "rE9jefR6roc2aB84LnVmjznw1j4FFyCtQe",
          "type": "Address"
        },
        "amount": "19000",
        "paysFee": null
      }
    ],
    "feeStrategy": "Medium",
    "maximumFee": null,
    "description": "MPT transfer",
    "customProperties": {},
    "type": "v0_CreateTransferOrder"
  }
}

For complete details on transfer orders, see Send assets.

Using transaction order

Use the v0_CreateTransactionOrder intent with the MPT currency type:

Payload example

{
  "payload": {
    "id": "{{intent_id}}",
    "ledgerId": "xrpl-testnet",
    "accountId": "42e44ded-a268-4426-a0fe-7287b5d52a01",
    "parameters": {
      "type": "XRPL",
      "feeStrategy": {
        "priority": "High",
        "type": "Priority"
      },
      "maximumFee": "1000000000000",
      "sourceTag": 100001,
      "memos": [],
      "operation": {
        "destination": {
          "address": "rE9jefR6roc2aB84LnVmjznw1j4FFyCtQe",
          "type": "Address"
        },
        "amount": "19000",
        "currency": {
          "issuanceId": "00C50FC691356D4BE196F42A0E75CB63E4311CBC154D8549",
          "type": "MultiPurposeToken"
        },
        "type": "Payment"
      }
    },
    "description": null,
    "customProperties": {},
    "type": "v0_CreateTransactionOrder"
  }
}

Currency object fields

FieldTypeDescription
typestringMust be MultiPurposeToken.
issuanceIdstringThe 192-bit MPT Issuance ID (hex encoded).