5.4.0
Primeira versão públicaO site público entra no ar: um mecanismo de taxas com detalhamento completo, um catálogo de canais de pagamento com limites reais, uma arquitetura de URL baseada em corredores e as páginas de transparência que tornam tudo isso verificável. Este registro começa aqui, na data real de publicação.
Adicionado(21)
src/lib/pricing.ts
Mecanismo de taxas com detalhamento completo. O custo da rede é cobrado em espécie sobre o ativo antes da conversão; em seguida, nossa margem e a taxa do canal têm cada uma sua própria linha. Uma invariante contábil verifica em cada cotação que o bruto menos a soma das linhas é exatamente igual ao líquido, até a unidade menor: se não fechar, levantamos um erro e recusamos a cotação, em vez de deixar passar uma margem oculta.
src/lib/pricing.ts
Política de spread publicada e aplicada pelo código: 90 pontos-base base, mais 35 em ativo volátil, mais 25 em corredor beta, menos 15, 30 ou 45 pontos-base em três faixas de volume. Nenhuma outra cobrança existe do nosso lado.
src/lib/pricing.ts
Entrada reversa: você pode digitar o que deseja RECEBER e o depósito necessário é resolvido por busca binária. Taxas fixas tornam a função não linear — uma inversão algébrica erraria por alguns centavos toda vez.
src/lib/money.ts
Todo valor monetário viaja como um inteiro de unidades menores (bigint) e toda taxa como um Decimal. Nenhum valor passa por um float de JavaScript, onde 0,1 + 0,2 não é 0,3.
src/lib/rates.ts
A atualização da taxa é verificada antes de cada cotação firme. Além da idade máxima tolerada pela fonte, o mecanismo levanta um erro de taxa desatualizada e recusa a cotação. Servir um preço desatualizado de um cache é tratado aqui como um bug financeiro, não de desempenho.
src/app/api/quote/route.ts
Endpoint público de cotação. Entrada validada por esquema, resposta sem armazenamento em cache, detalhamento completo linha por linha com a taxa de mercado, a taxa efetiva e a diferença total em pontos-base. Violações de limite do canal são retornadas no corpo da resposta, em vez de como erro HTTP, com o limite exato.
src/data/payout-rails.ts
Catálogo de métodos de pagamento que carrega, para cada um, a moeda de liquidação, os países atendidos, atrasos p50 e p95, regras de dias úteis e de corte, valores mínimo e máximo em unidades menores, taxas reais e o esquema de campos do beneficiário.
src/data/corridors.ts
Arquitetura de URL baseada em corredores. Um canal multinacional gera uma única página por ativo: SEPA é idêntico na França e na Bélgica; duas páginas diriam a mesma coisa. Um canal local — PIX, SPEI, M-Pesa, NIP, Interac — gera uma página por país, porque o país carrega o formato do identificador, os limites e o tratamento fiscal. A matriz bruta de ~2.200 combinações cai por uma ordem de magnitude, e cada página sobrevivente carrega apenas fatos que só ela pode carregar.
src/data/corridors.ts
Ondas de lançamento e um portão de indexação. Um corredor só é oferecido para indexação quando o conteúdo de sua onda está realmente escrito; os outros permanecem acessíveis e funcionais, mas fora do índice. Não pedimos a um mecanismo de busca para indexar uma página que ainda não escrevemos.
src/data/assets.ts
Catálogo de ativos com decimais da unidade base, redes aceitas, o depósito mínimo abaixo do qual as taxas de rede consomem a operação e a duração da trava de taxa — mais longa em uma stablecoin do que em um ativo volátil.
src/data/networks.ts
Catálogo de redes com o número de confirmações exigido, tempo médio de bloco, o padrão de validação de endereço e, para XRP, Stellar e TON, o campo de memo cuja omissão perde os fundos.
src/data/geo.ts
Dados geográficos de referência: países abertos, países em preparação e países recusados com o motivo — sanções internacionais, medidas restritivas ou risco inaceitável de lavagem de dinheiro. O motivo é publicado país por país.
src/config/company.ts
Registro único de alegações factuais sobre a empresa. Nome legal, registro, ano de incorporação, status regulatório, volumes, avaliações: cada valor é preenchido ou marcado como pendente — e um valor pendente nunca é exibido. O site só pode afirmar o que é calculado a partir de seus próprios dados.
src/components/JsonLd.tsx
Dados estruturados que omitem todo campo não preenchido. Nenhuma data de fundação, número de licença ou classificação agregada é declarada aos mecanismos de busca até que sejam reais.
src/i18n/routing.ts
Prefixo de localidade em todos os idiomas, inclusive francês. Servir a mesma página em "/" e "/fr/" sempre acaba em duplicatas; a simetria remove todos os casos especiais nas tags hreflang e canonical.
src/app/[locale]/statut
Página de status do serviço: um componente por canal de pagamento e por rede monitorada, a descrição exata do que a sonda verificará, a política de gravidade e o modelo de relatório de incidente. Nenhuma porcentagem de disponibilidade aparece lá até que seja medida.
src/app/[locale]/docs
Documentação da API pública: autenticação, paginação, idempotência, catálogo de erros e webhooks assinados. As respostas de exemplo são respostas reais do endpoint de cotação, não maquetes.
src/app/[locale]/reclamations
Procedimento escrito de reclamações: o que separa uma reclamação de um pedido de suporte, os três níveis de escalonamento, os prazos que cumprimos e o que acontece se a resposta não o satisfizer.
src/app/[locale]/presse
Kit de imprensa: logotipos para download gerados a partir de código, paleta com valores exatos, descrições curtas e longas prontas para citação. Nenhuma cobertura de imprensa é listada, por falta de cobertura a citar.
src/app/[locale]/affiliation
Programa de afiliados pago sobre a margem efetivamente coletada, nunca sobre o volume bruto: um parceiro não ganha nada ao impulsionar um corredor que custa mais ao cliente.
src/app/[locale]/plan-du-site
Mapa do site gerado a partir dos dados, com um filtro de busca instantânea. Toda página publicada aparece lá: se uma página existe e está faltando neste mapa, isso é um defeito.
Segurança(3)
src/lib/rates.ts
Proteção de produção: a fonte de taxa determinística usada em desenvolvimento não pode iniciar em produção. O processo se recusa a iniciar em vez de cotar preços congelados.
src/middleware.ts
Recusa geográfica antes de qualquer renderização, com um HTTP 451 explícito em vez de um 404: quando recusamos, dizemos por quê. A recusa é re-verificada no servidor na criação do pedido, já que um endereço IP sozinho não prova nada.
next.config.ts
Cabeçalhos de segurança em cada resposta: HSTS com preload, negação de framing, bloqueio de MIME sniffing, política de referrer restrita, isolamento de origem cruzada e permissões de microfone, geolocalização e pagamento desativadas.
Política(5)
src/data/payout-rails.ts
Canais de cobrança — iDEAL, Bizum, BLIK, TWINT, Satispay, MB WAY, QRIS — são declarados indisponíveis com seu motivo, em vez de ocultados. Eles permitem pagar um comerciante, não receber fundos; cada um aponta para o canal que usamos em seu lugar.
src/data/payout-rails.ts
Zelle está marcado como permanentemente indisponível: suas regras proíbem contratualmente o desembolso comercial por terceiros. Nenhum provedor pode enviar fundos por ele de forma compatível para nós, e dizer isso é melhor do que deixar as pessoas com esperança.
src/data/payout-rails.ts
Canais construídos, mas fechados, carregam seu motivo regulatório exato: retenção de TDS e registro na FIU-IND para UPI, licença da MAS para PayNow, relatórios SARB para a África do Sul, registro AUSTRAC para PayID, um parceiro licenciado para PromptPay. Preferimos nomear o obstáculo a anunciar uma data.
src/data/assets.ts
Monero está no catálogo, marcado como ativo de anonimato aprimorado e não oferecido. A regulamentação europeia de combate à lavagem de dinheiro exige que os provedores o retirem da lista a partir de 10 de julho de 2027; nós o exibimos e explicamos, em vez de fazê-lo desaparecer silenciosamente.
docs/CONVENTIONS.md
Regra editorial aplicável: nenhum ano de fundação, número de licença, volume processado, contagem de clientes, depoimento ou logotipo de parceiro é codificado em uma página. A maturidade deve vir da profundidade do que é escrito, nunca de prova fabricada.