Membrane is a community-owned DAO that carries the torch of decentralization. The main protocol is a pegged token (stablecoin) stabilization system that uses collateralized debt in the form of collateralized debt positions (CDPs) to mint. A CDP is a loan that holds collateral and mints debt within the set LTV limits of the position. Typical CDPs are 1 collateral per position but Membrane enables bundles to mix-n-match collateral enabling further risk control for the position owners. Prices are sourced from the oracle contract which currently queries Osmosis TWAPs & Pyth Network (for OSMO/USD). As new robust oracles are deployed Membrane should diversify.
Loan liquidations are used to keep the debt token collateralized and typically auction off the full amount to the contract caller in a first come first serve manner. Membrane’s liquidations are a 4-part filtration system that liquidate collateral at market driven fees until ultimately being backed by the Membrane network token.
From 1-4:
- Liquidation Queue for single collateral w/ dynamic fees
- Stability Pool for all collateral at a fixed fee
- Market sales through a DEX router
- Bad debt recapitalization through Membrane Debt Auctions
Pegged token mints are handled by the Osmosis Proxy in a way that allows for multiple versions of the CDP contract to run in tandem. All external user facing contracts that hold funds should be immutable long term to allow the market to choose its upgrades.
Name | Description |
---|---|
positions |
Credit position manager |
liquidation queue |
Debt liquidation queue |
stability pool |
Position stability pool |
debt auction |
Last-resort MBRN auction for bad debt |
oracle |
TWAP oracles for approved assets |
liquidity check |
Checks for acceptable AMM liquidity of collateral assets |
Name | Description |
---|---|
governance |
Decentralized governance contract for updating protocol params and contract versions |
staking |
Manages staked MBRN functionality |
vesting |
Manages vesting MBRN functionality |
Name | Description |
---|---|
osmosis proxy |
Proxy to Osmosis SDK module functions |
margin proxy |
Proxy for cleaner looped margin functionality |
launch: "osmo1g6hgj3eu9ju4vuaprjxdzj97ecnuczytve3junulgnwlamnndl5q6k73w6", discount_vault: "osmo1v8wckds5lvsdd0xrragvleu8srxprjpwdl7mga5uygnwmz5e7qzsl5zexw", governance_v1: "osmo19h8huy2hz4q7detxzv2r2erlsvlq8hzlsquu6n5x83775va4qgkskf20kq", governance_v2: "osmo1wk0zlag50ufu5wrsfyelrylykfe3cw68fgv9s8xqj20qznhfm44qgdnq86", liq_queue: "osmo1ycmtfa7h0efexjxuaw7yh3h3qayy5lspt9q4n4e3stn06cdcgm8s50zmjl", liquidity_check: "osmo1xxx0yuqhmwekt44q00jrf3rwvfa70rpeu622q0x56yaf423vq93q3qpzux", mbrn_auction: "osmo1qwdlg9le9kdrvgyp35jxz53m8zhdssyvxvyevmdxcn852h6dq9gqknf2aa", oracle: "osmo160t4k7x8axfd335s0rj5jdffzag684tjrzchlwmqk23xte32alvq6nfz6k", osmosis_proxy: "osmo1s794h9rxggytja3a4pmwul53u98k06zy2qtrdvjnfuxruh7s8yjs6cyxgd", positions: "osmo1gy5gpqqlth0jpm9ydxlmff6g5mpnfvrfxd3mfc8dhyt03waumtzqt8exxr", stability_pool: "osmo1326cxlzftxklgf92vdep2nvmqffrme0knh8dvugcn9w308ya9wpqv03vk8", staking: "osmo1fty83rfxqs86jm5fmlql5e340e8pe0v9j8ez0lcc6zwt2amegwvsfp3gxj", system_discounts: "osmo1p0hvtat69dash8f0w340n2kjdkdfq0ggyp77mr426wpnfwp3tjyqq6a8vr", vesting: "osmo1flwr85scpcsdqa8uyh0acgxeqlg2ln8tlklzwzdn4u68n3p5wegsgspjf6"