> For a complete index of Agora Finance documentation, fetch https://docs.agora.finance/llms.txt

# Overview

[← Switch to the Production API](/api)

> **Warning**
>
> **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](https://static.agora.finance/termsofuse.pdf).

A **route** is a persistent path from a source currency to a destination [account](/api/sandbox/endpoints/accounts/overview). It carries no amount. Creating one returns reusable settlement **instructions**, and every matching transfer settles on its own.

## Supported pairs

| Route        | Instructions               | Settles in the sandbox                                                                                   |
| ------------ | -------------------------- | -------------------------------------------------------------------------------------------------------- |
| `usd → ausd` | Fake wire instructions     | With a [simulated wire](/api/sandbox/simulated-wires).                                                   |
| `ctk → ausd` | A mint address per chain   | Yes, on testnet. See [On-Chain Deposits](/api/sandbox/on-chain-deposits).                                |
| `ausd → ctk` | A redeem address per chain | Yes, on testnet.                                                                                         |
| `ausd → usd` | A redeem address per chain | Yes, as a simulated payout. See [Simulated Wires](/api/sandbox/simulated-wires#redeem-to-simulated-usd). |

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:

| Field             | Value                                          |
| ----------------- | ---------------------------------------------- |
| `beneficiaryName` | `SANDBOX TEST ACCOUNT, NOT A REAL BENEFICIARY` |
| `bankName`        | `SANDBOX TEST BANK, NOT A REAL BANK`           |
| `accountNumber`   | `00000000`                                     |
| `routingNumber`   | `000000000`                                    |
| `swiftCode`       | `SANDBOX0`                                     |

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](/api/sandbox#filtering-list-endpoints).