Links

Claim Pool Rewards

Learn how to claim rewards accrued through Morpho, on-chain via a Smart Contract & off-chain via ethers.js.
Claim rewards accrued from the underlying pool through Morpho, off-chain through Etherscan or with ethers.js, or on-chain using a Smart Contract. Here are concrete examples 👇

Morpho-Aave V2

There are currently no rewards distributed by Aave V2.

Morpho-Compound

Solidity
ethers.js
// SPDX-License-Identifier: GNU AGPLv3
pragma solidity ^0.8.16;
​
import {IMorpho} from "@morpho-dao/morpho-core-v1/contracts/compound/interfaces/IMorpho.sol";
​
contract MorphoCompoundRepayer {
address public constant CDAI = 0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643;
address public constant CWBTC2 = 0xccF4429DB6322D5C611ee964527D42E5d685DD6a;
​
address public constant MORPHO = 0x8888882f8f843896699869179fB6E4f7e3B58888;
​
function claimRewards() public {
address[] memory poolTokens = new address[](2);
poolTokens[0] = CDAI;
poolTokens[1] = CWBTC2;
​
IMorpho(MORPHO).claimRewards(poolTokens, false);
}
}
import ethers from "ethers";
​
const signer = new ethers.Wallet(
process.env.PRIVATE_KEY,
new ethers.providers.JsonRpcBatchProvider(process.env.RPC_URL)
);
​
const signerAddress = await signer.getAddress();
​
const cEthAddress = "0x4Ddc2D193948926D02f9B1fE9e1daa0718270ED5";
const cDaiAddress = "0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643";
​
const morpho = new ethers.Contract(
"0x8888882f8f843896699869179fB6E4f7e3B58888",
[
"function claimRewards(address[], bool) external returns (uint256)",
],
signer
);
​
async function claimRewards() {
return morpho.claimRewards([cEthAddress, cDaiAddress], false); // signer has received pool rewards accrued through Morpho
}
Last modified 1mo ago