Ondo

Ondo is a Non-US USDY Minting, Balance Tracking, and Redemption Workflow

Ondo is the platform through which eligible non-US users mint USDY with USDC, read the resulting wallet position, add funds, and redeem into USDC. The connected address completes eligibility onboarding and must appear in the OndoIDRegistry before an on-chain subscription or redemption. Each direction also needs an ERC-20 allowance because USDY_InstantManager pulls the input token with transferFrom. A wallet shows token quantity, while the on-chain price oracle supplies the USD reference value used to measure the position. This page follows that full lifecycle, including preconditions, decimal handling, network routes, routine additions, and final reconciliation.

In short: It is a tokenized real-world asset platform where eligible non-US users mint USDY with USDC, track wallet balances, add to positions, and redeem for USDC.

Minting USDY From an Approved Wallet

An eligible non-US user mints USDY by registering the exact calling wallet, approving USDC, and submitting a direct subscription through Ondo.

Complete Eligibility and Register the Caller

Identity and eligibility checks apply to the investor, while OndoIDRegistry applies to the blockchain address. An externally owned account or contract wallet must register the exact address calling USDY_InstantManager. Approval of one personal wallet does not automatically register a separate Safe account, treasury wallet, or integration contract.

Approve the Input

USDY_InstantManager uses the ERC-20 transferFrom mechanism, so USDC approval occurs before subscription. The allowance must equal or exceed depositAmount. With no existing allowance, the sequence contains two transactions: one approval and one subscription.

Submit the Subscription

The subscribe call accepts three parameters: depositToken, depositAmount, and minimumRwaReceived. USDC supplies 6-decimal units, while the minimum output uses USDY’s 18-decimal units. Direct primary issuance has no order-book slippage, so the documented minimum output of 0 is valid; an interface may still enter a protective nonzero value.

Eligibility Gates Before Funds Move

USDY minting and redemption remain limited to qualifying non-US persons whose identity, jurisdiction, and investor classification satisfy the issuer’s eligibility rules.

Regulation S governs the offering, and Rule 902 supplies the US-person definition used for this restriction. Location also matters: orders placed from the United States remain prohibited even when the wallet sits elsewhere. Some jurisdictions are wholly prohibited, while others require professional or qualified investor status. An entity also fails the ownership screen when prohibited persons directly or indirectly hold 50% or more of its beneficial ownership or control. Eligibility remains an account-level gate at mint and redemption, so a transferable token balance does not replace the issuer’s onboarding decision.


Registry, Allowance, and Pause Preconditions

Three independent preconditions control each direct USDY action: address registration, sufficient ERC-20 allowance, and an open manager operation.

The subscription and redemption sides expose two separate pause checks, subscribePaused and redeemPaused. A registered address still needs an accepted input or receiving token, an allowance covering the submitted amount, and an order inside configured minimum and rate-limit bounds. The manager evaluates those conditions in the transaction. A failed condition leaves the intended position change unapplied, while the earlier approval remains a separate on-chain state until its allowance is changed or consumed.


How Does a Wallet Show the Full USDY Position?

A wallet shows the complete USDY position only when token quantity and oracle reference price are read together on the same network.

Token Quantity

The ERC-20 balanceOf value supplies the accumulating USDY quantity. That count stays fixed after minting unless the address transfers, wraps, adds, or redeems tokens. Position value equals token quantity multiplied by the oracle price, divided by 10 18 . Reading quantity alone therefore misses yield embedded in the rising reference price.

Reference Value

USDYOracleWrapper provides a stable read point, while RWADynamicOracle calculates the price from configured time ranges. Each range contains three inputs: a start time, an end time, and a daily interest rate. getPrice returns one price value; getPriceData returns two values, price and block timestamp. A historical query before the first configured range returns 0, which distinguishes unavailable history from a valid positive reference price.

Adding USDC Without Losing Position History

