Skip to content

Import

[Source]

(Added by the [Import amendment][].)

{
"TransactionType": "Import",
"Sequence": 0,
"Fee": "0",
"Account": "rUn84CUYbNjRoTQ6mSW7BVJPSVJNLb1QLo",
"Blob" : "DEADBEEF"
}
FieldJSON TypeInternal TypeDescription
BlobStringBlobHex value representing an XPOP
IssuerStringAccountID(Optional) Address that can be used inside the Hook.
  • If the account is Non Activated then the Sequence must be 0 and the Fee must also be 0
  • If the account is Activated then the Sequence and the Fee are calculated using the standard method.
  • If the Issuer field is present then the Fee must be calculated using the standard method.
  • An Export callback without its matching ExportLatch returns telEXPORT_LATCH_REQUIRED before consensus, fee or sequence consumption, and Hook execution.

An inner XPOP transaction with TicketSequence selects the Export callback path. On that path, the canonical final xahau/export Memo is mandatory, and its source Export transaction hash W identifies an ExportLatch keyed by (Account, W). An inner transaction that uses Sequence instead follows the burn-to-mint path; adding an Export Memo does not change that discriminator.

Import projects the release-stamped target transaction back to its canonical identity form and verifies the latch’s normalized intent digest. Different destination-valid signer subsets for the same intent can therefore complete the callback even though they have different target transaction IDs. Import still verifies the XPOP, validator-list freshness, and target-ledger finality before Hooks run.

The signature witness is not a prerequisite for callback execution. An assembler can use the post-validation signature stream and return XPOP before the on-ledger witness appears. In that order, Import records XPOP arrival on the latch; the later witness erases the latch and releases its reserve. If the witness arrived first, Import is the second fact and performs the erase.

Stopping Export publication retains callback readiness. Explicitly erasing the latch with tfExportEraseLatch forfeits it, so a later callback returns telEXPORT_LATCH_REQUIRED. Neither operation revokes signatures already published.

It is recommended that if you use a SignerList or RegularKey to sign your transactions that you key your accounts FIRST before attempting to B2M XAH .

  • If the inner (xpop) transaction is AccountSet the mainet existing flags will be transfered to the new network.
  • If the inner (xpop) transaction is SetRegularKey with the RegularKey field omitted or empty, and a signers list does not exist for the account then the lsfDisableMaster flag will be set on the account.
  • If the inner (xpop) transaction is SetRegularKey then the lsfPasswordSpent flag will be set on the account.
  • TicketSequence is not available on Import

For issuers, there are additional steps to follow before their asset holders can import transactions.

Firstly, issuers need to install a hook. There are two options for this: B2MNFToken or B2MPayment.

A NFTokenBurn transaction on mainnet will result in a URITokenMint transaction on the network.

c hook: https://example.com

A Payment transaction on mainnet to the Issuer will result in a Payment transaction from the Issuer on the network.

c hook: https://example.com

Please note that the process of importing for the issuer involves specific transaction types and requires careful configuration. Always ensure that the hooks are correctly set up and that the transactions are valid for the intended operations.