PaperTrade e Hyperliquid: uma investigação sobre negociações sintéticas, cotações e saques

PaperTrade e Hyperliquid: uma investigação sobre negociações sintéticas, cotações e saques

Uma análise do PaperTrade mostra como uma variação de $4.40 no preço do ETH gerou um lucro de $13,224 em uma posição sintética com valor nocional de $10M.

23 de out. de 2026

A PaperTrade relatou tentativas de manipular os melhores preços de compra e venda (BBO) na Hyperliquid entre 10 e 11 de outubro de 2026. Essas cotações eram usadas para avaliar posições de negociação sintéticas. O projeto reconheceu as tentativas em 11 de outubro. A conta examinada nesta análise sacou 1,279,106.191184 USDC a mais do que depositou na plataforma.

A PaperTrade liquidava posições fechadas pelo ponto médio entre os melhores preços de compra e venda vigentes. Ao mesmo tempo, o ajuste para baixo no lucro, o chamado haircut, era calculado usando um tamanho de posição de referência fixo.

Endereços e suas funções

Todos os endereços abaixo estão na rede HyperEVM, que usa o chain ID 999.

RedeEndereçoFunção estabelecida
HyperEVM0x2025137a136bea7446deba681cbfc7cf1970840eA conta de negociação examinada nesta análise.
HyperEVM0x6cd5661646289fb6e65ea5c032310fded797d0a2O contrato proxy da exchange que registra posições, saldos e saques.
HyperEVM0xa9b4c7b7ca5835652d81e25739c870d49f39cc2eO contrato proxy do PriceOracle, o componente que busca os dados de preço.
HyperEVM0x3997ffc8cbd281d4fc8d0548e505ae2fbbbd985aA implementação do PriceOracle executada nas transações de abertura e fechamento da posição examinada.

Contexto

A PaperTrade oferecia negociação alavancada em posições sintéticas lastreadas pelo pool de liquidez Martingaler. Abrir uma posição criava uma exposição de negociação interna: a PaperTrade não fazia uma ordem de compra ou venda equivalente para o ativo real na Hyperliquid. Quando uma posição era fechada, seu resultado financeiro, o lucro ou prejuízo (PnL), era liquidado com os fundos do pool.

O PriceOracle buscava os melhores preços de compra e venda vigentes na Hyperliquid por meio de um mecanismo especial do sistema chamado precompile, no endereço 0x080e, e então calculava o ponto médio desses preços. Esse valor era usado como o preço de execução da negociação. Quando uma posição lucrativa era fechada, aplicavam-se uma faixa de limite, um ajuste de lucro para impacto assimétrico no preço e uma taxa sobre fechamentos lucrativos. Caso não houvesse liquidez suficiente para um pagamento, os pagamentos eram colocados em fila.

Assim, o preço vinha das melhores cotações da Hyperliquid, enquanto a posição sintética era lastreada pelo pool da PaperTrade. O valor do pagamento dependia do tamanho da posição, embora uma negociação do tamanho correspondente não necessariamente ocorresse no mercado pelo ponto médio utilizado.

Como os eventos se desenrolaram

Todos os registros de horário abaixo estão em Tempo Universal Coordenado (UTC). As quatro etapas descrevem a abertura e o fechamento da posição da conta examinada, sua negociação externa e seus saques.

1. Abertura da posição

Em 10 de outubro, às 21:41:36, a conta 0x2025137a136bea7446deba681cbfc7cf1970840e abriu uma posição comprada (long) em ETH, uma aposta na alta do preço do Ethereum, de número 72098. Isso ocorreu na transação 0xe639…f225.

Etapa 1 - registro de abertura de posição decodificado localmente, bloco 48,202,020, log de evento 4. Visualização: CertiK
Etapa 1 - registro de abertura de posição decodificado localmente, bloco 48,202,020, log de evento 4. Visualização: CertiK

2. Fechamento da posição

Seis minutos depois, às 21:47:36, a posição foi fechada na transação 0xb5bc…df42d. O registro de fechamento mostra um preço de saída de $2,510.85. Nesse período, o preço se moveu a favor da posição em cerca de 17.55 pontos-base.

O rastreamento histórico de chamadas mostra a sequência Exchange → PriceOracle → mecanismo do sistema para buscar as melhores cotações BBO 0x080e. Esse mecanismo retornou os valores 251080 e 251090 em unidades de $0.01, ou seja, uma cotação de compra de $2,510.80 e uma cotação de venda de $2,510.90. O PriceOracle retornou 251085, correspondente ao preço de $2,510.85 registrado quando a posição foi fechada com sucesso. Ambas as leituras de cotações BBO nessa transação mostram os mesmos valores.

