Richiesta: leggere la pagina margini del conto per chiudere il 5% (KB) vs 10% (nostra config). NON E' RAGGIUNGIBILE da qui: account_summary per la valuta USD da' "Invalid currency", il parametro `extended` viene ignorato, e il gateway filtra a 8 campi senza initial_margin/maintenance_margin (debito #11). E non e' che si sia guardato nel secchio sbagliato: la contabilita' TORNA ESATTA senza alcun termine di haircut. USDC equity 1412.281074 available 1400.728093 riservato 11.5530 USDE equity 643.175691 available 643.175691 riservato 0.0000 posizioni lorde $577.65 -> IM al 2% = $11.5530 -> RESIDUO -$0.0000 Un haircut al 5% chiederebbe $32,16 accantonati, al 10% $64,32: non ci sono. => L'haircut non e' osservabile in ALCUN campo esposto. O e' applicato solo nella vista cross/USD che il gateway filtra, o non e' applicato al nostro conto: da qui le due cose non si distinguono, e non le si sceglie tirando a indovinare. La divergenza resta APERTA, ma con la ragione MISURATA invece che supposta. La chiudono 30 secondi sulla web UI o delle chiavi API Deribit (la decisione gia' dichiarata nel debito #11, non un refactor). Nel frattempo non morde nulla di osservabile: l'IM e' il 2% del nozionale e l'USDE resta interamente disponibile, quindi 5% o 10% non cambia una cifra operativa. L'operatore ha dichiarato che il conto e' STANDARD MARGIN. Aggancia due cose: - la colonna da leggere e' Haircut (X:SM), che per USDe dice 5% come la PM: ora si sa con certezza quale numero ufficiale contraddice il nostro; - spiega perche' l'IM misurata e' esattamente 1/50: il nuovo modello di margine del 05/08 si applica ai "standard margin accounts", tier 1 C1=50. Un fatto dichiarato dall'operatore e una misura fatta senza conoscerlo si confermano a vicenda — ed e' la PRIMA affermazione del venue che il conto conferma questa settimana, dopo l'APR USDC e "all users can buy BUIDL". Lo screenshot non e' arrivato: il percorso sta sul desktop dell'operatore, non sulla VPS. Suite: 800 passati. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
13 KiB
2026-08-31 — Fine della Proof of Reserves, e il guardiano che mancava
L'operatore ha passato l'annuncio Deribit to Discontinue Daily Proof of Reserves Publication. La notizia in sé vale poco per noi. Quello che è emerso cercandola vale molto di più.
1. La notizia: frequenza giù, sostanza su, per noi nulla cambia
Dal 1 settembre 2026 la pagina Proof of Reserves sparisce e gli aggiornamenti quotidiani cessano. Al loro posto, sotto il regime VARA di Dubai: audit annuale indipendente delle riserve, audit annuale del bilancio, obbligo di copertura 100% e segregazione degli attivi dei clienti. E: «approximately 90% of client assets have been migrated to Coinbase, which acts as a custodian for Deribit».
Non è un peggioramento netto, ed è importante non raccontarlo come tale. Si perde un segnale ad alta frequenza e debole (una PoR auto-pubblicata prova che gli attivi esistono in un istante, non che coprano le passività, ed è aggirabile attorno allo snapshot) e si guadagna un segnale a bassa frequenza e più forte (audit indipendente obbligatorio invece di pubblicazione volontaria), più un miglioramento sostanziale di custodia: 90% degli attivi presso un custode terzo regolato invece che nei wallet dell'exchange.
Per noi non cambia nulla di operativo, e per una ragione che va detta: la PoR non l'abbiamo
mai sorvegliata. Zero occorrenze in tutto il codice. venue_probe legge se il venue risponde,
non cosa dichiara. Si perde un segnale che non stavamo usando.
Ho provato a catturare l'ultimo dato prima che la pagina sparisse — è la mossa giusta per un dato
non ricostruibile con una scadenza. Rinunciato di proposito: la pagina è una SPA e
get_proof_of_reserves non esiste come metodo API («Method not found»), ma soprattutto uno
snapshot singolo e auto-riportato non regge lo standard di prova di questo progetto e non
permetterebbe comunque di stimare p. Un dato che non cambierebbe una decisione non vale il
lavoro per prenderlo.
2. 📌 La conseguenza vera: il riapritore della decisione più grande si è ristretto
La decisione vincolante «100% Deribit fino a $20k» (26/07) ha come riapritori dichiarati:
«$20k, o un cambio di piano, o p che diventa stimabile invece che assunto».
Dal 1 settembre il segnale pubblico di solvibilità passa da quotidiano ad annuale. Il terzo
riapritore non è formalmente chiuso — un audit indipendente è semmai evidenza più forte — ma
diventa praticamente irraggiungibile: da una serie giornaliera si può costruire una stima, da
un punto all'anno no. ⇒ In pratica quella decisione è ora gated SOLO dal capitale: si riapre a
$20k, o non si riapre. Non cambia la decisione di oggi (fu presa con p esplicitamente assunto,
non osservato), ma chiude l'unica uscita non-capitale che aveva.
3. 🚨 Quello che ho trovato cercando: quattro annunci materiali che nessuno leggeva
Il debito #8 dice, testuale: «Resta scoperto il Rulebook vero e proprio: la sonda legge se il
venue RISPONDE, non cosa il venue ANNUNCIA». Esiste un feed RSS pubblico
(insights.deribit.com/exchange-updates/feed/) con 10 voci. Alla prima lettura:
| data | annuncio | perché ci tocca |
|---|---|---|
| 27/08 | Discontinue Daily Proof of Reserves | §1 e §2 di questo diario |
| 14/08 | Contract Specifications change for Linear USDC Perpetuals | i nostri due strumenti |
| 05/08 | New SM Margin Model On Deribit | leva per taglia, tiered |
| 31/07 | USDC Rewards Available In More Countries | tocca una conclusione viva |
| 29/06 | New Fee Schedule On Deribit | fee_watch esiste per questo |
Il caso che decide la questione è il 14/08. Le specifiche dei perpetual USDC sono cambiate il
18/08; l'annuncio è del 14/08. Il codice lo racconta già con onestà: la tabella «non se
n'era accorta […] è andata bene per la direzione del cambiamento, non perché ce ne fossimo
accorti» — i cambi erano riduzioni (tick BTC 0,5→0,1, ETH 0,05→0,01, min/step ETH
0,001→0,0001) e un valore più grosso resta conforme. check_specs() è nato da quella svista e
oggi gira ogni ora. Ma rileva la deriva dopo; il feed l'avrebbe detta quattro giorni prima.
Il giorno che Deribit ALZA un minimo, «dopo» significa ordini rifiutati.
Il 31/07 chiude un cerchio aperto ieri: l'espansione delle giurisdizioni idonee ai reward USDC non contiene l'Italia, né alcun paese UE — mentre San Marino e Città del Vaticano (i due microstati europei fuori dall'UE) sono idonei. La lista che avevo letto (aggiornata 20/08) è posteriore all'espansione: la conclusione dello zero USDC è confermata due volte. Il pattern UE-fuori/microstati-dentro suggerisce un driver regolatorio, ma la lista contiene anche Canada e Giappone: non asserisco una causa, il fatto è l'esclusione.
4. Costruito: venue_news.py
Sorveglianza giornaliera del feed, dentro cron_daily.sh accanto a fee_watch (suo parente
stretto). Scelte che contano:
- NON interpreta. Dice «è uscito questo, guardalo». Nessun automatismo su un testo di marketing: P13 — una guardia sui NUMERI non copre il RAGIONAMENTO, e la prosa si legge come opinione di un lettore fallibile. L'unica cosa che classifica è l'urgenza.
- Le parole-chiave sono DERIVATE, non ridichiarate (P1, il difetto più ricorrente del
progetto): gli strumenti vengono da
deribit._CONTRACT, la valuta di collaterale daconfig/live.json. Chi aggiunge un asset al book allarga la sorveglianza senza toccare questo file — ed è esattamente il test che lo blinda. - Primo giro semina senza allertare (P9: l'allarme massimo non si spende per un arretrato di 10 voci, o non verrà letto il giorno che è vero).
- Feed illeggibile → codice 2 e nessun silenzio implicito (P5: «non vedo» non è «niente di nuovo»).
5 test sulle funzioni pure. La rete no: scarica() ritorna None su qualunque errore, ed è quello
il contratto.
Cosa NON copre, e va detto: il Rulebook vero e proprio (ADL, perdita socializzata, emergency powers, conti dormienti) non ha un feed. Il debito #8 si restringe, non si chiude.
5. La Knowledge Base risponde a due domande aperte — e corregge due cose mie
L'operatore ha passato anche yield-generating-collateral-usde-buidl-and-more, che non documenta
tetti né haircut ma rimanda alla Knowledge Base. Interrogata via API Zendesk
(support.deribit.com/api/v2/help_center/articles/search.json), l'articolo giusto è
«Cross collateral specifications» (aggiornato 2026-02-20).
(a) 🚨 Il costo del saldo negativo: 0,05% al GIORNO
«While the equity of a currency in an account remains negative, a collateral fee will be charged to that account. This fee is charged daily in the same currency as the negative balance (default = 0.05% per day). The fee is charged based on the amount of time the negative equity is held, down to a granularity of seconds.»
18,25% annuo, cioè 4,3× la resa USDE che si starebbe comprando tenendo meno USDC. Il 30/08 avevo scritto «Deribit lo finanzia a interesse» senza il numero — l'affermazione era giusta e vuota. Con il numero il criterio del cuscino di regolamento smette di essere prudenza e diventa aritmetica: scendere sotto il cuscino per tenere più USDE è −14 punti.
E il ribilanciamento automatico non salva: scatta solo oltre $1.000.000 assoluti o il 100% della cross equity (default tabulati), soglie che a $2k non si toccano mai. Non veniamo ribilanciati: sanguiniamo la fee. La cosa che sembrava un paracadute è, alla nostra taglia, esattamente l'assenza di un paracadute.
(b) 🚨 Haircut USDe: la fonte dice 5%, noi abbiamo registrato 10%
| valuta | haircut X:PM | X:SM |
|---|---|---|
| BTC · ETH · USDC | — | — |
| USDT · USYC · BUIDL | 2% | 2% |
| PAXG | 2,5% | 5% |
| USDe | 5% | 5% |
| stETH | 7,5% | 7,5% |
| SOL | — | 15% |
config/live.json dice haircut: 0.10, e il diario del 26/08 lo dà per «verificato sul venue»
senza lasciare traccia di come. L'articolo è anteriore a quella data, quindi non si sa
quale delle due sia stale.
Non l'ho riparato (P12: fra due fonti che non concordano, una riparazione silenziosa è
un'invenzione; M28: la contraddizione è informazione). Si tiene 0,10 per tre ragioni dichiarate:
è il lato conservativo (sottostima il margine utilizzabile), non è sul percorso soldi (non
entra nel sizing — lo usa solo il report di usde_watch), ed è già misurato che non morde a
nessuna quota fino al 90%. Si chiude leggendo la pagina margini del conto, che è dove Deribit
stesso dice di guardare.
(c) Un dato di lato che vale per il futuro
BUIDL ha haircut 2% — sarebbe stato il miglior collaterale a rendimento del listino (contro il 5% dell'USDe), se solo lo si potesse comprare. E stETH 7,5%, il peggiore: terza ragione indipendente per lasciarlo stare, dopo il tasso dimezzato e l'esposizione ETH.
📌 Nessuna delle due fonti documenta un tetto sulle quantità detenibili. Il ~31,2% sull'USDE resta misurato e non spiegato — e ora si sa che non è una svista di lettura: non è scritto da nessuna parte.
(d) Tentata la chiusura della divergenza sull'haircut: non è raggiungibile da qui
Deribit dice: «Haircut rates can be seen on the margin page in your account». Quella pagina è web UI, e le credenziali vivono solo dentro il gateway (debito #11). Provato comunque:
account_summaryper la valuta USD (la "riga USD" che il doc menziona) →Invalid currency;- parametro
extended(che su Deribit apre i dettagli di margine) → ignorato; - il gateway filtra a 8 campi: niente
initial_margin, nientemaintenance_margin.
E non è che si sia guardato nel secchio sbagliato — la contabilità torna esatta senza haircut:
USDC equity 1412.281074 available 1400.728093 riservato 11.5530
USDE equity 643.175691 available 643.175691 riservato 0.0000
posizioni lorde $577.65
riservato in USDC ........... $11.5530
IM di posizione al 2% ....... $11.5530
RESIDUO ..................... $-0.0000
Un haircut al 5% chiederebbe $32,16 accantonati, al 10% ne chiederebbe $64,32: non
ci sono, e il secchio USDE riserva 0.000000. ⇒ L'haircut non è osservabile in alcun campo
esposto. O è applicato solo nella vista cross/USD che il gateway filtra via, o non è applicato al
nostro conto: da qui le due cose non si distinguono, e non le si sceglie tirando a indovinare.
La divergenza resta APERTA, ma ora con la ragione misurata invece che supposta. La chiudono due cose, entrambe dell'operatore: 30 secondi sulla pagina margini della web UI, oppure delle chiavi API Deribit — che è la decisione già dichiarata nel debito #11, non un refactor. Nel frattempo non morde nulla di osservabile: l'IM è il 2% del nozionale e il valore pieno dell'USDE resta disponibile, quindi 5% o 10% non cambia una singola cifra operativa.
📌 Sottoprodotto non cercato: $11,5530 / $577,65 = 2,0000% = esattamente 1/50. È il
C1 = 50 (start leverage, tier 1) del nuovo modello di margine SM annunciato il 05/08 — quello
che venue_news ha appena tirato fuori dal feed. Confermato sul nostro conto senza averlo
cercato, ed è la prima volta che un annuncio del venue viene verificato contro il conto invece
che creduto.
(e) L'operatore dichiara: il conto è Standard Margin — due conferme incrociate
Lo screenshot della pagina margini non è arrivato fin qui (sta sul desktop dell'operatore, non sulla VPS: il percorso non esiste su questa macchina). Ma il fatto dichiarato — «è attivo Standard margin» — aggancia due cose che erano sospese:
- Quale colonna leggere. La tabella KB ha
Haircut (X:PM)eHaircut (X:SM). Il conto è X:SM, quindi vale la seconda — che per USDe dice 5%, come la PM. La divergenza col nostro0.10resta quindi intatta, ma ora si sa con certezza quale numero ufficiale la contraddice, invece di doverne scegliere uno fra due colonne. - Perché l'IM misurata era esattamente 1/50. Il nuovo modello di margine del 05/08 si applica,
testuale, ai «standard margin accounts». Il conto è standard margin, e noi abbiamo misurato
IM = 2,0000% del nozionale = 1/50 = il
C1 = 50di tier 1. Le due cose si confermano a vicenda: un fatto dichiarato dall'operatore e una misura fatta sul conto senza conoscerlo.
Vale la pena notarlo perché è raro: in tutta questa settimana ogni affermazione pubblicata dal venue si è rivelata falsa per il nostro conto (APR USDC, «all users can buy BUIDL»). Questa è la prima che il conto conferma.
Cosa manca ancora, e resta l'unica cosa che chiude la divergenza: il numero di haircut per USDe mostrato sulla pagina Standard Margin del conto. Se dice 5%, la nostra config è stale e il 26/08 registrò male; se dice 10%, la KB è stale e la config ha ragione. Finché non c'è, si tiene 0.10 — lato conservativo, fuori dal percorso soldi, e senza un solo effetto operativo misurabile.