A tesouraria

Dois por cento de cada trade entram no TreasuryVault do mercado, saem como ações tokenizadas e são distribuídos via airdrop aos holders do token. Eis o caminho completo.

Os três atores

O trader não faz nada de especial: compra ou vende. A taxa é cobrada pelo hook na mesma transação.

Os contratos decidem tudo. O vault sabe qual basket precisa deter, dentro de quais limites de preço vai negociar e o que recusa. Nenhuma função muda o basket. Os limites de preço e o limiar de conversão são parâmetros do owner do StockFun desde 2026-10-05, lidos em tempo real por todo vault; fora deles, só um upgrade do vault pelo owner do StockFun pode mudar as suas regras.

O keeper é um worker offchain que apenas aciona. Ele escolhe o momento, indica o valor de cada etapa e propõe rotas e valores mínimos, que o vault recusa se forem mais frouxos que o seu próprio limite de preço; não escolhe nem os ativos, nem como o caixa é dividido entre eles, nem os preços. O que quer que indique, não pode desviar um ativo, afrouxar um limite, mudar os pesos do basket nem escolher quem recebe o airdrop.

O caminho

flowchart TD T[Trade no pool v4] -->|taxa de 2 %| V[TreasuryVault do mercado] V -->|ETH → USDC, Uniswap v4| U[USDC] U -->|USDC → USDG, Curve| G[USDG] G -->|OFT da Paxos, LayerZero| R[Robinhood Chain] R --> M[Vault espelho do mercado] M -->|compradas em pools secundários| S[Ações tokenizadas

NVDA · MSFT · GOOGL · SPY · QQQ] S -->|wrapped, para o Ethereum| AD[AirdropDistributor] AD -->|airdrop, 100 %, pro rata| H[Holders do token]

Cada perna é limitada por um oráculo Chainlink independente: por padrão, 50 pontos-base em ETH → USDC, 200 na perna que compra as ações. O vault mede o que realmente recebe e recusa a transação se o resultado ficar aquém do mínimo do keeper, que nunca é mais frouxo do que o limite (desde 2026-10-05; até então, aquém do limite). Não confia nem no keeper, nem no trilho, nem no preço que lhe é cotado.

O limiar de conversão

O vault não converte a cada trade. Uma vez a cada 24 horas, logo antes do airdrop, ele converte o que acumulou — desde que seja pelo menos 0,1 ETH, o limiar padrão. Abaixo disso, o gas e o slippage comeriam a operação: nada acontece naquele dia, e o ETH espera o próximo ciclo, mesmo que trades o levem acima do limiar mais tarde naquele dia. O keeper o verifica na sua primeira passagem depois que a janela do airdrop fecha, às 13:00 UTC por padrão; ele segue essa regra desde 2026-10-06, e até então convertia o ETH de um vault em qualquer uma das suas passagens durante o pregão assim que o vault detinha o limiar.

O limiar padrão é calibrado para que um mercado que esgotou a sua primeira faixa de liquidez sempre o tenha ultrapassado: a essa altura, ele recebeu cerca de 0,159 ETH, e converte no próximo ciclo diário.

Desde 2026-10-01, cada etapa converte um valor que o keeper indica, nunca menos do que o limiar na etapa do ETH, em vez do saldo inteiro. Um vault que cresceu além do que o seu local de negociação executa dentro do limite converte em fatias, e o resto espera o próximo ciclo. Até então, um vault assim nunca mais conseguia converter.

Os pesos do basket

O caixa é separado ação por ação, segundo os pesos do basket, à medida que chega. Cada ação gasta apenas a sua própria parte. Uma ação que não pode ser comprada num determinado dia, porque o seu emissor a congelou, o seu feed parou de ser atualizado, o seu pool é raso demais ou, desde 2026-10-06 na Robinhood Chain, ela passa por um evento corporativo que pausa o oráculo do seu token, guarda a sua parte para um ciclo posterior. Desde 2026-10-05, a sua perna falha isoladamente (LegFailed), e as outras ações do basket são compradas na mesma chamada; até então, uma perna que falhava fazia a compra inteira falhar.

Desde 2026-10-01, o keeper não pode, portanto, mudar a composição pulando ações. Antes, a parte de uma ação pulada era dividida de novo por todo o basket.

Desde o pipeline de segurança de 2026-10-01, uma emergência que deixa o caixa de um vault abaixo do que está reservado anula todas as reservas: o que resta, e toda entrada de caixa posterior, é dividido de novo segundo os pesos. Veja Modo de emergência. A cada compra, o keeper retém n−1 unidades da parte da última ação, sendo n o número de ações; elas continuam reservadas para a próxima chamada. Veja O keeper.

O que um vault pode deter

A qualquer instante, um vault detém uma mistura de:

  • ETH — recebido, ainda não convertido
  • USDC e depois USDG — em trânsito para a chain remota
  • Ações tokenizadas — o estado final, na Robinhood Chain

Os três são exibidos como a tesouraria à espera do próximo airdrop; só as ações são distribuídas, depois de compradas. Um vault cheio de USDC não é um vault quebrado; é um vault em trânsito.

O que não pode acontecer

Ninguém pode sacar de um vault. Nenhum withdraw, nenhum transfer, nenhum sweep, nenhum owner: chamá-los falha porque eles não existem.

Os ativos de uma tesouraria só saem dela de três formas: a conversão em ações tokenizadas, a entrega dessas ações ao contrato do airdrop para os holders do token, e o modo de emergência, pelo qual o owner do StockFun os movimenta para qualquer endereço, de imediato. Nada mais no código atual pode movimentá-los. Desde 2026-10-02, o owner do StockFun pode fazer o upgrade do vault, com efeito imediato: veja Modelo de confiança.

Além dos vaults, dois contratos detêm os ativos do protocolo para vários mercados ao mesmo tempo: o contrato do airdrop e o hub remoto. Desde 2026-10-05, depois de uma transferência de emergência para fora de qualquer um deles, nenhum mercado é pago com os ativos de outro, nem mesmo com ativos que chegaram para outro mercado e ainda não foram creditados: o que falta espera até que os ativos sejam trazidos de volta (restore; uma transferência simples não conta), ou até que o owner do StockFun dê baixa da perda no mercado que a sofreu. Só o que falta espera: uma reivindicação continua pagando as outras ações, e uma transferência de emergência imputada a um único mercado no hub remoto mantém os pagamentos de todos os outros mercados. Veja Modo de emergência.