en un clic
base-moonwell
Supply, borrow, and manage positions on Moonwell (Base mainnet) — a Compound v2-style money market with mUSDC, mWETH, mcbETH, mcbBTC.
Menu
Supply, borrow, and manage positions on Moonwell (Base mainnet) — a Compound v2-style money market with mUSDC, mWETH, mcbETH, mcbBTC.
Travel Agent — book AND cancel real hotels and stays end to end. Use when the user wants to BOOK or RESERVE a hotel/stay (not just look one up): "book me a hotel in Lisbon", "reserve that room"; or to CANCEL / look up a booking they made through you: "cancel my hotel", "what's my booking". Discovery is free; booking spends real USDC and always requires the user's explicit confirmation; cancelling requires a code Travala emails to the booking address. Hotels and stays only (no flights). Routes payment through the platform's proven x402 rail — never invent payment logic, never sign a transfer yourself.
Your economic toolbelt. Use when the user mentions earning, selling, charging, invoicing, paying, spending, x402, stripe, reputation, agent economy, offerings, marketplace, transactions, or asks "can you make money" / "how do I earn". Uses open standards (x402, Stripe MCP, AP2, ERC-8004) — never invent payment logic; always use the official tools listed below.
Extend or edit an EXISTING video the user already has (lengthen/continue a clip, multi-shot stitch of existing footage, audio for a video they already made). NOT for new videos or images — for any NEW video, clip, animation, or image use the higgsfield-cloud skill, and never route here as a fallback when higgsfield-cloud is blocked.
Swap tokens, provide liquidity, and stake on Aerodrome (Base mainnet) — Base's leading DEX, Velodrome v2 fork with stable + volatile pools.
Swap tokens and manage liquidity on Uniswap v3 (Base mainnet) — Universal Router for swaps, NonfungiblePositionManager for v3 positions.
Discover and trade Virtuals Protocol agent tokens on Base — recent launches, bonding-curve mechanics, $INSTACLAW.
| name | base-moonwell |
| description | Supply, borrow, and manage positions on Moonwell (Base mainnet) — a Compound v2-style money market with mUSDC, mWETH, mcbETH, mcbBTC. |
Use this skill when: the user wants to supply collateral, borrow against it, repay a borrow, or check Moonwell positions on Base. Moonwell is a Compound v2 fork — supply earns interest, supplied assets count as collateral, borrow against collateral.
0xfBb21d0380beE3312B33c4353c8936a0F13EF26C0xEdc817A28E8B93B03976FBd4a3dDBc9f7D176c220x628ff693426583D9a7FB391E54366292F509D4570x3bf93770f2d4a794c3d9EBEfBAeBAE2a8f09A5E50xF877ACaFA28c19b96727966690b2f44d35aD59760x703843C3379b52F9FF486c9f5892218d2a065cC8(Update list when new markets launch. The MOONWELL_MARKETS env var on each VM can override.)
1. Per-market state (call the market contract directly via cast):
# Supply rate per block (annualize: supplyRate * 365 * 24 * 60 * 60 / 2 for 2s blocks)
cast call 0xEdc817A28E8B93B03976FBd4a3dDBc9f7D176c22 \
"supplyRatePerTimestamp()(uint256)" --rpc-url $BASE_RPC_URL
# Borrow rate
cast call $MARKET "borrowRatePerTimestamp()(uint256)" --rpc-url $BASE_RPC_URL
# Total supply + total borrows
cast call $MARKET "totalSupply()(uint256)" --rpc-url $BASE_RPC_URL
cast call $MARKET "totalBorrows()(uint256)" --rpc-url $BASE_RPC_URL
# Exchange rate (underlying per mToken share)
cast call $MARKET "exchangeRateStored()(uint256)" --rpc-url $BASE_RPC_URL
2. User's account state:
WALLET="${BANKR_WALLET_ADDRESS}"
# Supplied (mToken balance)
cast call $MARKET "balanceOf(address)(uint256)" $WALLET --rpc-url $BASE_RPC_URL
# Borrow balance
cast call $MARKET "borrowBalanceStored(address)(uint256)" $WALLET --rpc-url $BASE_RPC_URL
# Cross-market account liquidity (returns: error, liquidity, shortfall)
cast call 0xfBb21d0380beE3312B33c4353c8936a0F13EF26C \
"getAccountLiquidity(address)(uint256,uint256,uint256)" $WALLET --rpc-url $BASE_RPC_URL
A subgraph also exists: https://api.studio.thegraph.com/query/<id>/moonwell-base/<v> — useful for historical positions, but direct contract reads are usually faster for live state.
Supply (mint mTokens):
# 1. Approve the mToken to spend your underlying
cast calldata "approve(address,uint256)" $MARKET $AMOUNT_WEI
# 2. Mint mTokens
cast calldata "mint(uint256)" $AMOUNT_WEI
Enter market (required before borrowing against this collateral):
# Enter a single market (Comptroller takes an array)
cast calldata "enterMarkets(address[])" "[$MARKET]"
Borrow:
cast calldata "borrow(uint256)" $AMOUNT_WEI
Repay:
# 1. Approve the mToken to pull underlying
cast calldata "approve(address,uint256)" $MARKET $AMOUNT_WEI
# 2. Repay borrow
cast calldata "repayBorrow(uint256)" $AMOUNT_WEI
# Or repay maximum: cast calldata "repayBorrow(uint256)" $(python3 -c 'print(2**256-1)')
Withdraw (redeem):
# Redeem by underlying amount
cast calldata "redeemUnderlying(uint256)" $AMOUNT_WEI
# Or by mToken share count
cast calldata "redeem(uint256)" $SHARES
Note on mWETH redeem: Moonwell's Base markets use mWETH (wrapping the ERC-20 WETH at 0x4200...0006), not a native-ETH wrapper. redeem() and redeemUnderlying() return ERC-20 WETH to the wallet — no native ETH receive step, so no Bankr smart-account limitation in play. (If a future Moonwell market on Base wraps native ETH directly à la Compound v2's cEther, its redeem() would unwrap and use transfer() to send 2300-gas native ETH back — this would revert for Bankr-managed wallets. Treat any new mEther-style market as untested before routing through it.)
# Example: supply 100 USDC to Moonwell
USDC="0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
M_USDC="0xEdc817A28E8B93B03976FBd4a3dDBc9f7D176c22"
AMT=$((100 * 10**6)) # 100 USDC
# 1. Approve mUSDC to spend USDC
bankr send --to $USDC --data $(cast calldata "approve(address,uint256)" $M_USDC $AMT)
# 2. Mint mUSDC
bankr send --to $M_USDC --data $(cast calldata "mint(uint256)" $AMT)
Always report the tx hash and a basescan.org link.
getAccountLiquidity AFTER each supply to confirm the user has borrowing powercloseFactor and liquidationIncentive on the Comptroller for risk mathbase-morpho (simpler ERC-4626 vaults)bankr swap or base-aerodromebase-avantis"supply 200 USDC to moonwell as collateral"
"borrow 50 cbBTC against my moonwell collateral"