La tesoreria

Il due per cento di ogni trade entra nel TreasuryVault del mercato, ne esce sotto forma di azioni tokenizzate, e viene distribuito in airdrop agli holder del token. Ecco il percorso completo.

I tre attori

Il trader non fa nulla di particolare: compra o vende. La commissione viene prelevata dall'hook nella stessa transazione.

I contratti decidono tutto. Il vault sa quale basket deve detenere, entro quali limiti di prezzo accetta di scambiare, e cosa rifiuta. Nessuna funzione cambia il basket. I limiti di prezzo e la soglia di conversione sono impostazioni dell'owner di StockFun dal 2026-10-05, lette in tempo reale da ogni vault; al di là di questi, solo un upgrade del vault da parte dell'owner di StockFun può cambiarne le regole.

Il keeper è un worker offchain che si limita ad attivare. Sceglie il momento, indica l'importo di ogni passaggio, e propone i percorsi e gli importi minimi, che il vault rifiuta se sono più permissivi del proprio limite di prezzo; non sceglie né gli asset, né come il cash viene ripartito tra di essi, né i prezzi. Qualunque cosa indichi, non può deviare un asset, allentare un limite, cambiare i pesi del basket, né scegliere chi riceve l'airdrop.

Il percorso

flowchart TD T[Trade sul pool v4] -->|commissione del 2 %| V[TreasuryVault del mercato] V -->|ETH → USDC, Uniswap v4| U[USDC] U -->|USDC → USDG, Curve| G[USDG] G -->|OFT di Paxos, LayerZero| R[Robinhood Chain] R --> M[Vault speculare del mercato] M -->|acquistate su pool secondari| S[Azioni tokenizzate

NVDA · MSFT · GOOGL · SPY · QQQ] S -->|wrapped, verso Ethereum| AD[AirdropDistributor] AD -->|airdrop, 100 %, pro rata| H[Holder del token]

Ogni tratta è limitata da un oracolo Chainlink indipendente: di default 50 punti base su ETH → USDC, 200 sulla tratta che compra le azioni. Il vault misura ciò che riceve effettivamente e rifiuta la transazione se il risultato resta sotto il minimo del keeper, a sua volta mai più permissivo del limite (dal 2026-10-05; fino ad allora, sotto il limite). Non si fida né del keeper, né del rail, né del prezzo che gli viene quotato.

La soglia di conversione

Il vault non converte a ogni trade. Una volta ogni 24 ore, subito prima dell'airdrop, converte ciò che ha accumulato — purché sia almeno 0,1 ETH, la soglia di default. Al di sotto, gas e slippage si mangerebbero l'operazione: quel giorno non succede nulla, e l'ETH attende il ciclo successivo, anche se i trade lo portano oltre la soglia più tardi nella giornata. Il keeper lo controlla al suo primo giro dopo la chiusura della finestra dell'airdrop, alle 13:00 UTC di default; vi si attiene dal 2026-10-06, e fino ad allora convertiva l'ETH di un vault a uno qualsiasi dei suoi giri durante la sessione non appena il vault deteneva la soglia.

La soglia di default è calibrata in modo che un mercato che ha esaurito la sua prima banda di liquidità l'abbia sempre superata: a quel punto ha ricevuto circa 0,159 ETH, e converte al ciclo giornaliero successivo.

Dal 2026-10-01 ogni passaggio converte un importo indicato dal keeper, mai meno della soglia nel passaggio dell'ETH, invece dell'intero saldo. Un vault cresciuto oltre ciò che la sua sede di esecuzione riesce a eseguire entro il limite converte a tranche, e il resto attende il ciclo successivo. Fino ad allora, un vault del genere non poteva mai più convertire.

I pesi del basket

Il cash viene accantonato azione per azione, secondo i pesi del basket, man mano che arriva. Ogni azione spende solo la propria quota. Un'azione che non si può comprare in un dato giorno, perché il suo emittente l'ha congelata, il suo feed ha smesso di aggiornarsi, il suo pool è troppo sottile o, dal 2026-10-06 su Robinhood Chain, sta attraversando un'operazione societaria che mette in pausa l'oracolo del suo token, conserva la propria quota per un ciclo successivo. Dal 2026-10-05 la sua tratta fallisce da sola (LegFailed), e le altre azioni del basket vengono comprate nella stessa chiamata; fino ad allora, una tratta che falliva faceva fallire l'intero acquisto.

Dal 2026-10-01 il keeper non può quindi cambiare la composizione saltando delle azioni. Prima, la quota di un'azione saltata veniva ripartita di nuovo sull'intero basket.

Dalla pipeline di sicurezza del 2026-10-01, un'emergenza che fa scendere il cash di un vault sotto quanto è riservato annulla tutte le riserve: ciò che resta, e ogni afflusso successivo, viene ripartito da capo secondo i pesi. Vedi Modalità di emergenza. A ogni acquisto, il keeper trattiene n−1 unità della quota dell'ultima azione, con n pari al numero di azioni; restano riservate per la chiamata successiva. Vedi Il keeper.

Cosa può detenere un vault

In ogni istante un vault detiene un mix di:

  • ETH — ricevuto, non ancora convertito
  • USDC poi USDG — in transito verso la chain remota
  • Azioni tokenizzate — lo stato finale, su Robinhood Chain

Tutti e tre sono mostrati come la tesoreria in attesa del prossimo airdrop; solo le azioni vengono distribuite, una volta acquistate. Un vault pieno di USDC non è un vault guasto; è un vault in transito.

Cosa non può succedere

Nessuno può prelevare da un vault. Niente withdraw, niente transfer, niente sweep, niente owner: chiamarli fallisce perché non esistono.

Gli asset di una tesoreria ne escono in tre soli modi: la conversione in azioni tokenizzate, la consegna di quelle azioni al contratto dell'airdrop per gli holder del token, e la modalità di emergenza, con cui l'owner di StockFun li sposta verso qualsiasi indirizzo, subito. Nient'altro nel codice attuale può spostarli. Dal 2026-10-02 l'owner di StockFun può fare l'upgrade del vault, con effetto immediato: vedi Modello di fiducia.

Oltre ai vault, due contratti detengono gli asset del protocollo per più mercati alla volta: il contratto dell'airdrop e l'hub remoto. Dal 2026-10-05, dopo un trasferimento di emergenza fuori dall'uno o dall'altro, nessun mercato viene pagato con gli asset di un altro, nemmeno con asset arrivati per un altro mercato e non ancora accreditati: ciò che manca attende finché gli asset non vengono riportati (restore; un semplice trasferimento non conta), o finché l'owner di StockFun non imputa la perdita al mercato che l'ha subita. Attende solo ciò che manca: una riscossione continua a pagare le altre azioni, e un trasferimento di emergenza imputato a un solo mercato sull'hub remoto mantiene i pagamenti di tutti gli altri mercati. Vedi Modalità di emergenza.