Maren
GitHub
Get started

Quickstart

Connect on matsnet, deposit BTC, borrow MUSD, and spend it.

The whole product loop on Mezo testnet: fund an account, deposit Bitcoin, borrow MUSD against it, and pay someone. Every step runs against the five contracts live on matsnet and the real MUSD protocol underneath.

Everything here happens on Mezo matsnet, chain 31611. There is no real money at risk, and there is no Maren mainnet deployment to point at. Testnet BTC is the gas token, same as mainnet.

Get the app

Maren's launch is mobile-first. The iOS app is in TestFlight beta: join the beta, build 1.0.0 (5). It runs against Mezo matsnet and holds its signing key in the iOS Keychain behind Face ID, so there is no wallet to connect.

The web client at /app is built and runs locally, but it is switched off in production while the iOS beta runs — every /app/* URL returns 404 today. Run it yourself with pnpm --filter @maren/web dev; see Run locally.

If you are running the web client locally

Add the Mezo matsnet network to your wallet and switch to it. The primary RPC is https://rpc.test.mezo.org; a second endpoint is listed on Networks for failover. The native gas token is BTC with 18 decimals, not 8, because Mezo is an EVM chain and BTC is its gas token.

Several official Mezo doc pages list RPC hosts that do not resolve (rpc.mezo.org, testnet-rpc.mezo.org). Use the endpoints on the Networks page, each verified with a live cast chain-id rather than copied from a doc.

Fund the account with a little testnet BTC

You need a small amount of matsnet BTC for gas. Your first deposit is a transaction you submit and pay for yourself, always: see the note below.

Deposit Bitcoin into the Social Vault

Deposit from as little as 0.001 BTC. The vault holds one shared MUSD trove and gives you a proportional claim inside it, which is what lets you borrow below the protocol's minimum loan size. Collateral is native BTC passed as msg.value, so there is no ERC-20 approval step.

Your first deposit costs BTC gas, always. The relayer deliberately excludes MarenVault.deposit() from its sponsored allowlist, because a gasless relay cannot carry value, so deposit is excluded from the relay allowlist by construction. After that, borrow, repay, withdraw, close, every payment and every handle operation are sponsored — 25 free actions per address, then the relayer declines rather than charging. Earn is not on the allowlist, so Earn deposits and withdrawals are self-paid. See Gasless.

Borrow MUSD, inside the range the contract will accept

Drag the borrow slider. Maren refuses new borrowing below a 180% collateral ratio, far above the protocol's 110% liquidation threshold, and marks a recommended safe level at 250%. A refusal states the contract's own reason with live numbers rather than making you pay gas to discover it — with one known exception near the top of the range, described on Preflight.

This path ran on 17 August 2026, drawing 25.73 MUSD against an existing pooled deposit in tx 0x28bb5ec1…7ef2 (block 14,948,596). Deposit and borrow are separate transactions on the deployed vault; the single-transaction depositAndBorrow composite is written but not deployed in a single transaction. At the same position a 40 MUSD borrow reverts with InsufficientCollateralRatio at the account's own 180% floor.

Spend the MUSD

Now the MUSD is yours to move.

Register a handle through commit-reveal, then pay @amaka with an optional on-chain memo. Raw addresses work too. See Pay.

Check it in Activity

Every action you took is a row in Activity, read from contract logs, each with a real transaction hash linked to explorer.test.mezo.org. There is no sample data anywhere in the product.

Repay and walk away

You can always exit: repay your share of the pooled debt and withdraw your Bitcoin. If the pooled trove is ever under stress, borrowing halts before withdrawals do, so exits stay open when entries close.

One state does freeze exits, and it is not a pause. If the pooled trove is liquidated, closed or fully redeemed, it leaves Mezo's active set and every vault mutation halts. Residual collateral then sits in MUSD's CollSurplusPool and MarenVault does not call claimCollateral, so there is no wind-down path in the contract yet. Separately, the deployed matsnet vault predates the redemption-reconciliation mechanism entirely. Both are why mainnet is gated on an audit. See Risk.