Liquidação e Vencimento
As opções na Hypercall são do estilo europeu e liquidadas financeiramente. No vencimento, as posições são liquidadas automaticamente com base no preço de referência do ativo subjacente, com o valor de liquidação creditado ou debitado na sua conta.
Horário de Vencimento
Na mainnet, os contratos SpaceX (SPCX) vencem às 16:00 ET na data de vencimento.
Na testnet, atualmente o vencimento ocorre às 08:00 UTC na data de vencimento.
No vencimento:
- Novas ordens são rejeitadas
- Ordens abertas são canceladas
- As posições entram no processo de liquidação
Ciclo de Vida do Instrumento
Os instrumentos passam por três estados:
| Estado | Descrição | Negociação |
|---|---|---|
| Ativo | Negociação normal | Habilitada |
| Vencido Aguardando Preço | Aguardando preço de liquidação do oráculo | Desabilitada |
| Liquidado | Liquidação concluída, posições encerradas | N/A |
Transições de Estado
- Ativo → Vencido Aguardando Preço: Horário de vencimento do contrato atingido
- Vencido Aguardando Preço → Liquidado: Preço de liquidação disponível e todas as posições liquidadas
Assim que um instrumento entra em Expired Pending Price, todas as ordens abertas são canceladas e novas ordens são rejeitadas com "Instrument has expired".
Preço de Liquidação
O preço de liquidação é um TWAP de 30 minutos (Time-Weighted Average Price, ou preço médio ponderado pelo tempo) do preço de índice do Oráculo da Hyperliquid para o ativo subjacente.
| Parâmetro | Valor |
|---|---|
| Fonte do preço | Oráculo da Hyperliquid (preço de índice) |
| Janela do TWAP | 30 minutos |
| Fim da janela | Horário de vencimento do contrato |
O oráculo começa a amostrar 30 minutos antes do vencimento e calcula o TWAP no horário de vencimento.
A liquidação requer o TWAP finalizado. Se esse preço finalizado não estiver disponível no momento do vencimento, o instrumento permanece em Expired Pending Price e novas tentativas são feitas automaticamente. A negociação já está desabilitada nesse estado, mas os créditos e débitos de caixa são lançados apenas após a existência do preço finalizado do oráculo.
Cálculo do Valor de Liquidação
A liquidação é calculada como o valor intrínseco da opção no vencimento:
Opções de Compra (Calls):
Opções de Venda (Puts):
Onde:
- = Preço de liquidação (TWAP de 30 min)
- = Preço de exercício (strike)
- = Tamanho da posição (com sinal: positivo para long, negativo para short)
Exemplos
Call Long (ITM):
- Posição: Long 2 BTC-100000-C
- Preço de liquidação: $105.000
- Valor intrínseco: max(0, 105000 - 100000) = $5.000
- Valor de liquidação: 10.000** (creditado)
Call Short (ITM):
- Posição: Short 2 BTC-100000-C
- Preço de liquidação: $105.000
- Valor de liquidação: 10.000** (debitado)
Put Long (OTM):
- Posição: Long 1 BTC-100000-P
- Preço de liquidação: $105.000
- Valor intrínseco: max(0, 100000 - 105000) = $0
- Valor de liquidação: $0 (vence sem valor)
Processo de Liquidação
Quando a liquidação ocorre:
- Preço obtido: O oráculo retorna o TWAP de 30 minutos
- Valor calculado: O valor intrínseco é calculado para cada posição
- Caixa atualizado: O valor de liquidação é adicionado (long ITM) ou subtraído (short ITM) do saldo da conta
- Posição removida: A posição é encerrada e removida do portfólio
- Evento emitido: Mensagem
PositionExpiredenviada via WebSocket
A liquidação é processada de forma atômica por posição, com garantias de idempotência. Reprocessamentos ou reinicializações não podem causar liquidação duplicada.
Eventos WebSocket
PositionExpired
Enviado quando uma posição é liquidada:
{
"type": "PositionExpired",
"wallet_address": "0x...",
"symbol": "BTC-20250131-100000-C",
"position_size": 2.0,
"settlement_price": 5000.0,
"settlement_value": 10000.0,
"timestamp": 1738310400000
}
| Campo | Descrição |
|---|---|
position_size | Tamanho da posição com sinal (positivo = long, negativo = short) |
settlement_price | Valor intrínseco por contrato |
settlement_value | Valor total da liquidação financeira |
MarketExpired
Enviado quando um instrumento transita para Expired Pending Price:
{
"type": "MarketUpdate",
"symbol": "BTC-20250131-100000-C",
"status": "MARKET_EXPIRED",
"timestamp": 1738310400000
}
Endpoints da API
Obter Status do Instrumento
GET /instruments/{symbol}
Retorna o status atual do instrumento (ACTIVE, EXPIRED_PENDING_PRICE ou SETTLED).
Obter Histórico de Liquidações
GET /settlement/history?wallet=0x...
Retorna os registros de liquidação da sua conta.
Resposta:
{
"success": true,
"data": [
{
"symbol": "BTC-20250131-100000-C",
"position_size": 2.0,
"settlement_price": 5000.0,
"settlement_value": 10000.0,
"settled_at": 1738310400000
}
]
}
Tratamento de Falhas
Oráculo Indisponível
Se o oráculo não puder fornecer um preço de liquidação no vencimento:
- O instrumento permanece no estado
Expired Pending Price - O sistema tenta novamente a cada 30 segundos
- O alerta de produção é acionado se a espera pelo preço finalizado for prolongada
A negociação é bloqueada imediatamente no vencimento, independentemente da disponibilidade do oráculo.
Preço Finalizado Atrasado
Se o TWAP finalizado estiver atrasado:
- A liquidação é adiada
- O sistema aguarda o preço de liquidação finalizado do oráculo
- Os usuários podem ver o instrumento permanecer em
Expired Pending Price - A liquidação financeira aparece depois que o caminho de nova tentativa aplica o preço finalizado
Reinicialização do Sistema
O estado da liquidação é persistido no banco de dados. Se o sistema reiniciar:
- Os instrumentos vencidos são identificados a partir do banco de dados na inicialização
- A liquidação continua automaticamente
- As garantias de idempotência evitam liquidação duplicada
Parâmetros
| Parâmetro | Valor | Descrição |
|---|---|---|
| Intervalo de verificação de vencimentos | 60 segundos | Frequência com que o sistema verifica vencimentos |
| Janela do TWAP | 30 minutos | Janela de média do preço de liquidação |
| Intervalo de nova tentativa de liquidação | 30 segundos | Frequência de nova tentativa quando o preço está indisponível |
| Limite de alerta de preço finalizado | 30 minutos | Aviso se um instrumento vencido ainda estiver aguardando o preço finalizado |
| Limite de alerta de pagamento pendente | 1 hora | Alerta crítico se registros de pagamento de liquidação permanecerem não aplicados |
Boas Práticas
- Monitore os vencimentos: Acompanhe as datas de vencimento das suas posições pelo endpoint de portfólio
- Planeje com antecedência: Encerre posições antes do vencimento se quiser evitar a liquidação
- Verifique os preços de liquidação: Confirme que o preço do oráculo corresponde às suas expectativas
- Assine o WebSocket: Receba eventos
PositionExpiredem tempo real para notificação imediata - Mantenha uma reserva de margem: Garanta margem suficiente para possíveis liquidações de posições short ITM
Liquidação On-Chain
Na mainnet, os preços de liquidação são publicados on-chain após o cálculo:
- O oráculo calcula o TWAP de liquidação e publica o preço final de vencimento.
- O contrato da Exchange pode verificar o preço de liquidação publicado on-chain.
- Feeds do oráculo em tempo real não são transmitidos on-chain. Os preços finais de liquidação são a referência on-chain para o vencimento.
Veja também:
- Liquidação: O que acontece se a margem for insuficiente
- Margem de Portfólio: Como as posições afetam a margem
- Margem Padrão: Cálculo de margem por posição