Maren
GitHub
Reference

Contracts

The five live matsnet addresses, the MUSD protocol addresses, and the precompiles.

Every address on this page is transcribed from packages/sdk/src/addresses.ts, where each was verified on-chain before being committed. Do not hand-edit an address anywhere: a wrong one silently sends funds nowhere.

Maren contracts

Maren is deployed to Mezo matsnet (chain 31611) only. Its mainnet addresses are all zeroes because Maren is not on mainnet: a third-party audit is the deliberate gate. The deployment block floor for matsnet is 14,911,471; on mainnet it is null, meaning there is no history to read.

The five contracts, all source-verified on Blockscout. MarenRelayHub is the single trusted forwarder; MarenPay.trustedForwarder() confirms it on-chain.

ContractMatsnet address (31611)Mainnet (31612)
MarenVault0x46252B00AB59384518d9dB6D1f210ffF1221645b0x0000...0000
MarenPay0xe475Ff919D54E055809f516E3bed8a5c7a1018360x0000...0000
MarenRelayHub0x22cC1Adfb0C91D9359746dE3F7E8cB7F2B8eA98C0x0000...0000
MarenRegistry0x9e123Cdd0CD524812CF9F552d3FAB13d8143b77E0x0000...0000
MarenEarn0xE3B02b215085B99Ce61E0F5ea9763Ac637aa78260x0000...0000

Deployment took 11 transactions from the deployer 0x54196397D6f01b48739dB3957257cB33cD341885, costing 11,688,063 gas in total, about 4 nano-BTC. Every deploy hash resolves on explorer.test.mezo.org.

The standalone MarenForwarder is MarenRelayHub's base class and is deliberately not deployed. Two trusted forwarders would be two independent ways to forge a sender, only one of which is allowlisted. Always treat MarenRelayHub as the forwarder.

MUSD protocol contracts

Maren calls Mezo's already-deployed MUSD system rather than reimplementing any of it. All core contracts are TransparentUpgradeableProxy, so always integrate against the proxy, never an implementation address. All fifteen addresses were verified three independent ways: the mezo-org/musd deployment artifacts, the OpenZeppelin proxy manifest, and live eth_getCode plus functional calls.

ContractAddress
MUSD0x118917a40FAF1CD7a13dB0Ef56C86De7973Ac503
BorrowerOperations0xCdF7028ceAB81fA0C6971208e83fa7872994beE5
BorrowerOperationsSignatures0xD757e3646AF370b15f32EB557F0F8380Df7D639e
TroveManager0xE47c80e8c23f6B4A1aE41c34837a0599D5D16bb0
StabilityPool0x1CCA7E410eE41739792eA0A24e00349Dd247680e
PriceFeed0x86bCF0841622a5dAC14A313a15f96A95421b9366
SortedTroves0x722E4D24FD6Ff8b0AC679450F3D91294607268fA
HintHelpers0x4e4cBA3779d56386ED43631b4dCD6d8EacEcBCF6
InterestRateManager0xD4D6c36A592A2c5e86035A6bca1d57747a567f37
GovernableVariables0x6552059B6eFc6aA4AE3ea45f28ED4D92acE020cD

MUSD is not a proxy. Its EIP-1967 implementation slot reads all zeroes and its runtime code carries the ERC-2612 surface directly. The proxy rule above is about the core protocol contracts, not the token.

Precompiles and standard infrastructure

Two things a developer reaches for on other chains behave differently here. The BTC/USD oracle is a native chain precompile, not a deployed Chainlink or Pyth contract, and the ERC-4337 EntryPoint is deployed but inert.

ComponentAddressStatus
BTC gas-token precompile0x7b7C000000000000000000000000000000000000Live
Price oracle precompile0x7b7c000000000000000000000000000000000015Live, Skip Connect
MEZO token precompile0x7B7c000000000000000000000000000000000001Live
Multicall30xcA11bde05977b3631167028862bE2a173976CA11Deployed both networks
Permit20x000000000022D473030F116dDEE9F6B43aC78BA3Deployed
x402 settlement proxy0x402085c248EeA27D92E8b30b2C58ed07f9E20001Live both networks
ERC-4337 EntryPoint v0.70x0000000071727De22E5E9d8BAf0edAc6f37da032Deployed and inert

The price oracle precompile implements only decimals() and latestRoundData() from the Chainlink AggregatorV3 interface; description() reverts. It reverts entirely above 60 seconds of staleness. Pyth is also deployed on Mezo but is not a usable substitute: measured 2026-09-07, BTC/USD had a publishTime 41.9 days old and returned $65,238 against a live oracle price of $79,466 — 18% wrong — getPriceNoOlderThan(BTC/USD, 3600) reverts StalePrice, and ETH/USD reverts outright, so it is not a usable substitute. Maren reads the precompile, the same source MUSD's own liquidation engine uses. See Networks.

The ERC-4337 EntryPoint has processed zero UserOperations and no compliant bundler can run against Mezo, because the RPCs lack debug_traceCall. It is recorded here only so nobody rediscovers it and concludes 4337 is viable. It is not. See Gasless.