Skip to navigation

Overview

Reusable mint and redeem paths, and how they settle in the sandbox.
← Switch to the Production API

This is the sandbox. It runs on testnets only. Never send real money or real tokens to an address or bank account the sandbox returns.

The sandbox is subject to the Beta Features section of our Terms of Use.

A route is a persistent path from a source currency to a destination account. It carries no amount. Creating one returns reusable settlement instructions, and every matching transfer settles on its own.

Supported pairs

RouteInstructionsSettles in the sandbox
usd → ausdFake wire instructionsWith a simulated wire.
ctk → ausdA mint address per chainYes, on testnet. See On-Chain Deposits.
ausd → ctkA redeem address per chainYes, on testnet.
ausd → usdA redeem address per chainYes, as a simulated payout. See Simulated Wires.

Any other pair returns 400 direction_unsupported.

Instructions

Deposit addresses start with 0xdead. No one holds their keys, so anything sent to one can never be returned. If the sandbox runs out of addresses, route creation returns 503 route_creation_unavailable. Retry shortly.

Wire instructions are always fake. They exist so you can build a fiat flow. Every sandbox wire instruction uses these details:

FieldValue
beneficiaryNameSANDBOX TEST ACCOUNT, NOT A REAL BENEFICIARY
bankNameSANDBOX TEST BANK, NOT A REAL BANK
accountNumber00000000
routingNumber000000000
swiftCodeSANDBOX0

Never send a real wire to them.

Deterministic IDs

Route IDs are deterministic. Creating a route that already exists returns 200 with the stored route instead of 201, so retries are safe.

The endpoints below create a route (POST /v0/routes), list routes (GET /v0/routes), and retrieve one (GET /v0/routes/{routeId}). The list takes fromCurrency, toCurrency, toChain, and toAccountId filters. See Filtering list endpoints.