Outgoing transactions (overview)
Understand outgoing Travel Rule obligations and when to use pre- vs post-transaction workflows.
Outgoing Travel Rule obligations can be met either concurrently with settlement or before you broadcast funds. CryptoSwift supports both patterns so you can align with internal policies, customer experience goals, and counterparty expectations.
Use this page to frame the two approaches, then choose the detailed workflow that matches your risk posture: post-transaction or pre-transaction.
Due to the relatively low overall adaption of the Travel Rule and network fragmentation (that we are working on resolving!), our current recommendation is to implement the post-transaction flow for outgoing Travel Rule messages.
What you'll learn
- Why outgoing flows split into post-transaction and pre-transaction variants
- The policy considerations that influence each approach
- How to select the right pattern for each withdrawal type
Post-transaction vs pre-transaction: how to choose
Post-transaction flow (concurrent messaging)
You submit the Travel Rule payload at the same time you broadcast the on-chain transfer. This is the most common model because it minimises customer friction while still complying with Travel Rule obligations to send data "in advance of, or simultaneously with" the transfer.
Use post-transaction when:
- You prioritise fast withdrawals and can handle asynchronous counterparty responses.
- Counterparty acknowledgements are rare or delayed.
- You can manage exceptions through monitoring and follow-up.
Pre-transaction flow (confirmation before settlement)
You send the Travel Rule message first and wait for a counterparty response before releasing funds. This is best for higher-risk transfers, corridors with strict requirements, or counterparties who expect explicit approval.
Use pre-transaction when:
- Your policy requires confirmation before settlement for specific risk tiers.
- You want to avoid post-settlement rejections or disputes.
- You already have strong counterparty engagement or bilateral agreements.
Both models can coexist. Many teams default to post-transaction and switch to pre-transaction only for high-risk cases or jurisdictions with stricter expectations.
How CryptoSwift routes outgoing messages
Understanding the routing logic helps operations teams decide which data to collect before approving a withdrawal.
- Known tenant address - We first search the internal wallet registry. If the destination matches a CryptoSwift tenant wallet, the message is delivered instantly (
DELIVEREDin the Create Transaction response), and subsequentCONFIRMEDorREJECTEDupdates reach you via webhook or polling. - Partner network match - When the address is not in our registry, we query connected Travel Rule networks. A positive match delivers the message in the same way, triggering the usual status updates from the counterparty.
- Named beneficiary VASP - If partner networks return no results but you provide
vaspInfo.beneficiaryVaspName, we match or create the beneficiary entity and deliver the message immediately. Existing tenants - or newly invited VASPs once they claim access - send theirCONFIRMED/REJECTEDdecision through the same channels. - Analytics-assisted lookup - Without a beneficiary name we run blockchain analytics to identify the VASP. Matches loop back to step 3. If no provider recognises the address, the transaction stays
PENDINGuntil you add more context. In the sandbox environment these analytics calls are disabled, so unnamed addresses remainPENDINGby design.
For sandbox testing you can request a list of known addresses from us, or create a second tenant account, populate My wallets, and exchange Travel Rule messages between the two without broadcasting testnet transfers. The Travel Rule payload operates independently from on-chain settlement.
Outgoing payments & Travel Rule messages
The sequence below highlights the Travel Rule actions surrounding outgoing payments for CryptoSwift clients as the originator VASP.
