Skip to content

Register and maintain your custodial wallets

Keep your real wallet inventory current in Production

Your production wallet inventory is the list of custodial addresses your VASP controls, especially addresses used to receive customer deposits. Register and confirm these wallets in Production before handling live incoming transfers, and keep the list up to date as addresses are added or retired.

CryptoSwift uses this inventory to help match incoming Travel Rule messages to your VASP. Confirming a destination wallet also allows incoming participant data to be shown. Eligible registered and confirmed wallets can be used for automatic incoming transaction detection when that option is enabled.

This is your own wallet inventory. It is separate from a customer's self-hosted wallet: use wallet verification when your policy requires proof of customer control, and KYW when you want help classifying a wallet involved in a transfer.

Maintain the production inventory

  1. Sign in to the Production Client Dashboard and open My Wallets, or use the production Wallets API.
  2. Add the custodial addresses your VASP controls, with the correct blockchain and asset information. The Wallets API supports bulk and CSV upload for larger inventories; follow the API reference for the accepted format.
  3. Confirm ownership of the wallets and check that they show as confirmed in My Wallets or the API response.
  4. Add newly assigned deposit addresses and update or remove addresses your VASP no longer controls. Make inventory updates part of your normal deposit-address provisioning process.

For an individual incoming wallet that still needs confirmation, follow Confirming a wallet to access PII.

Upload wallets from CSV

Send a UTF-8 CSV as the file field of a multipart request to POST /wallets/upload-csv.

address,asset,blockchain,metadata
0x32Be343B94f860124dC4fEe278FDCBD38C102D88,ETH,Ethereum,customer-deposits
bc1qexampleaddress,BTC,Bitcoin,treasury
0x9876example,*,Ethereum,all-assets

address, asset, and blockchain are required headers; metadata is optional. Use * as the asset when the address should match every asset on that blockchain. Files can contain at most 50,000 wallet rows and must not exceed 15 MB.

curl --request POST 'https://api-dev.cryptoswift.eu/wallets/upload-csv' \
  --header "X-Api-Key: $API_KEY" \
  --form 'file=@wallets.csv;type=text/csv'

The response reports created and an errors array. Duplicate rows in the file are errors; wallets that already exist are skipped and summarized. At most 100 row-level errors are returned, followed by a count of any omitted errors. Review the response before treating the import as complete.

Use a small test inventory in the Sandbox

Sandbox and Production have separate data. Use test wallets in the Sandbox to check incoming matching, confirmation, webhooks, and PII visibility. You can add a few real wallets your VASP controls if a specific test calls for them, but you do not need to copy your full production inventory into the Sandbox.

For an incoming Sandbox simulation, add and confirm the test destination in the Sandbox Dashboard under My Wallets or through the Sandbox Wallets API. Then run the incoming test scenario and check that it reaches your account.

What this enables

ResultWhy the production inventory matters
Incoming Travel Rule message matchingA destination-wallet match helps CryptoSwift identify your VASP as the beneficiary.
Incoming PII visibilityParticipant PII is exposed when your VASP confirms the destination wallet.
Automatic incoming detectionThe optional monitoring feature uses eligible registered and confirmed custodial wallets.

Next steps