﻿---
title: "AMM de produto constante"
description: "Um formador de mercado automatizado de produto constante calcula swaps a partir de duas reservas de tokens usando x * y = k. Entenda a cotação com taxas, o impacto no preço, a arbitragem e os riscos para provedores de liquidez."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# AMM de produto constante

> Apenas para fins educacionais; não constitui recomendação de investimento. Investir pode resultar em perdas.

<a id="answer"></a>

## Resposta direta

Um formador de mercado automatizado de produto constante (CPMM) mantém reservas de dois tokens e só aceita um swap quando os saldos após a operação satisfazem um invariante baseado em `x * y = k`. Aqui, `x` e `y` são as reservas. A proporção entre elas fornece o preço instantâneo do pool; uma operação altera essa proporção, portanto transações maiores em relação à liquidez recebem preços progressivamente piores.

A curva é uma regra de cotação e liquidação, não um oráculo nem uma promessa de que qualquer token tenha valor. Em geral, arbitradores aproximam o preço do pool dos mercados externos, lucrando com a diferença enquanto alteram os ativos mantidos pelos provedores de liquidez (LPs).

<a id="mechanism"></a>

## Como funciona

Antes das taxas, um swap que adiciona `deltaX` unidades do token X e retira `deltaY` unidades do token Y satisfaz:

`(x + deltaX) * (y - deltaY) = x * y`

Logo, `deltaY = y * deltaX / (x + deltaX)`. Se a taxa cobrada sobre a entrada for `f`, defina `gamma = 1 - f`; a cotação usual ajustada pela taxa é:

`deltaY = y * gamma * deltaX / (x + gamma * deltaX)`

O preço infinitesimal de X em unidades de Y é `y / x`. Uma operação finita percorre a curva, então seu preço médio difere dos preços spot inicial e final. Essa diferença é o impacto no preço; já a tolerância à derrapagem do usuário é uma restrição da transação que protege a cotação contra mudanças desfavoráveis antes da execução.

Em implementações com taxas, como a Uniswap v2, toda a entrada permanece nas reservas, enquanto a verificação do invariante desconta a taxa da entrada. Assim, o produto registrado das reservas normalmente aumenta após um swap. Depósitos e retiradas alteram o tamanho das reservas e a participação dos LPs, sendo eventos de liquidez separados, não swaps ao longo de uma única curva fixa.

<a id="example"></a>

## Exemplo

Considere um pool com `100 ETH` e `200,000 USDC`. O preço exibido pelas reservas é `2,000 USDC/ETH`. Um trader envia `10,000 USDC` para comprar ETH, e o pool cobra `0.30%`; assim, a entrada efetiva é `9,970 USDC`.

`ETH out = 100 * 9,970 / (200,000 + 9,970) = 4.7483 ETH`

O preço médio de execução é cerca de `2,106.02 USDC/ETH`, aproximadamente `5.30%` acima do preço inicial. Após a liquidação, as reservas são aproximadamente `95.2517 ETH` e `210,000 USDC`, indicando um novo preço perto de `2,204.69 USDC/ETH`. Esses valores não incluem gás, roteamento por outros pools nem mudanças desfavoráveis de estado antes da inclusão.

A cotação da interface deve ser conferida com os endereços exatos dos tokens, a faixa de taxa, as reservas ou o bloco usados, o valor mínimo recebido, a rota e o prazo. Taxas de transferência de tokens ou comportamentos de saldo fora do padrão podem invalidar esse cálculo simples.

<a id="risks"></a>

## Riscos

- **Impacto no preço e MEV:** baixa liquidez e transações públicas pendentes podem causar execução ruim, ataques sandwich ou swaps malsucedidos.
- **Risco de inventário dos LPs:** a arbitragem faz os LPs manterem menos do token que se valoriza mais e mais do que se valoriza menos; as taxas podem não compensar a perda impermanente.
- **Ativos e contratos problemáticos:** perda de paridade, tokens maliciosos, taxas de transferência, falhas de contrato, interfaces comprometidas e controles administrativos ficam fora da proteção da curva.
- **Uso indevido como oráculo:** `y / x` pode ser alterado dentro de uma transação. Protocolos não devem tratar uma proporção spot manipulável das reservas como preço de mercado independente.
- **Diferenças de parâmetros:** lógica de taxas, arredondamento, liquidez concentrada, hooks e curvas ponderadas ou stable-swap podem fazer outro pool se comportar de modo diferente deste modelo.

<a id="misconceptions"></a>

## Equívocos comuns

### Mito 1: `k` é exatamente constante para sempre

Os swaps são verificados contra o invariante, mas taxas e eventos de liquidez podem aumentar ou redefinir o produto numérico das reservas. O arredondamento de inteiros também importa nas implementações em contratos.

### Mito 2: O pool descobre o preço justo

O pool precifica suas reservas mecanicamente. Traders externos e arbitradores o conectam aos mercados mais amplos; reservas desatualizadas ou manipuladas podem gerar uma cotação sem sentido.

### Mito 3: Derrapagem e impacto no preço são iguais

Impacto no preço é o movimento na curva causado pela operação proposta. Derrapagem é a diferença entre o resultado esperado e o efetivo, ou a tolerância usada para limitar essa diferença.

### Mito 4: Mais volume sempre beneficia os LPs

O volume gera taxas, mas a arbitragem informada pode transferir valor dos LPs. O desempenho líquido depende das taxas, da trajetória do preço, da volatilidade, da profundidade do pool e dos riscos dos contratos ou ativos.

<a id="related"></a>

## Tópicos relacionados

- [Formador de mercado automatizado](/pt-br/crypto/amm/)
- [Perda impermanente](/pt-br/crypto/impermanent-loss/)
- [Pool de liquidez](/pt-br/crypto/liquidity-pool/)
- [Derrapagem na negociação de criptoativos](/pt-br/crypto/slippage-crypto/)

<a id="sources"></a>

## Fontes

- [How Uniswap Works](https://developers.uniswap.org/docs/get-started/concepts/how-uniswap-works) - Uniswap Labs (acessado em 2026-08-20)
- [UniswapV2Pair.sol](https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol) - Uniswap (acessado em 2026-08-20)

Source: https://wiki.fcontext.com/pt-br/crypto/constant-product-amm/index.mdx
