Overview

Reusable mint and redeem paths, and how they settle.

A route is a persistent path from a source currency to a destination account — for example, an inbound USD wire that mints AUSD to your wallet, or AUSD redeemed to a USD payout. A route carries no amount: creating one returns reusable settlement instructions, and every inbound transfer that matches them settles independently to the route’s destination, for whatever amount actually arrives.

1

Create a route

POST /v0/routes with a from currency and a to destination account. No amount — a route is a reusable path, not a single transfer.

2

Get reusable instructions

The response includes settlement instructions: a wire memo for fiat sources, or a mint or redeem address per chain for on-chain sources.

3

Funds arrive

A sender follows the instructions. Every inbound transfer that matches them is detected automatically.

4

Settlement

Agora delivers the destination currency to to.accountId for the amount received. The instructions don’t expire, so this repeats for every matching transfer.

Instructions

Instructions are the actionable part of a route — how a sender actually moves funds. A route returns whichever shape fits its source:

  • Wire instruction (fiat source) — a memo plus beneficiary and bank details (accountNumber, bankName, routingNumber). The memo is the key: any wire received against that account carrying the memo settles to this route.
  • On-chain instruction (blockchain source) — one reusable mint or redeem address (depositAddress) per supported chain, each listing the supportedCurrencies it accepts.

Instructions don’t expire. Reuse them across many transfers; each matching transfer settles on its own.

Deterministic IDs

Route IDs are deterministic — the same canonical inputs always derive the same id — so creating a route is effectively idempotent. If a matching route already exists, the API returns 409 route_already_exists with the existing id in context.routeId rather than creating a duplicate.

Topologies

The pairing of from.currency, to.currency, and to.chain determines what a route does — mint from fiat (usd → ausd), mint from stablecoin (stablecoin → ausd), redeem to fiat (ausd → usd), or redeem to a token (ausd → usdc). The Create a Route endpoint below documents the supported topologies, the stablecoin wildcard, and the supported chains in full.

The endpoints below let you create a route (POST /v0/routes), list routes (GET /v0/routes), and retrieve one (GET /v0/routes/{routeId}). See the Error Reference for route-specific errors (route_not_found, route_already_exists, route_creation_unavailable).