Skip to content

Improving Data Quality

Introduction

You can improve Travel Rule message delivery rates by providing accurate, complete information, especially additional context whenever you have it. Travel Rule routing still depends on wallet address databases, which remain incomplete until 100% of VASPs implement the Travel Rule for all transactions and all networks interconnect. Until then, well-structured payloads are the fastest way to avoid delays.

If you want to see how CryptoSwift routes outgoing messages step by step, review the outgoing transactions overview before diving into the data tactics below.

Wallet type

For outgoing Travel Rule messages, one of the most valuable data points for improving delivery rates (and avoiding unnecessary delivery attempts) is the wallet type.

  • If the wallet is managed by a VASP (CUSTODIAL), we must deliver the Travel Rule message to the beneficiary VASP.
  • If it's a self-hosted wallet (NON_CUSTODIAL), there is no VASP behind the address, so no message needs to be sent.

When you indicate the wallet type as NON_CUSTODIAL, we can automatically mark the message as confirmed in our system, saving time and reducing noise.

To specify the wallet type, include the following when making the Create Transaction API call:

...
"blockchainInfo": {
  ...
  "destinationType": "NON_CUSTODIAL"
}
...

Providing this data is essential because it's not possible to determine whether a wallet is custodial or non-custodial based solely on the address. Without this information, many self-hosted wallet transactions may remain pending unnecessarily.

Need help verifying customer self-hosted wallets? Check out self-hosted wallet verification.

Beneficiary VASP name

Another important data point is the beneficiary VASP name, which helps us better route and deliver Travel Rule messages.

There are two main ways you can gather and provide this information:

1. Entities endpoint

We offer a Find Entities endpoint to help identify VASPs:
Entities API

You can use this endpoint to implement an autocomplete feature in your transaction screen UI, allowing users to select the beneficiary VASP from a dropdown list. Once selected, include the VASP name when making the Create Transaction API call under the vaspInfo section:

...
"vaspInfo": {
  "beneficiaryVaspName": "SwiftExchange"
}
...

2. Blockchain analytics tools

If you're using blockchain analytics tools to perform AML screening, you may already receive VASP name suggestions for wallet addresses. Where available, please pass this data along in your outgoing Travel Rule messages. It significantly enhances message delivery success.

You can choose to:

  • Use the VASP name provided by your user
  • Override it with analytics tool data when available

Include the data in the same place when making the Create Transaction API call:

...
"vaspInfo": {
  "beneficiaryVaspName": "SwiftExchange"
}
...

Note: We do not rely solely on this data, and no PII is shared with the beneficiary VASP until they confirm ownership of the wallet address. This design helps prevent false positives.

The Blockchain

When creating an outgoing Travel Rule transaction, make sure to provide the correct blockchain name (under blockchainInfo). You can fetch the supported Blockchain list from the CryptoSwift API.

Next steps

See also