🤖Criando Agentes de Trading no PancakeSwap V3
Um guia para desenvolvedores criando agentes autônomos — com o BNB Agent Studio ou qualquer framework — que interagem com os pools de Liquidez e farms V3 da PancakeSwap na BNB Smart Chain.
Você descreve uma estratégia; seu agente a executa onchain, sem supervisão. Esta página aborda a parte da PancakeSwap: os contratos a serem chamados, a ordem segura para chamá-los e um exemplo completo de trabalho (um rebalanceador de intervalo V3 automatizado). Para saber como descrever, criar e implantar o próprio agente, consulte a documentação do BNB Agent Studio.
A PancakeSwap não requer integração para que isso funcione. Os pools V3 e farms são contratos inteligentes sem permissão — seu agente os chama diretamente, da mesma forma que o frontend da PancakeSwap faz. Tudo abaixo é superfície pública onchain.
1. O que um agente pode fazer na PancakeSwap
A Liquidez concentrada (V3) oferece aos LPs uma eficiência de capital muito melhor do que a V2, ao custo de gerenciamento ativo: uma posição só ganha taxas enquanto o preço estiver dentro de seu intervalo de tick, e recompensas/rendimentos mudam constantemente. Essa sobrecarga operacional é exatamente o que um agente remove. Estratégias comuns:
Rebalanceador de intervalo — monitora uma posição LP; quando o preço se aproxima da borda do intervalo, retira e reminta em torno do novo preço para que a posição continue ganhando taxas. (Exemplo trabalhado no §6.)
Roteador de APR de Farm — rastreia rendimento de CAKE + taxas em pools e move Liquidez para o maior rendimento total.
Bots de Swap/cotação — roteia negociações pelo Smart Router para melhor execução em V2 + V3.
Todas essas são composições das mesmas poucas chamadas de contrato abaixo.
2. Superfície de contratos (BNB Smart Chain, chainId 56)
NonfungiblePositionManager (NFPM)
0x46A15B0b27311cedF172AB29E4f4766fbE7F4364
Criar/gerenciar posições LP — mint, increaseLiquidity, decreaseLiquidity, collect, burn
SmartRouter
0x13f4EA83D0bd40E75C8222255bc855a974568Dd4
Executar Swaps com melhor roteamento V2+V3
MasterChefV3
0x556B9306565093C855AEA9AE92A594704c2Cd59e
Fazer Staking de um NFT de posição para ganhar CAKE — harvest, withdraw
V3 Quoter
0xB048Bbc1Ee6b733FFfCFb9e9CeF7375518e25997
Cotar um Swap antes de enviá-lo
PancakeV3Factory
0x0BFbCF9fa4f9C56B0F40a671Ad40E0805A091865
Resolver um endereço de pool a partir de (token0, token1, fee)
Permit2
0x31c2F6fcFf4F8759b3Bd5Bf0e1084A055615c768
Aprovações de tokens sem gas/em lote para Swaps no Smart Router (ver §5.1)
⚠️ Sempre reconfirme os endereços na lista de implantação canônica da PancakeSwap antes de enviar valor real. Trate a tabela acima como um ponto de partida.
Um pool V3 é identificado por (token0, token1, fee). Camadas de taxa e seus espaçamentos de tick:
Taxa
valor fee
Espaçamento de tick
Uso típico
0,01%
100
1
Stable–stable
0,05%
500
10
Correlacionados (ex.: ETH/BTC)
0,25%
2500
50
Maioria dos pares
1,00%
10000
200
Exóticos / voláteis
Uma posição V3 é um NFT ERC-721 mantido no NonfungiblePositionManager. Armazena tickLower, tickUpper, liquidity e taxas acumuladas. Você o referencia por tokenId.
3. Ferramentas
Você pode se comunicar com esses contratos com ABIs brutos e qualquer biblioteca web3, mas os pacotes @pancakeswap/v3-sdk e @pancakeswap/smart-router fazem as contas difíceis (tick ↔ preço, mínimos ajustados por Slippage, codificação calldata) por você. Os exemplos abaixo os usam com viem.
Seu agente é apenas esta Carteira executando transações em um cronograma ou gatilho. A Carteira é financiada e gerenciada pelo Agent Studio — consulte a documentação do BNB.
4. Lendo o estado (faça isso antes de cada ação)
Um agente decide se deve agir lendo o chain. As três leituras que impulsionam a maioria das estratégias:
Preço do pool e tick atual — construa uma entidade Pool a partir de slot0 + liquidity onchain:
Uma posição que você possui — leia do NonfungiblePositionManager por tokenId:
A posição está no intervalo? Esse único booleano é o gatilho para um rebalanceador. Você pode restringi-lo para "dentro de N ticks da fronteira" para agir antes de sair do intervalo.
5. Sequências de transações seguras
Esta é a parte que deve ser feita exatamente certa. Um agente sem supervisão não tem um humano para captar uma transação ruim, então toda chamada de mudança de estado deve ser defendida com os quatro controles abaixo.
5.1 Aprovações
Antes que um contrato possa mover seus tokens, ele precisa de uma permissão. O mecanismo correto depende de qual contrato você está chamando — todos os três abaixo são sem permissão:
ERC-20
approve— funciona tanto para o Smart Router quanto para o NonfungiblePositionManager, com qualquer token. Uma tx por token/gastador. O mais simples, mas uma aprovação infinita permanente é um risco permanente.selfPermit(EIP-2612) — para operações de Liquidez do NonfungiblePositionManager. Se o token suporta EIP-2612, o SDK pode agrupar uma permissão assinada com escopo de valor inline commint/increaseLiquidityvia multicall — sem tx de aprovação separada. Retorna paraapprovepara tokens sem EIP-2612.Permit2 — para Swaps do Smart Router. Aprove o Permit2 uma vez por token, depois conceda permissões assinadas de curta duração com escopo de valor por Swap.
Para um agente autônomo: limite toda permissão ao valor exato e a uma expiração curta. Nunca conceda uma aprovação ilimitada de uma Carteira de agente que mantém saldos significativos.
5.2 Slippage — nunca envie amountMin = 0
amountMin = 0Toda adição/remoção/Swap deve especificar uma saída mínima aceitável. Deixe o SDK derivá-la de uma tolerância em vez de calcular manualmente:
Para Swaps, o Smart Router aplica slippageTolerance e computa amountOutMinimum para você (§6, passo 0). Um mínimo zero é um convite aberto para bots de ataque sandwich — em uma Carteira sem supervisão, isso pode significar perdas repetidas e silenciosas.
5.3 Prazos — sempre defina um
Toda chamada recebe um deadline (segundos unix). Se a tx ainda estiver pendente nesse momento, ela é revertida em vez de executar com um preço desatualizado. Mantenha curto para um agente:
5.4 Multicall — torne ações de múltiplos passos atômicas
O NonfungiblePositionManager e o Smart Router suportam multicall: várias chamadas agrupadas em uma transação que todas são bem-sucedidas ou todas são revertidas. Isso não é apenas economia de gas — é uma propriedade de segurança. Um rebalanceamento que faz decreaseLiquidity e depois collect nunca deve ser executado parcialmente. O SDK agrupa para você:
Não existe uma função atômica de "rebalanceamento". Mover um intervalo é uma sequência composta (remover → coletar → mintar). A remoção e o novo mint acontecem em transações separadas; o preço pode se mover entre elas. Releia o estado e recalcule os mínimos para o mint após a remoção confirmar — não reutilize números pré-remoção.
Lista de verificação de controles (aplique a cada ação do agente)
[ ] Permissão de token limitada ao valor (Permit2), não infinita
[ ]
amount*Min/amountOutMinimumderivado de uma tolerância de Slippage explícita, nunca0[ ]
deadlinecurto em toda chamada[ ] Ações de múltiplos passos agrupadas via
multicall[ ] Estado relido entre transações separadas de uma sequência
[ ] Um limite por execução no valor movido, e uma verificação de sanidade de que o preço do pool está dentro dos limites esperados antes de agir (defesa barata contra agir em um pool manipulado/com pouca Liquidez)
6. Exemplo trabalhado — rebalanceador de intervalo V3 automatizado
O agente de referência. Ele monitora uma posição; quando o preço se aproxima da fronteira do intervalo, retira Liquidez e reminta um novo intervalo centrado no preço atual. Cinco passos.
Gatilho: pool.tickCurrent está dentro de um buffer de tickLower/tickUpper (do §4).
Passo 0 — (opcional) rebalancear a proporção de tokens
Após retirar, você terá token0 e token1 na proporção que o antigo intervalo produziu. Um novo intervalo recentrado geralmente precisa de uma proporção diferente, então troque o excesso pelo Smart Router:
Passos 1–3 — remover Liquidez, coletar, queimar (uma transação)
removeCallParameters constrói o pacote inteiro: faz decreaseLiquidity para zero, collect tanto o principal retirado quanto as taxas acumuladas, e burn do NFT agora vazio — como um único multicall atômico.
Se a posição estiver em Staking no MasterChefV3, você não remove do NFPM. Chame
MasterChefV3.withdraw(tokenId, to)primeiro para remover o Staking (isso também colhe CAKE pendente), que devolve o NFT à sua Carteira — depois execute a remoção acima. Veja §7.
Passo 4 — mintar o novo intervalo
Recalcule os ticks em torno do preço atual (releia o pool — veja §5.4), ajuste-os ao espaçamento de tick da camada de taxa, construa uma Position a partir dos tokens que você agora tem e faça o mint.
O agente agora possui um NFT novo e dentro do intervalo. Se estava em farming, refaça o Staking (§7). Volte para a leitura do §4 no próximo tick.
7. Interações com o Farm (MasterChefV3)
Fazer Staking de um NFT de posição V3 no MasterChefV3 ganha CAKE além das taxas de Swap.
Apenas posições de pools com um farm ativo ganham CAKE. A Governança da PancakeSwap registra quais pools são farmáveis (cada um recebe um
pid). Fazer Staking de uma posição cujo pool não está registrado reverte comInvalidPid. Este é o único lugar onde a atividade do agente depende de uma lista da PancakeSwap — e é no nível do pool, não do agente: qualquer Carteira pode fazer Staking em qualquer farm ativo. (Gerenciar uma posição via NonfungiblePositionManager — mint/coletar/rebalancear — não precisa de farm e funciona para todo pool.)
Apenas posições de pools com um farm ativo ganham CAKE. A Governança da PancakeSwap registra quais pools são farmáveis (cada um recebe um
pid). Fazer Staking de uma posição cujo pool não está registrado reverte comInvalidPid. Este é o único lugar onde a atividade do agente depende de uma lista da PancakeSwap — e é no nível do pool, não do agente: qualquer Carteira pode fazer Staking em qualquer farm ativo. Verifique se o pool tem um farm ativo antes de construir uma estratégia de farming em torno dele. (Gerenciar uma posição via NonfungiblePositionManager — mint/coletar/rebalancear — não precisa de farm e funciona para todo pool.)
Staking — transfira o NFT de posição para o MasterChefV3 (
safeTransferFrom(owner, masterChefV3, tokenId)). O farm agora custodia o NFT.Harvest —
harvest(tokenId, to)reivindica CAKE pendente sem remover o Staking. UsebatchHarvestpara reivindicar em várias posições em uma tx.Withdraw / sair —
withdraw(tokenId, to)remove o Staking, colhe CAKE pendente e devolve o NFT à sua Carteira. Você deve fazer o withdraw antes de poder fazerdecreaseLiquidity/burn(as chamadas NFPM no §6 só funcionam em um NFT que sua Carteira possui).
Um rebalanceador para uma posição em farming portanto executa: withdraw → remover/coletar/queimar → mintar → safeTransferFrom de volta para o MasterChefV3.
8. Segurança, limites e isenções de responsabilidade
Leia isto antes de implantar um agente que move fundos reais.
Autonomia é irreversível. Um agente implantado assina e envia transações sem confirmação humana. Um bug, um gatilho ruim ou um feed de preços manipulado executa de verdade. Teste na testnet BSC, depois limite a exposição na mainnet (limites por negociação e por dia) antes de escalar.
Slippage e prazos são obrigatórios, não opcionais (§5). Um agente que os omite eventualmente será vítima de ataque sandwich.
Defesa contra manipulação de preço. Antes de agir, verifique o preço do pool em relação a uma referência independente e pule a execução se eles divergirem — seguro barato contra trading em um pool manipulado ou com pouca Liquidez.
Gas e financiamento. Mantenha a Carteira do agente financiada com BNB para gas; um agente sem fundos pode deixar uma posição no meio do rebalanceamento (removida mas não remintada). Reler o estado em cada execução (§4) permite que ele se recupere no próximo tick.
Tokens Scaled-UI / RWA. Alguns tokens BSC (ex.: Binance Stock Tokens) usam multiplicadores de UI onchain (ERC-8056). Os valores brutos onchain diferem dos valores exibidos. Se seu agente negocia esses tokens, faça todo cálculo contratual em unidades brutas e aplique o multiplicador apenas para exibição humana.
Você é responsável pelo seu agente. Os pools da PancakeSwap são contratos sem permissão; implantar um agente autônomo contra eles é sua decisão e seu risco. Este guia é referência técnica, não conselho financeiro, e a PancakeSwap não faz nenhuma garantia sobre os resultados.
9. Referência
@pancakeswap/smart-router— roteamento + calldata de Swap (os melhores exemplos no repositório estão no README)@pancakeswap/v3-sdk—Pool,Position,NonfungiblePositionManager,Multicall, matemática de tick/preçoBNB Agent Studio — descrição, criação e implantação do agente (documentação BNB)
Endereços de implantação PancakeSwap — lista canônica de contratos (verifique antes de usar)
ERC-8056 (Scaled UI Amount) — https://github.com/bnb-chain/BEPs/pull/677
Last updated
Was this helpful?