ICP’s First Yield-Bearing Stablecoin is Live on Mainnet

Rumi Protocol is a CDP stablecoin system live on the Internet Computer. Deposit collateral, borrow icUSD, earn yield. Everything runs on-chain: no bridges, no off-chain oracles, no custodians.

What it does

You open a vault, deposit collateral, and mint icUSD against it. Each collateral type has its own risk parameters (borrowing thresholds, liquidation ratios, interest rates). Interest rates are dynamic, adjusting per-vault based on collateral ratio and protocol health.

The protocol currently supports five collateral types: ICP, ckBTC, ckETH, nICP, and ckXAUT.

icUSD is an ICRC-1 token. You can repay your debt in icUSD, ckUSDC, or ckUSDT. Redemptions are backed first by the protocol’s ckUSDC/ckUSDT reserves (flat 0.3% fee), then by a vault-based water-filling algorithm if reserves are depleted.

3pool and 3USD

Rumi includes a built-in stableswap AMM modeled after Curve’s 3CRV. The pool holds icUSD, ckUSDC, and ckUSDT. When you add liquidity, you receive 3USD, an LP token with ICRC-3 functionality.

3USD is a yield-bearing token. 95% (adjustable, will be reduced post bootstrapping phase) of all borrower interest revenue is donated to the pool, increasing the virtual price of 3USD over time. LP holders also earn swap fees. As far as I’m aware, this is the first yield-bearing stablecoin product on ICP.

Liquidation system

Three layers of protection against undercollateralized vaults:

  1. An autonomous liquidation bot that runs as its own canister. It seizes collateral on credit, swaps it through KongSwap for the best available stablecoin rate, routes it through the 3pool to icUSD, and deposits it back to protocol reserves. No off-chain keeper network.
  2. A stability pool where users deposit stablecoins to backstop liquidations and earn discounted collateral plus a share of interest revenue.
  3. Manual liquidation available to any user through the app.

The bot operates on a 30-second cycle with a configurable monthly budget and a no-retry failure escalation policy.

Recovery mode

When the system-wide collateral ratio drops below 148% (dynamic rate based on collateral makeup systemwide), the protocol enters recovery mode. Interest rates scale up via a multiplier, partial liquidations restore vaults to their recovery target CR, and new borrowing is restricted. If the system CR drops below 100% or oracle data goes stale, the protocol enters read-only mode.

How it’s built

Backend: Rust (ic-cdk, candid, serde, rust_decimal). Frontend: SvelteKit, TailwindCSS, hosted on-chain as an asset canister. Prices from the Exchange Rate Canister (XRC) with on-demand fetching and 30-second freshness. Three wallet integrations: Oisy (with ICRC-112 batched signing), Plug, and Internet Identity.

All canisters are currently mutable and under dev control. The plan is to transition governance to an SNS DAO. Codebase is fully open source.

Where things stand

The protocol is in beta. It’s live on mainnet and processing real transactions. We are actively seeking an audit of the core canisters. Current collateral, TVL, and pool stats are visible in the app.

We’re looking for liquidity providers, integration partners, and feedback. If you’re building something on ICP that could use a native stablecoin or a yield-bearing LP token, I’d like to talk.

Links

3 Likes

Update: Rumi Protocol is live on mainnet and minting icUSD

Wanted to drop an update here since a lot has happened since the original post. Rumi is live on mainnet at app.rumiprotocol.com. You can connect your wallet, deposit collateral, and mint icUSD right now.

Multi-collateral support is live. ICP, ckBTC, and ckXAUT are all available as collateral types. The architecture is built so that adding new collateral assets is basically drag and drop, with each one getting its own risk parameters and liquidation thresholds.

The Stability Pool is live. Depositing icUSD to the stability pool lets you profit from liquidations and earn interest paid by borrowers. The pool has already processed its first real liquidation.

Two-tier redemption system. icUSD can be redeemed 1:1 against the protocol’s reserve of ckUSDT and ckUSDC that accumulates from repayments, at a flat 0.3% fee. If reserves are depleted, redemptions fall through to vault-based redemptions using a water-filling algorithm that distributes fairly across vaults.

Dynamic borrowing fees and interest. Rates vary by collateral type and vault health, adjusting dynamically based on protocol conditions. Revenue is split between stability pool depositors and the protocol treasury.

Oisy wallet support is also in alongside Plug and Internet Identity, using ICRC-112 batched signing. Prices come from the Exchange Rate Canister with on-demand fetching and smart caching to keep cycle costs down.

A note on where things stand: the protocol currently has around 289 ICP, some ckBTC, and some ckXAUT locked as collateral with about 325 icUSD minted. I’m still actively making updates to the backend as needed because we are still in testing mode, and of course, all canisters are mutable and under dev control until we can turn over governance to a DAO. If you want to try it out, I’d encourage you to experiment with just a small amount for now.

The codebase is fully open source: github.com/RumiLabsXYZ/rumi-protocol-v2

Now that the product works from a technical standpoint, the next key step to make icUSD useful is liquidity. If you’re interested in providing liquidity to an LP with icUSD paired against another stablecoin (no impermanent loss), please get in touch. We’re planning to fundraise very soon to fund a Code4rena audit contest to tie off any loose ends and prove the code holds up to scrutiny, as we don’t expect any serious liquidity provider would trust our protocol without an audit.

On the roadmap, we’re working toward in-app stableswap LPs with routing to external liquidity, and cross-chain collateral and borrowing down the line.

Come try it: app.rumiprotocol.com
GitHub: github.com/RumiLabsXYZ/rumi-protocol-v2
Twitter: @rumilabsxyz

Happy to answer any questions about the protocol, the math, or the roadmap.

5 Likes

awesome progress. love seeing new stablecoin primitives and multi-collateral systems launching on icp. congrats on shipping this :clap:

1 Like

Bullish stuff good work here

2 Likes

Thanks @tomkoom and @MacroStrategy, appreciate the kind words.

Since my last update a lot has shipped, so figured I’d drop the highlights here.

3pool is live. Rumi now has a built-in stableswap AMM (icUSD/ckUSDC/ckUSDT) modeled after Curve’s 3CRV. Adding liquidity mints 3USD, an ICRC-3 LP token. 95% of all protocol interest revenue currently flows to the pool (rate is adjustable), so 3USD accrues yield passively on top of swap fees. I believe this makes it ICP’s first yield-bearing stablecoin product.

Autonomous liquidation bot is live. Runs as its own canister. No off-chain infrastructure, no keeper network. The bot seizes collateral on credit, routes through external DEXs for the best rate, swaps through our 3pool to icUSD, and deposits it back to protocol reserves. 30-second cycle, configurable budget, failure escalation to the stability pool and then manual liquidators.

Two new collateral types added. nICP and ckETH are both live alongside the existing ICP, ckBTC, and ckXAUT. Five collateral types total, each with independent risk parameters.

Full docs are up. Covering everything from vault mechanics to liquidation logic to protocol parameters (live values read from the canister). Written to be thorough and honest, including a “What Can Go Wrong” page. app.rumiprotocol.com/docs

The protocol is turnkey at this point. Every piece of the system works end to end. The next priorities are getting an audit done and growing liquidity.

If you’re building on ICP and need a native stablecoin integration, or if you’re interested in earning yield on stablecoins through 3USD, I’d love to hear from you. Questions about the protocol, the math, or the architecture are welcome.