Como um preço de referência é construído
A API da CantonCap recalcula o preço de referência de cada ativo cerca de uma vez por minuto, em cada moeda que publica. Os dados de entrada são os preços que as plataformas públicas da Canton cotam para o ativo: o ticker de cada mercado ou, quando um mercado não publica ticker, o estado do seu pool. Um preço cotado em outro ativo, como uma stablecoin ou a Canton Coin, é convertido pelo próprio preço de referência desse ativo, de modo que nenhuma stablecoin é considerada como valendo exatamente um dólar.
Um preço de referência é construído apenas com observações recentes, com liquidez suficiente para serem significativas e alcançáveis na moeda solicitada. O estado dos pools das plataformas, os níveis executáveis do livro de ofertas e as negociações liquidadas nas plataformas podem, cada um, atuar como constituinte direto. Referências externas rotuladas por moeda podem converter essas observações para uma moeda de destino, mas normalmente não se tornam, por si só, constituintes independentes do preço.
Uma cotação só conta dentro dos limites definidos pelo operador: liquidez suficiente por trás dela, distância das demais cotações não maior do que o limite de outliers permite, spread e impacto no preço dentro dos limites, um teto para o quanto uma única plataforma pode mover o resultado, um limite de etapas de conversão e uma idade máxima. As cotações aprovadas são ponderadas em um único número. Cada ativo é calculado separadamente, então uma falha em um nunca atrasa outro.
O preço em USD da Canton Coin é a mediana de três referências independentes de exchanges centralizadas, Bybit CC/USDT, OKX CC/USDT e Kraken CC/USD, com as pernas em USDT convertidas pela taxa USDT/USD da Kraken como decimal exato. Ele é publicado como um único agregado identificado que carrega suas três fontes e funciona tanto como aresta de conversão quanto como constituinte direto.
A base ao lado de cada preço
Cada página de ativo mostra o que as plataformas estão cotando: o preço mais recente de cada plataforma para o ativo, o spread entre o menor e o maior, e a mediana deles. Só são usados os mercados em que o ativo é a base do par, no ativo de cotação com mais mercados, porque preços em ativos de cotação diferentes não podem compartilhar um eixo.
Com um número par de plataformas, a mediana é a menor das duas cotações centrais, e não a média delas, então é sempre um preço que uma plataforma realmente cotou. A base é uma verificação pública do preço de referência, não o cálculo em si, cujos pesos e exclusões são registros administrativos.
Origens do preço
- Pool de AMMvenue_pool
- Derivado das reservas on-chain do pool em uma plataforma da Canton.
- Livro de ofertasvenue_book
- Derivado dos níveis executáveis do livro de ofertas em uma plataforma da Canton.
- Negociação na plataformavenue_trade
- Obtido das negociações liquidadas no registro de negociações da plataforma.
- Referência externaexternal_reference
- Uma referência expressa em uma moeda, usada para converter, e não para definir o preço diretamente.
- Derivadoderived
- Calculado a partir de outras observações admitidas, e não observado diretamente.
Contra o que cada observação é verificada
Antes que uma observação possa sustentar um número publicado, ela é avaliada em 15 verificações. Uma falha é registrada como um incidente de qualidade que identifica a etapa e a verificação.
Esses registros são administrativos, não públicos: a API pública publica o valor que permanece e o horário da última atualização, não a trilha de auditoria. O que um consumidor público pode inspecionar diretamente é o spread entre as plataformas; veja qualquer página de ativo.
- Validade decimaldecimal_validity
- O valor informado não pôde ser interpretado como um decimal exato.
- Validade do horáriotimestamp_validity
- A observação veio sem horário ou com um horário implausível.
- Resolução de identidadeidentity_resolution
- Não foi possível vincular o registro a um ativo ou mercado conhecido.
- Validade do preçoprice_validity
- O preço não era positivo ou estava fora dos limites que o instrumento pode assumir.
- Validade das reservasreserve_validity
- As reservas do pool eram incompatíveis com a curva que dizem seguir.
- Livro cruzadobook_crossed
- A melhor oferta de compra superou a melhor oferta de venda, por isso o livro não era internamente consistente.
- Livro vaziobook_empty
- Um ou os dois lados do livro não tinham níveis para formar um preço.
- Lacuna de sequênciasequence_gap
- Os números de sequência da fonte pularam, por isso pelo menos uma atualização foi perdida.
- Desatualizaçãostaleness
- A observação era mais antiga que a janela de atualidade deste cálculo.
- Preço discrepanteprice_outlier
- O preço ficou fora da faixa de dispersão aceita em relação aos seus pares.
- Salto de ofertasupply_jump
- A oferta informada do token variou entre observações mais do que a emissão permite.
- Invariante OHLCohlc_invariant
- Um candle violou os próprios invariantes: máxima abaixo da abertura, mínima acima do fechamento ou algo semelhante.
- Evento duplicadoduplicate_event
- O mesmo evento da fonte chegou duas vezes e foi contado uma vez.
- Conciliação de volumevolume_reconciliation
- O volume informado não batia com as negociações observadas na mesma janela.
- Dependência indisponíveldependency_availability
- Um dado do qual este número depende não estava disponível quando ele foi calculado.
Liquidez e pontuação de liquidez
A liquidez de um pool de AMM é o valor em USD de suas reservas: cada reserva ao preço de referência do seu ativo, associada pela identidade na Canton. Uma reserva cujo ativo não tem preço deixa o número vazio, em vez de estimado; um pool vazio vale zero. Já um livro de ofertas é medido pela profundidade, então um mercado de livro de ofertas não tem um número único de liquidez.
A profundidade dentro de 2% é o valor em USD que pode ser comprado ou vendido antes que o preço se afaste 2% da referência: em um livro de ofertas, ela é lida dos próprios níveis do livro; em um AMM, é modelada a partir do estado armazenado do pool, com a taxa incluída. Uma profundidade modelada mede a curva; não é uma cotação nem uma promessa de execução.
A pontuação de liquidez avalia um mercado de 0 a 100 pelo custo de negociar nele. A API simula compras e vendas de $100, $500, $1.000, $5.000 e $10.000 contra o estado atual do mercado, sem taxas, e transforma o impacto no preço, e se cada uma poderia ser executada, em uma única pontuação. Um mercado sem dados suficientes não tem pontuação, o que nunca é o mesmo que uma pontuação zero.
A pontuação de um ativo é a média das suas três maiores pontuações de mercado, de qualquer lado do par, ou de todos os seus mercados pontuados se tiver menos, de modo que um ativo com um único mercado pontuado assume a pontuação desse mercado. A de uma plataforma é a média dos seus mercados. A visualização “Mais líquidos” classifica os ativos pela pontuação do ativo.
Volume de 24 horas
O volume tem uma única definição em todo o site, então uma tabela e um total não podem divergir. O volume de 24 horas em USD de um mercado é a medição de atividade da API para ele, quando existe; caso contrário, o volume em USD que a plataforma informa no ticker; e, se também não houver, o volume no ativo de cotação ao preço de referência desse ativo. O volume de um ativo é a soma de todos os mercados em que ele é negociado, de qualquer lado do par; o de uma plataforma é a soma dos seus mercados; o da rede conta cada mercado uma única vez.
A medição de atividade escolhe um valor nocional para cada período, preferindo USD derivado de preços ancorados em exchanges com no máximo três minutos, e nunca soma o volume informado por uma plataforma ao volume observado em suas negociações. Ela é agregada a partir de intervalos de uma hora, com um novo snapshot a cada cinco minutos.
Um número de volume traz suas ressalvas. Quando uma atualização não tem valor utilizável, a API mantém o mais recente com seu próprio horário; quando esse horário passa de uma hora, o número aparece esmaecido com o horário a que se refere, nunca como atual. Um número parcial cobre apenas parte das 24 horas e informa isso, e uma estimativa é marcada como tal. O desconhecido nunca aparece como zero, e um total que contém números antigos, parciais ou estimados informa quantos são.
O volume informado pela Rocky aparece nos próprios mercados dela, esmaecido e com o motivo, e fica fora de todos os totais até ser conciliado com suas negociações: os primeiros números chegaram a várias vezes a oferta dos ativos que ela lista.
Avaliação totalmente diluída
O FDV é o produto decimal exato do preço de referência admitido e da observação de oferta total mais recente compatível com a política, publicada por um registrador aprovado. Quando a observação de oferta é mais antiga que o prazo máximo aceito pela metodologia, ou quando nenhum registrador aprovado a publicou, o FDV não é calculado e o motivo é informado no lugar do número.
A oferta total é o número que um registrador aprovado publica para o instrumento, mantido exatamente como informado: nunca arredondado, reescalado ou interpolado. Uma oferta que varia entre duas observações mais do que a emissão permite é sinalizada pela verificação de saltos de oferta. A oferta circulante e a máxima não são publicadas.
Capitalização de mercado
A capitalização de mercado não é publicada. Ela exige um número de oferta circulante, e não existe uma metodologia revisada de oferta circulante para instrumentos da Canton: distinguir a oferta circulante da oferta bloqueada, mantida em tesouraria e contratualmente restrita é uma questão de governança, não de dados.
A API informa isso no payload em vez de retornar um campo vazio: a resposta de métricas globais traz market_cap.semantics = "unavailable_circulating_supply". Até que essa metodologia exista, uma capitalização de mercado para um ativo da Canton é um palpite, e este produto não publica palpites.
Posição e proporções
A posição ordena todos os ativos listados com base no FDV, na liquidez de seus pools e no volume móvel de 24 horas. Ela é calculada uma única vez sobre toda a listagem, então um ativo mantém a mesma posição em todas as páginas, em todas as moedas e em qualquer ordenação.
Liquidez / FDV divide a liquidez em USD dos pools de AMM de um ativo pelo seu FDV, contando cada pool elegível uma vez. A profundidade de livros de ofertas não entra no cálculo. Não há limite máximo: uma avaliação pequena com pools profundos pode passar de 100%.
Volume / FDV divide o melhor volume móvel de 24 horas disponível do ativo em USD, informado ou de negociações observadas, mas nunca a soma dos dois, pelo seu FDV: a parcela da avaliação que trocou de mãos em um dia.
Qualquer uma das proporções é omitida quando o FDV está ausente, desatualizado ou é zero, ou quando não há o que dividir: um ativo sem pool não tem proporção de liquidez. Cada uma traz sua cobertura, então um número construído com parte dos mercados informa isso.
Ambas são lidas em uma única escala de quatro faixas, indicadas pelas barras ao lado de cada número.
| Faixa | Intervalo | Liquidez / FDV | Volume / FDV |
|---|---|---|---|
| Escassa, Calmo | Abaixo de 1% | Escassa | Calmo |
| Rasa, Leve | 1% a 5% | Rasa | Leve |
| Moderada, Ativo | 5% a 10% | Moderada | Ativo |
| Profunda, Intenso | 10% ou mais | Profunda | Intenso |
Gráficos: candles e linha
Os candles mostram abertura, máxima, mínima e fechamento do ativo em USD, agregados pela API a partir dos mercados com que ela precifica o ativo, com o volume embaixo quando publicado. Os botões escolhem o que um candle cobre: 15m, 1h, 4h, 24h, 1W ou 1M. Os três mais curtos mostram cerca de duzentos candles para trás, 24h mostra um ano, e 1W e 1M mostram todo o histórico.
A API fornece candles de até uma semana, então um candle mensal é construído a partir dos diários, por mês do calendário em UTC: abre na primeira abertura do mês, fecha no último fechamento, abrange a máxima mais alta e a mínima mais baixa, e soma o volume publicado nos seus dias.
Os candles são unidos em um registro contínuo: cada um abre onde o anterior fechou, e um intervalo sem negociações é um candle plano no fechamento anterior, sem volume, em vez de uma lacuna. A máxima e a mínima de um candle se ampliam para conter a abertura, então o corpo nunca sai do pavio.
A linha mostra o próprio preço de referência, em 24h, 1W, 1M, 1Y ou Tudo, com um ponto por intervalo, o preço mais recente dentro dele: a cada 15 minutos em 24 horas, a cada hora em uma semana, a cada 4 horas em um mês e diariamente em um ano ou mais. Ela fica verde acima do primeiro ponto do período e vermelha abaixo dele.
Um gráfico só volta até onde a API tem histórico e o acesso do site permite, e é lido em janelas de no máximo 31 dias. Quando o histórico de uma fonte começa no momento em que a CantonCap passou a observá-la, períodos anteriores não existem. O minigráfico em cada linha da tabela mostra os preços de referência do ativo nas últimas 24 horas, de hora em hora.
Frequência de atualização e horários
As plataformas são lidas a cada 30 segundos a 5 minutos, conforme o que cada uma permite, e os preços de referência são recalculados cerca de uma vez por minuto. O site reutiliza cada resposta por um curto período: 30 segundos para o status das fontes, um minuto para preços, listagens e mercados, e cinco minutos para volume, plataformas, gráficos e minigráficos. Uma tabela de mercado aberta verifica novos preços a cada 45 segundos.
Todos os horários que a API publica estão em UTC, e o site exibe seus horários em UTC. Um preço calculado traz o horário em que foi calculado; uma medição sobre uma janela traz o fim da janela que cobre, não o horário em que foi lida. As janelas incluem o início e excluem o fim. A idade de cada número aparece ao lado dele, e o app marca os preços como atrasados quando o mais recente tem meia hora. O gráfico do app mostra o eixo no horário do próprio celular.
Dados de exemplo e dados em tempo real
Cada número é lido da API da CantonCap quando a página é gerada, e cada leitura registra se a resposta veio em tempo real. Em produção, uma API inacessível gera um erro ou uma ausência declarada, nunca uma página de números inventados.
Builds de desenvolvimento e de prévia podem mostrar um conjunto fixo de dados de exemplo quando a API está fora de alcance. Uma página gerada a partir dele sempre traz um aviso de dados de exemplo explicando o motivo, e seus números são ilustrativos, não um feed de mercado. Dados de exemplo nunca são apresentados como reais.
Quem acompanha, sentimento e publicações de emissores
“N acompanhando” conta os membros que mantêm um ativo nos favoritos no momento, considerando apenas as listas de membros conectados. É um total; nenhuma lista é exibida. O site atualiza esse número no máximo uma vez por minuto.
O medidor de sentimento conta membros, cada um uma única vez por ativo. O voto otimista ou pessimista de um membro na página do ativo vale por sete dias a partir de quando foi dado; um membro que não votou é contado pelo viés da sua publicação principal mais recente sobre o ativo nos últimos sete dias, sem contar respostas, publicações ocultas e publicações excluídas. A parcela otimista dos membros que tomaram partido é posicionada em um mostrador de cinco zonas iguais, de muito pessimista a muito otimista. É uma contagem de opiniões, não um sinal, e fica vazio quando ninguém indicou viés.
Um feed de emissor mostra as publicações que um emissor ou provedor do ativo faz no X, apenas quando a API lista uma associação aprovada entre esse emissor e o ativo; nenhum feed é escolhido pela correspondência de um símbolo. As publicações aparecem como foram publicadas, com o horário em UTC e um link para o original. Uma publicação editada mostra a versão mais recente, e publicações retidas, protegidas e excluídas são removidas. Uma página aberta verifica novamente a cada 30 segundos e nunca mostra uma publicação de uma resposta com mais de 90 segundos. A CantonCap não endossa o que os emissores publicam.
Cobertura e escopo
A Canton aplica privacidade em nível de subtransação: uma parte recebe somente os trechos de uma transação que lhe dizem respeito. Uma plataforma visível para uma chave de integrador não é visível publicamente, e um registro de execução com escopo de parte não é visível para mais ninguém. Por isso, cada número traz o escopo sob o qual foi observado.