BUILD ON PYUSDx

PYUSDx Overview

What PYUSDx is and how it works: a yield-bearing digital dollar on M0 infrastructure that partners wrap into a custom token.

PYUSDx is a yield-bearing digital dollar built on M0 infrastructure. Partners don't offer PYUSDx to users directly. Instead, they launch a custom token on top of it: their own name and symbol, backed 1:1 by PYUSDx, with the yield on that backing routed to a treasury they choose. M0 operates the shared layer: the base token, the swap infrastructure, the cross-chain bridge, and yield enablement for each custom token.

This page explains the model. The Quick Guide describes the launch sequence, and the technical documentation covers each contract in depth.

This page uses the term custom token. The contracts and the technical documentation call the same thing an extension. The terms are interchangeable.

Key facts

PropertyDetail
Base tokenPYUSDx is an upgradeable, non-rebasing ERC-20 with 6 decimals, matching PYUSD.
YieldAccrues continuously on the PYUSDx that backs your token. Yield is added to a balance only when claimed, so holder balances don't change on their own.
Custom token templatesYieldToOne routes all yield to one treasury. MultiMint does the same and also accepts approved alternative stablecoins as backing.
Wrap and unwrap1:1 through SwapFacility. No spread and no liquidity pool to fund.
Cross-chainPortal uses burn-and-mint with pluggable bridge adapters. LayerZero is the first adapter.
Supported chainsEthereum, Arbitrum, and Monad. Testnets: Ethereum Sepolia, Arbitrum Sepolia, and Monad Testnet.
Compliance controlsAccount freezing, forced transfer from frozen accounts, and pausing.
Upgrade modelCore contracts are deployed behind transparent proxies that M0 operates. Custom tokens are deployed behind beacon proxies: they follow M0's latest audited implementation by default, and you can pin a version.
Mainnet launchJune 2, 2026, on Ethereum and Arbitrum; Monad followed on August 12, 2026.

How it works

PYUSDx is the shared base

Every custom token is backed 1:1 by PYUSDx, the reserve asset that all partners share. Because the reserve is shared, conversions are exact and liquidity is available immediately. You don't need to bootstrap a separate market for your token.

You launch a custom token

Your token is a wrapper around PYUSDx, deployed in a single transaction through M0's ExtensionFactory. Two audited templates are available:

  • YieldToOne routes all yield to a single treasury address. M0 recommends this template for most partners.
  • MultiMint routes yield the same way and also accepts approved alternative stablecoins as backing, each under a per-asset cap. Unwrapping always returns PYUSDx.

You choose the name, symbol, yield recipient, and the address that holds each administrative role. For details, see Scope with M0 in the Quick Guide.

Users wrap and unwrap at 1:1

SwapFacility is the only entry and exit point for every custom token. swapIn converts PYUSDx into your token, swapOut converts it back, and swapExtensions converts directly between two custom tokens. Amounts are exact: the custom tokens minted or the PYUSDx returned always equal the amount supplied. Permit-based approvals support gasless swaps.

The backing earns yield while holder balances stay fixed

PYUSDx is non-rebasing. A balance never changes on its own; yield accrues in the background and is added only when claimed. Your custom token's contract is registered as an earner on PYUSDx, so the PYUSDx it holds accrues yield continuously. When your yield manager calls claimYield, the accrued amount (the contract's PYUSDx balance minus your token's total supply) is minted as new custom tokens to your yield recipient. Holder balances don't change. The yield recipient receives the claimed yield.

Tokens move across chains

Portal bridges PYUSDx and custom tokens between supported chains using burn-and-mint: tokens are burned on the source chain and minted on the destination chain, so total supply stays consistent across chains. When a user bridges a custom token, Portal unwraps it to PYUSDx, sends the message, and wraps it again on arrival. Bridge providers are abstracted behind an adapter interface. LayerZero is the first adapter, and M0 can add others without changing Portal.

Compliance controls are built in

Your custom token inherits freeze and pause controls, held by roles you assign. Frozen accounts can't send, receive, or claim yield. A pause stops all transfers. Forced transfers, which move funds out of a frozen account under legal process, operate at the PYUSDx layer. Freezing an earning account claims its pending yield and stops earning first, so the full balance is available for a forced transfer.

Architecture

ContractDescription
PYUSDXCore ERC-20 with per-account yield. M0 operates it.
IssuerGatewayTime-delayed mint and burn gateway for PYUSDx supply. M0 operates it.
SwapFacility1:1 router between PYUSDx and custom tokens. M0 operates it.
ExtensionFactoryDeploys and registers custom tokens at deterministic addresses. M0 operates it; you call it once per chain.
ExtensionBeaconPer-template registry of audited implementations. M0 operates it.
YieldToOne / MultiMintYour custom token. You hold its roles.
Portal and adaptersCross-chain bridge and provider adapters. M0 operates them.

Integration notes

  • Balances are stable. Custom tokens behave like any ERC-20. No rebasing math is required.
  • Yield appears as minted supply at claim time. Your token's total supply grows by the claimed amount and the contract emits YieldClaimed. Base treasury reporting on claim events, not on block time.
  • Addresses are deterministic. The same deployer and the same deployment name produce the same token address on every supported chain.
  • Decimals are 6. PYUSDx and every custom token use 6 decimals, matching PYUSD.

What's next

Quick Guide

The launch sequence: each step, its owner, and its result.

Technical documentation

The engineering reference: token, yield, issuance, extensions, bridging, and security.

Specification

Lookup tables: parameters, roles, rounding, errors, and events.

Copyright © M0 Foundation 2026