O spread entre compra e venda foi de $0.10, cerca de 0.40 pontos-base. O valor de 17.55 pontos-base reflete o retorno da posição entre a entrada e a saída ao longo de seis minutos, não um desvio em relação a um preço de mercado independente. Nenhum dos dois valores, isoladamente, prova que a cotação foi anormal ou deliberadamente influenciada. Este exemplo mostra como funcionaram as regras de liquidação registradas. A negociação alavancada comum permanece uma explicação suficiente para esta transação específica.

Etapa 2 - Rastros históricos da dRPC salvos e renderizados localmente, incluindo a abertura e o fechamento da posição 72098. Visualização: CertiK
Etapa 2 - Rastros históricos da dRPC salvos e renderizados localmente, incluindo a abertura e o fechamento da posição 72098. Visualização: CertiK

Esta é a etapa em que o preço de entrada se transforma em pagamento. Os preços são expressos em unidades de $0.01, então a faixa de limiar, calculada com arredondamento para baixo até um número inteiro, é:

O resultado corresponde ao cálculo registrado no fechamento da posição. Os valores na tabela são arredondados para seis casas decimais; os cálculos intermediários foram realizados com precisão total.

Etapa do cálculoFórmulaValor, USDC
Lucro bruto após a faixa de limiar10,000,000 × m17,355.223523
Lucro ajustadoLucro bruto × coeficiente13,494.728986
Taxa sobre fechamento lucrativoLucro ajustado × 2%269.894580
Lucro líquido após a taxaLucro ajustado - taxa13,224.834407

Com os mesmos preços e parâmetros, uma hipotética posição de $500K teria gerado 661.241720 USDC após a taxa. A posição registrada de $10M gerou 20 vezes mais, enquanto a redução percentual do lucro decorrente do ajuste de impacto no preço permaneceu a mesma em ambos os casos, em 22.243992%.

Assim, uma movimentação de preço de $4.40 gerou um lucro de 13,224.834407 USDC na posição examinada. Nos cinco segundos antes do fechamento dessa posição, a conta não realizou nenhuma negociação de ETH que resultasse no preenchimento de uma ordem. Portanto, este exemplo estabelece como o pagamento foi calculado, mas não revela uma negociação manipulativa correspondente.

Um pump de 100x, um empréstimo de $75M e um rollback da blockchain: o que aconteceu com a Tectonic?5 de set. de 2026Leia mais

3. Negociação externa e liquidações repetidas

Entre 22:01:00 e 22:03:00, a mesma conta realizou 597 negociações de ETH na Hyperliquid: comprou 6,058.1450 ETH e vendeu 383.0414 ETH. O histórico mais completo coletado da conta contém 10,427 negociações de ETH, com um volume total de aproximadamente $231.84M.

O histórico da PaperTrade registra 337 posições de ETH fechadas, incluindo 296 fechadas com lucro. As posições lucrativas abrangeram seis tamanhos nocionais, de $500K a $10M. A exposição total foi construída ao longo de várias posições.

Etapa 3 - Resumo local dos registros de negociação da Hyperliquid e verificações de liquidação da PaperTrade, com os IDs de negociação originais mantidos na amostra. Visualização: CertiK
Etapa 3 - Resumo local dos registros de negociação da Hyperliquid e verificações de liquidação da PaperTrade, com os IDs de negociação originais mantidos na amostra. Visualização: CertiK

Dos 296 fechamentos lucrativos, 62 ocorreram dentro de um segundo de uma negociação de ETH feita pela mesma conta. Em 52 casos, a sobreposição temporal envolveu apenas negociações em que a conta atuou como maker, ou seja, forneceu liquidez ao mercado. Em outros 10 casos, houve negociações em que a conta atuou como taker, preenchendo ordens já colocadas. Esses últimos dez casos se enquadram em três transações de fechamento de posição dentro de dois segundos.

Por exemplo, a posição 69035 foi fechada com lucro em uma posição short, uma aposta na queda do preço, em $2,505.85, enquanto vendas taker em $2,505.80 foram preenchidas em tempo próximo. Em comparação, o fechamento da posição 71121 coincidiu no tempo com dez compras maker.

