Mamo — DeFi Yield Aggregator (Moonwell on Base)
Mamo is a DeFi yield aggregator built by Moonwell on Base chain. It deploys per-user smart contracts that split deposits between Moonwell core markets and Morpho vaults for optimized yield, with auto-compounding of rewards.
Chain: Base (8453) Strategies: USDC stablecoin, cbBTC lending, ETH lending, MAMO staking
Setup
cd ~/clawd/skills/mamo/scripts # or wherever this skill lives
npm install
export MAMO_WALLET_KEY=0x... # wallet private key
export MAMO_RPC_URL=https://... # optional, defaults to Base public RPC
Commands
# Create a yield strategy (deploys your personal strategy contract via on-chain factory)
node mamo.mjs create usdc_stablecoin
node mamo.mjs create cbbtc_lending
node mamo.mjs create eth_lending
# Deposit tokens (approve + deposit to your strategy contract)
node mamo.mjs deposit 100 usdc
node mamo.mjs deposit 0.5 cbbtc
# Withdraw tokens
node mamo.mjs withdraw 50 usdc
node mamo.mjs withdraw all cbbtc
# Account overview — wallet balances + strategy positions
node mamo.mjs status
# Current APY rates
node mamo.mjs apy
node mamo.mjs apy usdc_stablecoin
How It Works
- Create strategy → Calls the on-chain StrategyFactory to deploy a personal proxy contract owned by your wallet
- Deposit → CLI approves token spend, then calls
deposit(amount)on your strategy contract - Yield accrues → Strategy splits funds between Moonwell + Morpho, auto-compounds rewards via CowSwap
- Withdraw → Only the owner (your wallet) can withdraw. Funds go directly to your wallet
Strategy addresses are stored locally in ~/.config/mamo/strategies.json (the on-chain registry may not be updated for user-created strategies).
Key Addresses
| Token | Address |
|---|---|
| USDC | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| cbBTC | 0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf |
| MAMO | 0x7300b37dfdfab110d83290a29dfb31b1740219fe |
| Registry | 0x46a5624C2ba92c08aBA4B206297052EDf14baa92 |
Security
- Use a dedicated hot wallet — not your main holdings
- Only deposit what you're comfortable having in a hot wallet
- Store
MAMO_WALLET_KEYin env vars, never in committed files - All transactions are simulated before sending