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:
- 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.
- A stability pool where users deposit stablecoins to backstop liquidations and earn discounted collateral plus a share of interest revenue.
- 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
- App: app.rumiprotocol.com
- Docs: app.rumiprotocol.com/docs
- GitHub: github.com/RumiLabsXYZ/rumi-protocol-v2
- Twitter: @rumilabsxyz
- Whitepaper: app.rumiprotocol.com/Rumi-Protocol-Whitepaper.pdf