---
updatedAt: 2026-09-19T00:03:04.000Z
agentTools:
  projectIndex: https://docs.moderntreasury.com/payments/llms.txt
---

# Stablecoins

Use the same core Modern Treasury primitives for stablecoins that you use for traditional rails. We abstract away the underlying custody, liquidity, and blockchain infrastructure to offer this rail without the "crypto" headache.

| Send | Send Reversible | Pull | Pull Reversible |
| :--- | :-------------- | :--- | :-------------- |
| Yes  | No              | No   | N/A             |

## Supported stablecoins & blockchain networks

Check supported stablecoins and blockchain networks before you create an account or counterparty.

| Stablecoin           | Ethereum | Solana | Base | Arbitrum One | Tron        | Polygon PoS | Stellar |
| :------------------- | :------- | :----- | :--- | :----------- | :---------- | :---------- | :------ |
| Global Dollar (USDG) | Yes      | Yes    | -    | Yes          | -           | -           | -       |
| USD Coin (USDC)      | Yes      | Yes    | Yes  | Yes          | -           | Yes         | -       |
| PayPal USD (PYUSD)   | Yes      | Yes    | -    | Yes          | -           | -           | Yes     |
| USDT                 | Yes      | -      | -    | -            | Coming Soon | -           | -       |

USDT-to-USDC conversions are not supported.

## Getting started with stablecoin accounts

<Callout icon="📘" theme="info">
  ### Stablecoin Accounts

  You can open an [Internal Account](https://docs.moderntreasury.com/platform/reference/internal-account-object) for stablecoins. Its balances will be reported in stablecoin units (ie USDC). You may create [Payment Orders](https://docs.moderntreasury.com/platform/reference/payment-order-object) to originate payments out of your accounts, and [counterparties](https://docs.moderntreasury.com/platform/reference/counterparty-object) can send stablecoins to your account, using their wallet address.
</Callout>

Before you create a Payment Order, you must have a stablecoin-enabled Internal Account created. See below for a sample request to create a stablecoin Internal Account.

```curl Example Stablecoin Internal Account Creation Request
curl --request POST \
     -u ORGANIZATION_ID:API_KEY \
     --url https://app.moderntreasury.com/api/internal_accounts \
     -H 'content-type: application/json' \
     -d '{
       "name": "Aragorn Stablecoin Account",
       "party_name": "Aragorn",
       "currency": "USDC",
       "legal_entity_id": "5d95643d-1127-4a7c-9ef5-ad21a1d007c6",
       "requested_account_number_types": ["ethereum_address"]
     }'
```

Specify the address type to provision with `requested_account_number_types`, using the value for the network you want (for example `solana_address` for Solana). The account is created in `pending_activation`, and the provisioned address appears in `account_details` once the account activates via the `internal_account.activated` webhook.

## Orchestrating payments

Use orchestration when your product combines stablecoin and fiat steps in the same flow.

Common orchestration flows include:

* Funding USD accounts, converting funds to stablecoins, and sending them to external wallets
* Receiving stablecoins, converting them to USD, and paying out over fiat rails
* Moving money between traditional rails and blockchain rails with the same core primitives

<Cards>
  <Card title="Stablecoin On-ramp" href="https://docs.moderntreasury.com/payments/docs/stablecoin-on-ramp" icon="arrow-down">
    Fund USD accounts, convert funds to stablecoins, and send them to external wallets.
  </Card>

  <Card title="Stablecoin Off-ramp" href="https://docs.moderntreasury.com/payments/docs/stablecoin-off-ramp" icon="arrow-up">
    Receive stablecoins, convert them to USD, and pay out over fiat rails.
  </Card>
</Cards>