SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
26.11.2024

Aula 140: Yield Farming e Liquidity Mining

No mundo das finanças descentralizadas (DeFi), dois conceitos proeminentes surgiram que atraem muita atenção dos investidores em criptomoedas: yield farming e liquidity mining. Ambas as estratégias permitem que os usuários ganhem recompensas ao fornecer liquidez para vários protocolos. Nesta aula, exploraremos os conceitos básicos de yield farming e liquidity mining, juntamente com exemplos que demonstram como eles funcionam na prática.

O que é Yield Farming?

Yield farming é o processo de ganhar juros ou recompensas sobre suas criptomoedas ao fornecer liquidez para plataformas de finanças descentralizadas (DeFi). Os usuários fornecem ativos para pools de liquidez e são recompensados na forma de tokens, taxas de transação ou tokens de governança. Isso permite que os usuários maximizem seus ganhos sobre ativos criptográficos ociosos participando de vários protocolos DeFi.

Exemplo de Yield Farming

Vamos supor que você tenha alguns DAI (um stablecoin) que deseja usar para yield farming. Você pode emprestar seu DAI para uma plataforma de empréstimo descentralizada como Aave ou Compound, que permite que os usuários tomem empréstimos.

Aqui está uma representação simplificada:

  1. Você deposita 100 DAI no Aave.
  2. O Aave paga juros por emprestar seu DAI.
  3. Em alguns casos, você também é recompensado com tokens de governança (por exemplo, tokens AAVE).
// Código Solidity para emprestar DAI usando o Protocolo Aave (simplificado)
import "@aave/protocol-v2/contracts/flashloan/base/FlashLoanSimpleReceiverBase.sol";
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract ExemploYieldFarm é FlashLoanSimpleReceiverBase {
    address public daiAddress;

    constructor(address _addressesProvider, address _daiAddress)
        FlashLoanSimpleReceiverBase(_addressesProvider) {
        daiAddress = _daiAddress;
    }

    function emprestarDAI(uint256 amount) external {
        IERC20(daiAddress).transferFrom(msg.sender, address(this), amount);
        // Lógica para emprestar DAI no Aave
    }
}

Neste exemplo, os usuários podem emprestar seus tokens DAI para o contrato, permitindo que o projeto forneça liquidez ao Aave. Eles receberão recompensas ou juros em troca.

O que é Liquidity Mining?

Liquidity mining é um tipo específico de yield farming que envolve fornecer liquidez a uma Exchange Descentralizada (DEX) em troca de tokens. É utilizado principalmente por exchanges descentralizadas como Uniswap e Sushiswap. Ao fornecer liquidez a essas plataformas, os usuários ganham taxas e podem também receber tokens de governança da DEX.

Exemplo de Liquidity Mining

Suponha que você queira fornecer liquidez a um par de negociação no Uniswap, como DAI/ETH. Quando você fornece tokens DAI e ETH ao pool de liquidez, você se torna um provedor de liquidez (LP) e ganha uma pequena porcentagem das taxas de negociação das transações que ocorrem nesse pool.

Aqui está um processo simplificado:

  1. Você fornece 100 DAI e 0.1 ETH para o pool DAI/ETH.
  2. Em troca, você recebe tokens LP que representam sua parte do pool.
  3. Você pode stakar esses tokens LP em um contrato de farming para ganhar recompensas adicionais, muitas vezes na forma de tokens de governança.
// Código Solidity para fornecer liquidez ao Uniswap (simplificado)
import "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol";

contract ExemploLiquidityMining {
    IUniswapV2Router02 public uniswapRouter;
    address public daiAddress;
    address public wethAddress;

    constructor(address _router, address _daiAddress, address _wethAddress) {
        uniswapRouter = IUniswapV2Router02(_router);
        daiAddress = _daiAddress;
        wethAddress = _wethAddress;
    }

    function fornecerLiquidez(uint256 daiAmount, uint256 ethAmount) external {
        // Transferir os tokens DAI para este contrato
        IERC20(daiAddress).transferFrom(msg.sender, address(this), daiAmount);

        // Adicionar liquidez ao Uniswap
        IERC20(daiAddress).approve(address(uniswapRouter), daiAmount);
        uniswapRouter.addLiquidityETH{value: ethAmount}(
            daiAddress,
            daiAmount,
            0,
            0,
            msg.sender,
            block.timestamp
        );
    }

    // Função fallback para receber Ether
    receive() external payable {}
}

Neste exemplo, os usuários podem fornecer DAI e ETH ao protocolo Uniswap, permitindo que ganhem taxas de negociação com base em sua participação no pool.

Conclusão

Yield farming e liquidity mining oferecem oportunidades atraentes para investidores de criptomoedas maximizarem seus retornos sobre ativos ociosos. Ao fornecer liquidez para vários protocolos DeFi, os usuários podem ganhar juros, taxas de transação e tokens de governança. Compreender como participar dessas estratégias é essencial para quem deseja navegar de forma eficaz no ambiente DeFi.

Lembre-se sempre de fazer sua própria pesquisa e avaliar os riscos antes de se envolver em yield farming ou liquidity mining, pois essas estratégias podem muitas vezes envolver riscos substanciais e volatilidade.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!