# USDso

> The stablecoin markets on Somnia settle in, issued and operated by Frax on frxUSD infrastructure.

USDso is the stablecoin used for settlement on Somnia. It is issued and operated by Frax on its frxUSD infrastructure, which is designed to be compatible with the GENIUS Act framework.

## Where it is used

- **Spot markets.** USDso is the quote asset for spot pairs on [Somnia Markets](/markets).
- **Perpetuals.** USDso is the collateral for cross-margined perpetual positions.
- **Event contracts.** Winning outcomes redeem for 1 USDso each.
- **Somnia Lend.** USDso can be supplied on [Somnia Lend](/settlement/somnialend).

## Addresses

USDso is an ERC-20 token with 18 decimals.

| Network | Chain ID | Address |
| --- | --- | --- |
| Somnia mainnet | 5031 | [`0x00000022dA000002656c64D9eA6011ea952D008A`](https://new.explorer.somnia.network/token/0x00000022dA000002656c64D9eA6011ea952D008A) |
| Tokyo mainnet | 50321 | [`0xcEa80aEb6ed4Ed526d71f34EfED047904C0e387a`](https://new.explorer.somnia.network/tokyo/token/0xcEa80aEb6ed4Ed526d71f34EfED047904C0e387a) |
| Somnia testnet | 50312 | `0x9c32F3827A1a99f0cf9B213de8b53eC3d57bb171` |
| Tokyo testnet | 50383 | `0xed7993A74dAe1e6656B704A424DcD8711aAf4F72` |

On Tokyo, USDso is a synthetic bridged from Somnia mainnet over the [Hyperlane warp route](/blockchain/bridge): it is minted 1:1 against USDso locked on Somnia mainnet, and its address is its warp router.

## See it in use

- **[USDso in Somnia Explorer](https://new.explorer.somnia.network/usdso).** The contract, its issuer and reserve, the USDso held by Somnia protocols, and the reserve yield paid out and where it goes.
- **[Tokyo](https://new.explorer.somnia.network/tokyo/usdso).** The same view for USDso on Tokyo mainnet.
- **[Bridge](https://new.explorer.somnia.network/bridge).** Move USDso between Somnia mainnet and Tokyo.

## Use it from the CLI and MCP

The [Somnia CLI](/build/cli) reads and sends USDso like any ERC-20, at the Somnia mainnet address above:

```sh
USDSO=0x00000022dA000002656c64D9eA6011ea952D008A
somnia tokens balance $USDSO $ADDRESS --network mainnet   # ADDRESS: the wallet to read
somnia signer send --token $USDSO --to $RECIPIENT --amount 25 --network mainnet
```

The [Somnia MCP server](/build/mcp) gives agents the same balance read as its `token_balance` tool. The CLI has no Tokyo preset yet, so on Tokyo, use USDso with your usual library, such as viem or ethers. See [Using the Viem Library](/developer/development-frameworks/using-the-viem-library) for reading from and writing to a contract.

## Minting

USDso is minted one-to-one against approved stablecoins through Frax. Frax holds and manages the reserves.

## Yield Allocation Framework

Frax's reserves earn yield. Frax mints each day's yield as USDso into a public split contract, [`0x44D650A2cE847098c26e6E874A308F280817D4ac`](https://new.explorer.somnia.network/address/0x44D650A2cE847098c26e6E874A308F280817D4ac), which pays it to the yield wallets of registered Somnia protocols and the Somnia Foundation. Under the current framework:

- **Measured hourly.** Every hour, the USDso held by each registered protocol's counted contracts is read, along with USDso's total supply. For dreamDEX the counted contracts are its markets; for Somnia Lend, it is the USDso supplied and not lent out.
- **Shared by holdings.** A protocol's share of a day's yield is the USDso its contracts held, averaged over the day, as a fraction of the average total supply.
- **The Foundation receives the remainder.** Yield on USDso held outside every registered protocol goes to the Somnia Foundation.
- **Paid daily.** Each day's shares are set on the split early the following day (UTC), and the split pays the yield Frax minted that day by them.

Each protocol decides how it uses its yield. The current shares and every payment are public in [Somnia Explorer](https://new.explorer.somnia.network/usdso).

USDso holders are not entitled to reserve yield. Allocations under the Yield Allocation Framework are discretionary and may change.

---

Every page is also Markdown: append `.md` to its URL, or ask for `text/markdown`. Found something wrong, missing or confusing in these docs? Tell us: `POST /api/feedback` on this site with JSON `{"message": "…", "context": "what you were doing and what happened", "page": "…"}`, or a plain-text body. `GET /api/feedback` gives the JSON Schema. The team reads every one.