Adding to USDY repeats the subscription path, while each receipt records a separate token quantity at that transaction’s oracle price.

A consolidated wallet balance combines every lot because all accumulating USDY units share one contract and reference-price mechanism on a given network. Cost records should remain lot-specific. Preserve the USDC amount sent, USDY amount received, transaction hash, block timestamp, and oracle price for each addition. These five fields separate a new contribution from value already accrued on earlier units. They also explain why the second mint receives a different token quantity for the same USDC input after the reference price changes. A block explorer confirms the raw transfers independently of the portfolio display.

The on-chain balance updates after the subscription confirms. Portfolio software must then refresh both the token balance and oracle value before reporting the enlarged position.


USDY and rUSDY Balance Accounting

USDY and rUSDY represent the same economic base through different wallet accounting, so their visible balances change in different places.

USDC uses 6 decimals, USDY uses 18 decimals, and oracle prices use 18 decimals with values rounded to 8 decimal places. One USDC therefore equals 1,000,000 base units, while one USDY equals 10 18 base units. Software must normalize both sides before calculating mint output, redemption value, or portfolio totals.

Accumulating USDY keeps the token count steady while its reference price rises. The rUSDY wrapper locks USDY and issues a rebasing representation whose accounting price remains $1; its wallet quantity adjusts when the business-day rebase runs. Adding USDY to an rUSDY position requires wrapping the new amount before balances share the same display model.


Network Paths for Minting and Redemption

USDY supports one instant-manager route and six assisted network routes, each with a distinct hard condition before funds move.

Sui, Aptos, Stellar, XRP Ledger, Noble, and Tempo each carry a $5000 minimum for assisted USDY minting or redemption.

Network Paths for Minting and Redemption at a glance
Route Option Handling Method Hard Limit or Threshold
Ethereum or BNB Chain USDY_InstantManager Registered caller; allowance at least equals input
Sui Assisted mint or redemption $5000 minimum
Aptos Assisted mint or redemption $5000 minimum
Stellar Assisted mint or redemption $5000 minimum
XRP Ledger Assisted mint or redemption $5000 minimum
Noble Assisted mint or redemption $5000 minimum
Tempo Assisted mint or redemption $5000 minimum
Selection Rule Match the route to the token’s source network Manual-network orders begin at $5000

Ethereum and BNB Chain publish separate token and manager contracts, so balances remain chain-local. The ticker alone cannot merge positions across networks. Assisted routes use the source network’s token record and an issuer-coordinated instruction.


Direct Redemption From USDY to USDC

A direct USDY exit converts the selected 18-decimal token amount into USDC after registration, approval, pricing, and manager checks all pass.

Prepare the Input

The wallet first approves USDY_InstantManager to spend at least the chosen rwaAmount. This approval concerns USDY, not USDC. A partial exit leaves the unredeemed USDY quantity in the wallet and does not reset its oracle-based value.

Submit the Redemption

The redeem function accepts three parameters: rwaAmount, receivingToken, and minimumTokenReceived. USDC is the documented receiving token. Its minimum output uses 6 decimals, and a value of 0 is valid for direct primary redemption without order-book slippage. The function’s fixed selector is 0xd8780161.

Reconcile the Receipt

The confirmed transaction supplies two observable balance changes: USDY leaves, and USDC arrives. Record both deltas with the transaction hash and oracle timestamp. When a new allowance was required, the complete exit used one approval transaction plus one redemption transaction; an adequate existing allowance removes the first step.

Closing a Position Across Chains

Closing a cross-chain USDY position starts by selecting an available redemption path on the token’s actual source network.

The Ondo Token Bridge connects Arbitrum, BNB Chain, Ethereum, Mantle, Sei, Solana, and Tempo through LayerZero’s Omnichain Fungible Token mechanism. A bridge transfer burns or locks the source representation and delivers native USDY on the destination route. It does not redeem the position into USDC.