O rastro de transação reconstruído da posição 69035 mostra cotações de $2,505.80 e $2,505.90, cujo ponto médio é o $2,505.85 registrado. A transação da posição 71121 também mostra preços de $2,509.70 e $2,509.80, e o oráculo retorna o ponto médio de $2,509.75. Assim, as cotações de entrada reais dessas transações foram estabelecidas.

Testar uma influência deliberada no preço exige dados sequenciais de cotações em todo o mercado, de ordens colocadas e canceladas, bem como um preço de mercado independente para o mesmo período. Um timestamp correspondente, por si só, não é suficiente.

4. Saques

Durante o período examinado, cinco saques da Exchange corresponderam a registros de transação bem-sucedidos e a créditos de USDC na rede HyperCore.

Horário do saque, UTCValor, USDCTransação na HyperEVM
10 de outubro, 21:13:5917,961.1126120x9979…cd72
10 de outubro, 21:34:09131,739.2378440x9a27…3fbc
10 de outubro, 22:06:481,543,488.7920970x4162…23b0
10 de outubro, 22:13:21735,681.5022820x136e…abd6
11 de outubro, 02:10:3550,336.0492030x0223…ac48
Total sacado2,479,206.694038
Etapa 4 - Renderização local do maior saque, bloco 48,203,557, registro de evento 17, e o crédito correspondente na HyperCore. Visualização: CertiK
Etapa 4 - Renderização local do maior saque, bloco 48,203,557, registro de evento 17, e o crédito correspondente na HyperCore. Visualização: CertiK

O total de depósitos chegou a 1,200,100.502854 USDC, incluindo redepósitos de fundos previamente sacados. Subtraindo os depósitos do total de saques, obtém-se uma saída líquida da conta de 1,279,106.191184 USDC.

Ao mesmo tempo, o total de saques inclui capital inicial devolvido e fundos reutilizados.

Um ponto médio BBO sem verificação de preço de mercado independente

A ramificação decodificada do PriceOracle rejeita preços zerados e cotações inválidas nas quais o bid é maior que o ask e, em seguida, retorna o ponto médio atual das duas cotações. O código não contém nenhuma média de preços ao longo de um período nem uma verificação independente de desvio significativo em relação ao preço de mercado.

Essas verificações confirmam que as cotações têm um formato e uma relação válidos, mas não avaliam se há liquidez real suficiente para sustentar uma posição sintética do tamanho correspondente.

Código do oracle desmontado - leitura de cotações BBO
Código do oracle desmontado - leitura de cotações BBO

O percentual de ajuste não depende do tamanho da posição

A fórmula assimétrica de impacto no preço usa o parâmetro fixo referenceNotional, um valor nocional usado como base de cálculo, em vez do tamanho real da posição. Assim, o valor monetário do pagamento cresce com o tamanho da posição, mas o percentual de ajuste permanece o mesmo.

Para todos os seis tamanhos de posição, os resultados dos 296 fechamentos lucrativos correspondem à curva de cálculo documentada, com uma margem de até 0.000000001 USDC.

Documentação oficial de ajuste de lucro, salva em 19 de outubro, mostrando o uso de um valor nocional de referência fixo. A conclusão baseia-se na documentação, não no código-fonte Solidity verificado de forma independente e implantado no momento do incidente.
Documentação oficial de ajuste de lucro, salva em 19 de outubro, mostrando o uso de um valor nocional de referência fixo. A conclusão baseia-se na documentação, não no código-fonte Solidity verificado de forma independente e implantado no momento do incidente.

A resposta da PaperTrade e a devolução dos fundos

Em um comunicado de 11 de outubro, a PaperTrade reconheceu que, durante a madrugada, houve tentativas de manipular os melhores preços de compra e venda (BBO) de BTC e ETH na Hyperliquid. O projeto explicou que essas tentativas foram possibilitadas por limites de interesse aberto excessivamente flexíveis no lançamento da plataforma. Também informou que havia começado a reduzir os limites diretamente on-chain e no nível do relayer, o componente que repassa as solicitações de negociação.

A PaperTrade também afirmou que um dos usuários que obteve lucro devolveu quase todos os ganhos por meio de novas contas. A conta examinada registrou 30 liquidações subsequentes, que resultaram em perdas de 450,000 USDC. Essas perdas já estão incluídas no cálculo da saída líquida.

No entanto, as mudanças nos limites e a devolução dos fundos por meio de outras contas não foram confirmadas de forma independente.

#USDC#Ataque hacker#Ethereum#DeFi
Uma posição de $10M e um lucro de $13K: detalhando a mecânica de liquidação do PaperTrade