Como funciona por dentro
Visão geral da arquitetura
O protocolo é um pequeno conjunto de contratos na HyperEVM que lê preços da HyperCore, a camada da Hyperliquid, por meio de precompiladas e movimenta USDC nela. Esta página mostra os contratos e como eles se encaixam.
Contratos (HyperEVM)
- Exchange: o contrato de trading. Ele guarda cada saldo, abre e fecha posições, acerta resultados, opera a fila de pagamentos e mantém o LP e as contas de taxas. Um ponto de entrada enxuto delega a quatro bibliotecas (trading, fila, fundos, administração). Aberturas e fechamentos chegam só pelo BatchExecutor; saques e chamadas de manutenção podem vir de qualquer pessoa.
- BatchExecutor: a única porta de entrada do relayer. Aceita lotes só das chaves de relayer configuradas e repassa cada chamada assinada, apenas para uma lista fixa de funções.
- SessionKeyManager: registra chaves de sessão, verifica cada assinatura e cada nonce para o Exchange e cuida da revogação. O registro chega pelo relayer; a revogação também pode ser uma chamada direta da sua carteira.
- Token, Staking, Tokenomics: o token BACK (recurso de transferência desativado no lançamento), o contrato de staking com seu acumulador de recompensas e o contrato que calcula e cunha BACK pelas perdas e acompanha o LP contábil.
- BuilderRegistry: os builders aprovados e a taxa única de builder, limitada a 15%. Não é atualizável: substituí-lo é uma nova implantação para a qual o SessionKeyManager passa a apontar.
- DepositProxyFactory e DepositProxy: derivam o endereço de depósito determinístico de cada conta e implantam o pequeno contrato por trás dele, que só pode enviar USDC na HyperCore para o Exchange. Nenhum dos dois é atualizável: um endereço de depósito nunca deve mudar.
- Lentes e PriceOracle: visões somente leitura sobre o Exchange e a HyperCore, e um auxiliar de preços, para apps e serviços. O Exchange lê as precompiladas diretamente, não por meio deles.
Os endereços estão em endereços dos contratos.
Precompiladas (HyperCore)
- BBO
0x000000000000000000000000000000000000080e: a melhor oferta de compra e a melhor oferta de venda; o ponto médio entre elas é o preço de execução. - Mark
0x0000000000000000000000000000000000000806: o preço de marcação da Hyperliquid, lido pelas proteções de preço inativas e usado como alternativa quando um mercado é retirado. - Oracle
0x0000000000000000000000000000000000000807: o preço do oráculo da Hyperliquid, com os mesmos usos do preço de marcação. - CoreWriter
0x3333333333333333333333333333333333333333: o contrato de sistema que envia ações para a HyperCore. Os proxies de depósito o usam para enviar USDC para a conta do Exchange na HyperCore, e o Exchange o usa para pagar os saques na sua conta da HyperCore.
As precompiladas de saldo permitem que o Exchange confira se um depósito realmente chegou antes de creditá-lo (Depósitos: proxies CREATE2).
Uma operação de ponta a ponta
Você assina uma intenção com sua chave de sessão e o app a envia ao relayer, que a confere e coloca na fila. O relayer junta as intenções da fila num lote e o envia ao BatchExecutor, que chama o Exchange uma vez por intenção. O Exchange verifica a assinatura pelo SessionKeyManager, lê o BBO para obter o preço de execução, abre a posição ou acerta o fechamento com o LP, atualiza seu saldo e, numa perda, faz o Tokenomics cunhar BACK para você. Intenções de muitas contas dividem uma transação, mas cada uma é acertada separadamente: o relayer marca cada chamada como autorizada a falhar, então uma intenção que falha não interrompe as outras.
Frontends
Toda abertura e todo fechamento são enviados pelo nosso relayer. Outro frontend pode produzir as mesmas assinaturas e enviá-las pela API do relayer (API de intenções), mas não pode enviar aberturas nem fechamentos direto aos contratos.
Serviços off-chain
| Serviço | Função |
|---|---|
| Intake do relayer | Aceita intenções assinadas, confere e reserva saldos. |
| Motor do relayer | Agenda as intenções da fila e as envia em lotes. |
| Indexador | Acompanha a rede bloco a bloco, confere os invariantes contábeis a cada bloco e transmite as atualizações das contas. |
| API de leitura e stream | Servem ao app o estado dos mercados, o histórico e o stream ao vivo da conta. |
| Keepers | Liquidam, coletam a fila, distribuem as recompensas de staking, ajustam os tetos de contratos em aberto, trocam a curva de pagamento conforme o cronograma e reexecutam cunhagens adiadas. |
| Sweeper e worker de fundos | Varrem os depósitos e encaminham os saques para outras redes. |
Nenhum desses serviços pode assinar por você nem mover seus fundos sem a sua assinatura. Se eles pararem, o trading para, mas o seu saldo livre continua podendo ser sacado pela sua carteira.
Governança
O dono de cada contrato atualizável é um timelock: uma atualização ou mudança de parâmetro é agendada pelo multisig de governança e só pode ser executada depois de 2 dias. Um segundo timelock, com um atraso de 7 dias, controla quem detém os papéis do primeiro. Um multisig guardião pode agir na hora numa emergência, dentro dos limites estreitos listados em Riscos.