Bridge tracking requires three records: the source transaction, the destination delivery, and the final redemption transaction. Published transfer timing spans 1 to 30 minutes for normal routes and extends to 24 hours during network congestion. The order also presents two gas components, source-chain execution and cross-chain delivery. Token amount remains unchanged across the bridge, while its chain location changes. After arrival, the wallet follows the destination manager or assisted-redemption path and records the resulting USDC separately.

If the source network already offers assisted redemption, its $5000 minimum decides whether bridging is necessary for that position size.


Lifecycle Records and Product Lineage

A complete USDY lifecycle preserves six records: eligibility status, registered wallet, approvals, transaction hashes, oracle timestamps, and final USDC receipts.

USDY began with a $1 on-chain reference price in July 2023. On December 15, 2025, the former Ondo USDY LLC issuance framework was folded into the Ondo Stocks umbrella, and current app purchases follow the applicable Ondo Global Markets terms. That lineage explains why wallet mechanics and account eligibility coexist. ERC-20 contracts record token movement, RWADynamicOracle records reference pricing, and the issuer controls primary-market access. Keeping those layers separate produces a clean history from USDC input through USDY ownership to USDC redemption.

The position closes when the USDY debit and USDC credit both reconcile against the same redemption transaction. Any remaining USDY, rUSDY, or chain-local balance continues as a separate open position.

Ondo questions, answered

Can a contract wallet mint USDY for an eligible non-US entity?

Yes, a contract wallet can call the USDY minting flow when the underlying investor is eligible and the exact contract address is registered. OndoIDRegistry checks the caller, not merely an owner’s personal wallet. The contract also needs a sufficient USDC allowance for USDY_InstantManager, and its integration must handle registration, pause, minimum, and rate-limit reverts.

When does a newly minted USDY position begin accruing?

A USDY position begins accruing when the subscription transaction is processed. Accumulation then appears through the reference price rather than a growing USDY token count. The wallet’s quantity reflects units minted at the transaction price, while the oracle value incorporates subsequent business-day updates. rUSDY presents the same accrual through rebasing balance changes.

Does a USDC approval remain available after one USDY mint?

Any unused USDC allowance remains recorded until the holder changes it or later transfers consume it. USDY_InstantManager uses transferFrom for the approved deposit amount, which ordinarily reduces a finite allowance by the amount spent. An additional mint can reuse the remainder only when it still equals or exceeds the new depositAmount.

What native token covers gas for USDY_InstantManager?

The native gas asset of the selected EVM network pays for USDY_InstantManager transactions. Ethereum users need ETH, while BNB Chain users need BNB. A fresh mint normally needs gas for both the ERC-20 approval and subscription; redemption follows the same two-transaction pattern when no adequate USDY allowance already exists.

Can the same USDY position be viewed across multiple chains?

A USDY position must be read separately on every chain holding part of the balance. Ethereum, BNB Chain, Arbitrum, Mantle, Solana, and other supported networks maintain distinct token records. Portfolio software can aggregate those quantities only after identifying each canonical asset and applying the appropriate reference value; the shared ticker does not create one cross-chain account.

When is a bank wire used instead of USDC for USDY redemption?

A bank wire applies when an eligible holder requests USD settlement through the supported issuer process rather than USDC settlement. The destination must be a non-US bank account, and bank details are required before processing. The USDY_InstantManager path discussed here instead returns an accepted on-chain receiving token, with USDC as the documented choice.

Should rUSDY be converted back to USDY before a USDC redemption?

Yes, rUSDY must be unwrapped into the corresponding USDY amount before using a redemption function expecting USDY as its input. The wrapper burns rUSDY and releases locked USDY, after which the holder approves USDY_InstantManager and submits the USDC redemption. This sequence keeps the rebasing wrapper conversion separate from the primary-market exit.

Ondo logo over people beside a suspension bridge
Ondo, Kinexys, Mastercard, Ripple, and XRP Ledger logos