# Platform basics (/docs/basics) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. Stables.fast connects branded stablecoins with asset markets. **Keep three things separate:** USDG is the backing asset, the branded stablecoin is the reserve claim, and the paired asset is what people trade. The asset's market price can move even when the branded stablecoin uses 1:1 reserve accounting. Before confirming a transaction, check the network shown in the app and your wallet. Mainnet and testnet use separate contracts and balances. You need a connected wallet, the tokens required for your action, and ETH on the selected network to pay transaction gas. | Action | What it does | | ----------------- | ------------------------------------------------------- | | Issue | Register a new branded stablecoin. | | Mint | Deposit USDG to receive an existing branded stablecoin. | | Redeem | Return a branded stablecoin to withdraw its backing. | | Convert | Exchange two registered brands in the same reserve. | | Trade | Buy or sell an asset at a market price. | | Provide liquidity | Deposit tokens that other users can trade against. | A token approval permits a contract to spend tokens; it is separate from the action itself. Review each wallet request and wait for confirmation. A failed trade can still consume gas. ## A simple example [#a-simple-example] Mint 100 branded units with 100 USDG. You can keep them, convert them into another registered brand, or spend them buying an asset. If you trade them away, you no longer hold that reserve claim; whoever holds those branded units can redeem them. Buying an asset does not make the asset redeemable for its purchase price. See [Our stablecoins](/docs/stablecoins) for redemption conditions and [Markets](/docs/markets) for pricing. # Buybacks and locking (/docs/buybacks) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. A share of earned reserve yield funds purchases of a market's paired asset. **Purchased tokens are currently locked. Burning these tokens is planned for a future update.** ## How it works [#how-it-works] 1. The reserve earns yield on the USDG backing branded stablecoins. 2. That income is split between the protocol, liquidity providers, and buybacks. 3. The buyback allocation purchases the paired asset, and the purchased tokens are sent to a lockbox. See [Fees and revenue](/docs/fees) for how the income is divided. ## Locking now, burning later [#locking-now-burning-later] The current mechanism locks purchased tokens; it does not burn them or reduce the token's reported total supply. A future update is planned to add burning. No release date is set. Buybacks depend on available yield, liquidity, and execution conditions. They do not guarantee price appreciation or a fixed schedule. # Fees and revenue (/docs/fees) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. Trading fees pay for trading liquidity and protocol operations. Reserve yield is earned separately on the USDG backing branded stablecoins and can fund buybacks. | Stream | Destination | | -------------------- | ----------------------------------------------------------------------------------------- | | Protocol trading fee | Collected through the pool's fee hook for the protocol treasury. | | Pool trading fee | Accrues to liquidity providers whose positions are in range. | | Reserve yield | Divided by the market's fee vault between the protocol, in-range liquidity, and buybacks. | | Network gas | Paid separately to process transactions. | ## How trading fees combine [#how-trading-fees-combine] For an exact-input trade, the protocol fee is taken first; the pool fee applies to the remainder. The combined rate is **protocol rate + (1 − protocol rate) × pool rate**, before rounding. **Hypothetical example, not a live rate:** with a 100-unit input, a 1% protocol fee takes 1 unit. A 1% pool fee then takes 0.99 units from the remaining 99. Total fees are 1.99 units, leaving 98.01 for the swap. The output still depends on the pool price and price impact. Network gas is separate. ## How reserve yield is divided [#how-reserve-yield-is-divided] For an amount distributed by the vault: **Buyback funding = amount distributed − protocol share − LP share.** Shares use the market's configured basis-point rates: **10,000 basis points = 100%**. Rounding remainder goes to buybacks. **Hypothetical example:** distributing 100 USDG with a 10% protocol share and 40% LP share sends 10 to the protocol, 40 to liquidity, and 50 to buybacks. These are illustrative percentages. The LP allocation goes only to positions in range at distribution time, through the pool's fee accounting. If none are in range, those 40 units also go to buybacks. Funding the engine does not itself execute a purchase; see [Buybacks and locking](/docs/buybacks). Check the selected market's configuration and transaction quote for applicable rates. Protocol trading rates can change through administrative controls; contract upgrades can also change behavior. Expand the swap details to inspect the route, swap fee, protocol portion where shown, and minimum received. An asset-to-asset Zap includes two pool swaps, each with trading fees. An ETH liquidity zap also trades ETH into USDG before funding the market. Fee-free reserve conversion does not make these trades free, and approvals or separate Zap steps can each require gas. # Introduction (/docs) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. **Stables.fast lets you create a branded, USDG-backed stablecoin and pair it with an existing asset.** People can mint and convert stablecoins, trade assets, and provide liquidity. Reserve yield can fund purchases of the paired asset through the market's configured buyback mechanism. Start with [Launch a stablecoin](/docs/launch) for the walkthrough, or [Platform basics](/docs/basics) for the terminology. ## Find your way around [#find-your-way-around] | On the app | Use it to | | ---------------------------------------------------- | ------------------------------------------------------------------------------------------ | | [Create your stablecoin](https://stables.fast/issue) | Set up your identity and first market. | | [Swap](https://stables.fast/#swap) | Select payment and receive tokens to mint, redeem, convert, or trade on a supported route. | | [Trade](https://stables.fast/trade) | Open a pair, review its chart, trade, or add liquidity. | | [Pairings](https://stables.fast/markets) | Explore branded stablecoin pools and their buyback strategies in cards or a table. | | [Stablecoins](https://stables.fast/stablecoins) | Browse issued stablecoins, their supply, pairings, and reserve yield destination. | | [Dashboard](https://stables.fast/dashboard) | Review your wallet's activity and holdings. | The homepage swap widget supports both stablecoin conversions and asset trades. Choose the tokens first, then review the route and quote. See [Markets](/docs/markets) for swaps that require more than one transaction. # Launch a stablecoin (/docs/launch) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. Start at [Issue a stable](https://stables.fast/issue). Have a wallet connected to the app's selected network and ETH for gas. Minting later needs USDG; the first liquidity deposit also needs the paired asset. ## Launch steps [#launch-steps] 1. **Make it yours.** Upload or drop a logo, enter a name and ticker, and write a one-line pitch. Expand the optional website field if needed. Check the live preview, then continue to the market step. 2. **Pick a market.** Select the asset people will trade against your stablecoin. Verify its contract address, review the starting price, and check the displayed trading fee. The starting price initializes the pool; it does not supply liquidity or guarantee a future price. 3. **Launch coin and market.** Confirm the launch transaction in your wallet. Wait for confirmation and save the token address and transaction link. This creates the brand and first market; it does not mint a spendable token balance for you. 4. **Mint your first coins, optionally.** Enter how much USDG to deposit. Confirm the USDG spending approval, then the mint transaction. The reserve issues the same number of branded units. 5. **Fund the pool.** Follow the liquidity step to supply both your branded stablecoin and the paired asset. Review approvals and confirm the deposit. Your wallet receives the liquidity-position NFT. ETH and USDG liquidity zaps need existing pool liquidity, so they cannot seed an empty market. ## What you have after launch [#what-you-have-after-launch] Creation registers your branded token and initializes its market; it does not create the paired asset. Minting supplies the backing. Adding liquidity makes the pair tradable. These are separate actions, so a successful launch can still leave an empty pool. If the starting price is 2 branded units per asset, that is the initial trading ratio—not a redemption rate for the asset. Once trading starts, buyers and sellers move the price. An empty market cannot support trading. Visit [Pairings](https://stables.fast/markets) to inspect the pool after funding. If confirmation is interrupted, check wallet history before submitting another launch. # Liquidity (/docs/liquidity) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. Liquidity providers supply the tokens that buyers and sellers trade against. A deposit creates a Uniswap v4 position represented by an **NFT owned by your wallet**. It is a claim on a changing pool position, not a promise to return your original quantities. ## What you deposit [#what-you-deposit] The two-sided flow takes the market's branded stablecoin and paired asset. Mint the branded units first if you hold USDG. The required ratio follows the current pool price; unused amounts return as the same tokens supplied. Open a market's **Add liquidity** tab. Where the deployment supports zaps, choose **ETH**, **USDG**, or **Both sides**: | Mode | What happens | | ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | | Both sides | Deposit the branded stablecoin and paired asset directly. Use this to seed an empty pool. | | USDG | Mint the brand, trade part of it for the paired asset, then add both to the pool in one deposit transaction. A token approval may be needed first. | | ETH | Wrap and sell ETH for USDG, then follow the USDG deposit route in the same transaction. Keep ETH available for gas. | ETH and USDG zaps require existing liquidity in the target pool. ETH also needs an available WETH/USDG trading pool. Review the estimated deposit, trading costs, and maximum slippage. Minimum-output and minimum-liquidity checks can cause the transaction to revert if execution falls short. Unused zap amounts return as **USDG and the paired asset**, including for ETH deposits. They do not necessarily return as the token you paid with. Uniswap v4 supports liquidity concentrated within a chosen price range. The platform's current deposit flows use **full range**, spanning the pool's usable prices. They do not automatically adjust that range. A custom narrower position can move out of range and stop earning until the price returns. ## Two sources of LP earnings [#two-sources-of-lp-earnings] Trading fees accrue through Uniswap's position accounting. Separately, the brand's reserve yield is split between configured destinations. Its LP portion is donated into the pool and credited to liquidity that is in range when distribution occurs. These are different income streams; neither is a fixed return. See [Fees and revenue](/docs/fees). ## Balances and withdrawals [#balances-and-withdrawals] If traders buy the asset, your position generally holds less of it and more branded stablecoins. If they sell, the mix moves the other way. Price changes can leave the position worth less than simply holding the original tokens, even after fees. Withdraw and collect fees through the Uniswap v4 PositionManager using your NFT. The app's deposit panel does not provide this flow. Withdrawal returns the pool's tokens; redeem branded units separately if you want USDG. # Markets (/docs/markets) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. A market pairs an existing asset with a branded stablecoin in a Uniswap v4 pool. Each brand has **one market** in the current factory. Its registered operator chooses the paired asset; opening a second market for that brand is rejected. ## Starting price and trading price [#starting-price-and-trading-price] The starting price sets the pool's initial exchange rate. It does not supply tokens, establish a guaranteed valuation, or promise executable trades. Someone must add liquidity first. Once trading begins, the pool's balances and available liquidity determine execution. For example, an initial price of 10 branded units per asset does not mean 100 USDG will buy exactly 10 assets. Fees and your trade's effect on the pool change the amount received. ## Find a pair [#find-a-pair] [Pairings](https://stables.fast/markets) lists branded stablecoin pools with search, filters, and card or table views. Open **Trade** for the trading workspace or **Details** to inspect a pairing. The [Trade page](https://stables.fast/trade) provides a pair picker, chart, and transaction panel; the homepage also supports token selection and trading. Discovery can include external pools marked **Explore only**. These are available for charting; select a platform pool to trade. Seeing an external chain's pool does not mean stablecoin issuance or bridging is supported on that chain. ## How funds move [#how-funds-move] * **Buy with USDG:** the router mints the market's brand, then trades it for the asset. * **Buy with another registered brand:** the router converts within the shared reserve, then trades. * **Sell into the market's brand:** the router returns that branded stablecoin. * **Sell into USDG or another registered brand:** a Zap first sells into the market's brand, then redeems or converts it in a second transaction. * **Swap two listed assets:** a Zap sells the source asset into its brand, then converts that brand as needed and buys the destination asset through its market. The reserve conversion uses equal units; the asset trade uses a changing market price. Trading fees apply to that trade even when the conversion has no fee. ### If a Zap stops halfway [#if-a-zap-stops-halfway] Sell-side Zaps use separate transactions. If the second step fails or you reject it, the completed sale is not reversed: its branded stablecoin remains in your wallet. Keep the page open and use **Finish Zap conversion** with the same wallet to retry the remaining step without selling again. If you leave or reload, check the receipts and use the received brand for a new conversion or purchase. An asset-to-asset Zap trades through two pools, with fees on each. The second purchase gets a fresh quote after the sale; its minimum output is checked separately, so the initial combined quote is not a fixed minimum for the whole route. ## Review the quote [#review-the-quote] **Price impact** is the price change caused by your order. **Slippage tolerance** sets the minimum output you accept if execution differs from the quote. The router checks actual received output and rejects a trade below that minimum. Failed transactions can still consume gas. Verify the asset address. The factory's verified label checks against configured canonical equity contract code; it does not guarantee returns or token safety. ## Charts and market data [#charts-and-market-data] Charts default to one week and show the time range and candle interval. Current market snapshots and historical prices load separately: a visible spot price does not mean the full history is available. If history is still indexing or unavailable, the app says so. **Session** observations cover only prices seen while the page is open and reset on reload. Catalogue prices and charts are reference data. Wallet balances, approvals, and executable transaction quotes are checked against the selected deployment separately. # Connect with MCP (/docs/mcp) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. This site provides a read-only Model Context Protocol (MCP) server. Add the following URL as a remote HTTP MCP server in your assistant: ```text https://docs.stables.fast/api/mcp ``` The server provides tools to list pages, search the documentation, and read a page. It does not execute platform operations or access your account. ## Markdown access [#markdown-access] You can also read the [documentation index](/llms.txt) or [all documentation as Markdown](/llms-full.txt). # Chains and deployment plans (/docs/networks) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. | Chain | Status | | ----------------------------------- | ------------------------------------------------------------------ | | Robinhood Chain — **4663** | Current mainnet platform. Uses ETH for gas. | | Robinhood Chain Testnet — **46630** | Testing environment, separate from mainnet balances and contracts. | | Base | Announced on the homepage as coming soon. | | Solana | Announced on the homepage as coming soon. | | BNB Chain | Announced on the homepage as coming soon. | Always match the app's network to your wallet. Testnet assets do not transfer into mainnet balances. The current app does not provide a cross-chain bridge. ## Deployment plans [#deployment-plans] The next rollout work includes additional chains and more complete historical market data. The frontend now uses the indexed API for current stablecoin and market snapshots and pool history. The API and indexer run on AWS; historical backfill is still being completed, independently of current snapshot updates. Wallet balances, quotes, approvals, and transactions continue to use fresh on-chain reads. The web frontend and this documentation site are hosted on Vercel. No release dates are confirmed here. A “coming soon” label does not mean a chain is ready for deposits. Check the [main application](https://stables.fast) for availability before acting. # Reserves and vaults (/docs/reserves) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. ## Where the USDG goes [#where-the-usdg-goes] **Mint → shared reserve → lending market.** Minting creates branded tokens and supplies the deposited USDG to the yield strategy in the same transaction. If the lending strategy cannot accept the deposit, the mint fails; it does not leave you with unbacked tokens. The current Robinhood strategy supplies USDG directly to **Morpho Blue**, in a lending market with **USDe collateral**. Borrowers pay interest; the reserve is the lender. This is not a deposit into a separate Morpho vault product, and the interest rate is variable. | Component | Job | | ---------------- | -------------------------------------------------------- | | Shared reserve | Accounts for backing and the supply of each brand. | | Yield adapter | Supplies USDG to lending and recalls it for withdrawals. | | Brand treasury | Claims the yield attributed to its brand. | | Market fee vault | Splits that income between configured recipients. | ## How brands share yield [#how-brands-share-yield] Yield is allocated by each brand's outstanding supply over time. If two brands maintain 75% and 25% of supply throughout an earning period, they receive approximately those shares of its yield, before fees and rounding. A token held in a trading pool still counts as outstanding. Its backing can therefore earn yield while the token provides market liquidity. Buying the branded token does not give its holder a personal yield claim. ## Principal comes before distributions [#principal-comes-before-distributions] The reserve separates deposited backing from earned income. It records losses and uses subsequent recovery to offset them before crediting new yield. Yield claims are capped at assets above outstanding token liabilities; an unpaid entitlement remains owed. That accounting does not insure the reserve. Withdrawals require USDG to be available or recalled from lending. A lending loss can reduce backing, while high borrowing utilization can make withdrawals fail. See [redemption limits](/docs/stablecoins) and [income distribution](/docs/fees). # Safety and help (/docs/safety) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. ## Before you confirm [#before-you-confirm] Check the network, token contract, spender, amount, minimum output, and gas. Branded stablecoins carry USDG, reserve, lending, and smart-contract risks. Asset trading and liquidity positions can lose value. ## Who can change what? [#who-can-change-what] * **Protocol administrators** can upgrade contracts and change permitted settings. Some components use a timelock, but do not assume every upgrade has a waiting period. An upgrade can change the rules even when the contract address stays the same. * **The pause guardian** can stop guarded operations quickly. The current reserve's redemption path is not blocked by that pause, but still depends on available funds and the lending strategy. * **The paired token's issuer** may retain transfer restrictions, freeze, or upgrade powers. The market cannot remove those powers. A verified label checks a specific contract property; it is not an audit or endorsement. A successful transaction proves execution, not the safety of the asset. ## Common issues [#common-issues] | Problem | First check | | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ | | Wrong network | Match your wallet to the network shown in the app. | | Insufficient funds | Check both the input token and ETH for gas. | | Approval succeeded, action did not | Approval and the action are separate transactions. | | Trade failed | Refresh the quote; check allowance, liquidity, minimum output, and pause status. | | Zap sale succeeded, next step failed | The received brand remains in your wallet. Use Finish Zap conversion on the same page, or check receipts before starting a new conversion or purchase. | | ETH or USDG liquidity deposit unavailable | Check zap support and pool liquidity. Use Both sides for an empty pool; ETH also needs a liquid WETH/USDG route. | | Chart missing or market data unavailable | History may still be indexing. Retry unavailable data; do not treat a missing chart as proof that the pool is empty. | | Redemption failed | Check lending liquidity and the required payout; increasing trade slippage does not replenish reserves. | | Launch appears stuck | Inspect wallet history before submitting again. | | Market has no trades | Creation alone does not add liquidity. | Use transaction links in the app to inspect [Robinhood Chain activity](https://robinhoodchain.blockscout.com). For help, visit the [official Telegram](https://t.me/stablesfast). Never share your seed phrase. # Our stablecoins (/docs/stablecoins) > The main app is under heavy development. Features and screens may change before these docs are updated. Check the current app before confirming transactions. A branded stablecoin has its own name and symbol, but shares USDG backing with the other brands registered in its reserve. Each branded unit represents a claim designed around one USDG. It does not represent a separate reserve account for its holder. ## Mint, convert, or redeem [#mint-convert-or-redeem] Use the [homepage swap widget](https://stables.fast/#swap) and choose the payment and receive tokens. USDG into a brand mints; a brand into USDG redeems; two brands in the same reserve convert. The [Stablecoins directory](https://stables.fast/stablecoins) lists issued brands and links to their details. | Action | Example | What moves | | ------- | --------------------------------------------- | --------------------------------------------------------- | | Mint | Deposit 100 USDG; receive 100 Brand A units. | Backing enters the reserve. | | Convert | Exchange 100 Brand A for 100 Brand B. | A units are burned and B units minted; backing stays put. | | Redeem | Return 100 branded units to request 100 USDG. | Tokens are burned and available backing is paid out. | Same-reserve conversion exchanges equal units without a market trade or conversion fee. Gas still applies. It cannot remove reserve risk: Brand B draws on the same backing as Brand A. ## Where the yield goes [#where-the-yield-goes] The reserve tracks each brand's outstanding supply and earned yield separately. Earnings are attributed to the supply outstanding as yield accrues, including tokens held in liquidity pools. Before a conversion changes those balances, existing earnings are credited to their original brand. Converting today does not transfer yesterday's earnings. Yield goes to the brand's treasury and configured distribution; holders' tokens do not appreciate like yield-vault shares. Recorded reserve losses must be recovered before new growth is counted as distributable yield. ## Redemption depends on backing [#redemption-depends-on-backing] Withdrawals may need funds recalled from the yield source. Losses or unavailable liquidity can make a redemption fail or pay below par. The current conversion flow does not enforce a minimum redemption payout. A claim on USDG also does not guarantee USDG's dollar price.