A stablecoin backed by real stock tokens on Robinhood Chain


RobinUSD (USDRh) is a decentralized stablecoin backed by real stock tokens, built on the Robinhood Chain. Users can deposit stock tokens as collateral, mint USDRh stablecoins, send them to others or use in DeFi protocols, and burn them to redeem their collateral — all through a modern web interface.
The web app is available in the webapp repo
The smart contracts are available in the contracts repo
Because programmable economies need easily exchangeable and usable assets, that's where stablecoins come in. RobinUSD allows any user with token stocks to obtain stablecoins without selling their assets and use them in any DeFi protocol, without depending on a centralized entity.
To obtain USDRh, you need to deposit collateral in any enabled stock token (such as TSLA for example) and you will receive the corresponding amount directly in your wallet (you will need to deposit 150% of the amount you require in USDRh in order to protect the stock token collateral against high fluctuations).
You can use USDRh to send it to any wallet on the Robinhood Chain, or you can also trade on protocols within the network.
At any time, you can burn your stablecoins and receive your stock tokens back.
RobinUSD has several advantages:
It supports any stock token as collateral (as Robinhood Chain expands with more tokens, more collateral options become available).
It has an auction model to pay off debts against collateral during periods of high volatility or liquidation.
All contracts are deployed on Robinhood Chain Testnet.
Contract | Address |
|---|---|
USDRH Token |
|
USDRH Manager |
|
Ticker | Address |
|---|---|
TSLA |
|
AMZN |
|
PLTR |
|
NFLX |
|
AMD |
|
Users deposit stock tokens as collateral to mint USDRh.
collateralValue = amount * price (from Chainlink oracle)
rawMintAmount = (collateralValue * 100) / collateralRatio
fee = rawMintAmount * mintFeeBPS / 10000 (0.5%)
finalMintAmount = rawMintAmount - fee
Key details:
Collateral ratio: 150% — for every $150 of stock deposited, user gets ~$100 USDRh.
Mint fee: 0.5% (50 BPS), minted directly to the contract treasury.
User debt (userDebt[msg.sender]) is tracked as the rawMintAmount (pre-fee amount).
The fee is not attributed as user debt.
Users burn USDRh to reclaim their deposited stock tokens.
collateralToReturn = (stableAmount * collateralRatio * 1e18) / (price * 100) / factor
Key details:
The contract checks that the remaining position stays ≥ 150% collateralized after the withdrawal. If the user is burning all their debt, this check is skipped.
Collateral is returned at the same ratio used during minting (not at 1:1), preserving the overcollateralization structure.
The burned USDRh is subtracted from userDebt[msg.sender].
When a user's collateral ratio drops below 120% (liquidationThreshold), anyone can call startAuction to begin a 1-hour Dutch auction.
currentRatio = (collateralValue * 100) / debt < 120The entire user debt and all their collateral for a given stock token are placed into a single auction.
The liquidator burns USDRh to cover the debt and receives collateral in return.
The amount of collateral received increases linearly over time:
Time | Collateral received |
|---|---|
t = 0 |
|
t = 30 min |
|
t ≥ 1 hour | All collateral (maximum discount) |
If the debt exceeds the collateral's market value, the liquidator gets everything immediately.
Any surplus collateral beyond what the liquidator takes is returned to the original borrower.
The liquidator must already hold USDRh to burn — they must acquire it beforehand (by minting or buying on the market).
The auction seizes all of the user's debt even though it only liquidates one collateral token at a time. If a user has debt backed by two different stock tokens (e.g. AAPL and TSLA), starting an auction on AAPL takes all of their AAPL collateral and all of their debt, leaving the TSLA position free-floating with no associated debt.
MVP created and smart contracts validated.