Keel
Mezo testnet

Proof

Don't take our word. Open the transactions.

Everything below ran for real on Mezo testnet, or against a copy of Mezo mainnet with its real vault and balances.

01

Savers got their money back, with interest.

Two fresh wallets each put 60 MUSD into the savings vault, which lent it through Keel. Three borrowers took loans, one against a veBTC lock, then repaid. Each saver took out 60.0000015 MUSD.

See the 29 transactions
Saver 1 approves the vault0xb0c77ebf…
Saver 1 deposits 60 MUSD (allocated into Keel)0x1947e5f9…
Saver 2 approves the vault0x87648453…
Saver 2 deposits 60 MUSD (allocated into Keel)0x358b91ac…
Borrower 1 approves 0.0012 BTC0xeaebd7b4…
Borrower 1 locks 0.0012 BTC, borrows 30 MUSD0xb6c391c4…
Borrower 2 approves 0.001 BTC0xd0899d4f…
Borrower 2 locks 0.001 BTC, borrows 25 MUSD0x9d451009…
Borrower 3 approves BTC for a veBTC lock0x3465c39f…
Borrower 3 locks 0.0012 BTC as veBTC for 21 days0x5102d84d…
Borrower 3 approves veBTC #407 to Keel0x1521a17a…
Borrower 3 deposits veBTC #407, borrows 20 MUSD0xed4e410f…
Send borrower1 the interest owed0x399d61a0…
Borrower 1 approves the repayment0x27788efb…
Borrower 1 repays loan #6 (interest first, to savers)0x647c88a4…
Borrower 1 closes loan #6, collateral returned0xe060cbc1…
Send borrower2 the interest owed0xee99c264…
Borrower 2 approves the repayment0x71ccf2ad…
Borrower 2 repays loan #7 (interest first, to savers)0x9f8e58a1…
Borrower 2 closes loan #7, collateral returned0x6040f251…
Send borrower3 the interest owed0x17ed2440…
Borrower 3 approves the repayment0x09ea8fc9…
Borrower 3 repays loan #8 (interest first, to savers)0xaa4057f5…
Borrower 3 closes loan #8, collateral returned0x6df8b280…
Vault pulls released interest from Keel0x9538ab71…
Saver 1 claims their yield0xa0872a09…
Saver 1 withdraws their 60 MUSD0x4e75f674…
Saver 2 claims their yield0xbef8be68…
Saver 2 withdraws their 60 MUSD0xda22fa9f…
02

When a loan went bad, the keeper cleared it.

We pushed a loan past its limit. On its daily run the keeper repaid the debt from its own MUSD, took the collateral at a small discount, and savers lost nothing.

See the 6 transactions
BTC loan #1: 0.001 BTC, borrow 20 MUSD0xf293d362…
Loan #1 borrows 21 more, to 49% of its collateral0x4ba85686…
The vault owner proposes a tighter BTC setting (liquidate at 45%)0xc477a8b3…
Applied after the 600 s delay: loan #1 health 0.93, open to liquidation0xfac142ed…
The keeper liquidates loan #1 from its own MUSD float, on its daily run0xc190a65d…
The vault owner puts the BTC setting back to 50% / 65% after the delay0xb50d29ff…
03

It plugs into Mezo's real vault.

On a copy of Mezo mainnet, one setStrategy call from the vault's owner moves the idle savings into Keel, borrower interest reaches savers, and withdrawals stay open. Every number the contracts produce was also checked against a separate calculation: all 235 match.

See the 5 mainnet copy tests
One governance call moves the idle savings
sMUSD owner (Mezo multisig): 0x98D8899c3030741925BE630C710A98B57F397C7a
MUSD moved out of IdleStrategy: 7382416
lendable at 20% cap: 1476483
Borrower interest reaches savers
saver deposits 10,000 MUSD → withdraws 10,060.87 after a borrower repays 1M + 50k interest
Withdrawals stay open at max lending
cap fully lent (1,476,483) → saver withdraws 1M → 5,905,933 still liquid
Keel reads mainnet veBTC
BTC locked in #6114 (an Enclave lock): 500
Peg oracle reads MUSD on mainnet
24h average of the mUSDC/MUSD wall: $0.991043 · basic pool: $0.989539
Try it yourself