- config/live.json sezione `usde` (unica autorita', P1): indice, haircut 10%, tetto allerta quota 50%, soglie depeg 0.99/0.95 coi criteri dichiarati (P6) - src/live/usde.py: config + catena di prezzo (indice pubblico -> ticker -> 1.0 dichiarato) + valutazione PURA; shadow._collaterale_usde ora deriva da qui - scripts/live/usde_watch.py + cron_usde.sh (12:35 UTC, dopo la finestra reward): reward per delta netto trade (P12: senza inventare attribuzioni), depeg (crit ripetuto, resto a transizione, P9), quota anche per deriva passiva (N4); applica il verdetto di eligibilita' pre-registrato (>=1 reward entro 29/08) - serie data/live/usde_watch.jsonl sotto monitor_health (max 30h, P5: un watch fermo non deve leggersi come "va tutto bene"); baseline 14:17Z registrata - GATE USDE-01 in CLAUDE.md §4; test 775 (+17 in tests/test_usde_watch.py) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B9UyJLHzR7EJzxR3iQ3RN1
7.0 KiB
2026-08-26 — USDE come collaterale a rendimento: analisi da candidato
Domanda dell'operatore: "analizziamo usde" — dopo la chiusura della pista USDC rewards
(Italia esclusa da MiCA). Script: scripts/research/r0826_usde_scenari.py (N11).
Verificato SUL VENUE (API pubblica, oggi — N10)
apr: 4.0per USDE (era "fino a 9%" al lancio 03/2025: tasso = APR settimanale Ethena − 5% di fee Deribit; comprime coi funding) · reward giornalieri ~12:00 UTC sul minimo di equity USDE, voce nel Transaction Log → falsificazione in 24-72h- spot
USDE_USDCattivo: spread osservato ~3 bps, fee spot zero - haircut cross-collateral 10% (USDC 0%): il 90% fa margine — al nostro profilo di leva (max realizzata 0,52x su tetto 1,0x) non morde
- indice
usde_usdmulti-exchange con mediana e clamp ±0,5% — NON il book interno: è la differenza strutturale dal caso Binance del 10/10/2025 ($0,65 dall'oracle sul proprio book da $8M mentre USDe quotava ~$0,99 altrove, riscatti regolari, peg tornato in 8h) - eligibilità per residenza, lista non pubblica → si verifica sul CONTO, non sui documenti (la lezione USDC di stamattina)
Rischi dichiarati (p non stimabile → si controlla con la QUOTA, N4)
R1 emittente: basis trade (staking + short perp); fallimento = fino a −100% della quota — si SOMMA al rischio venue accettato il 26/07, non lo sostituisce. R2 marcatura in crash (P10: l'accoppiamento — il mark scende proprio quando il libro è lungo). R3 tasso: 9→4% in 17 mesi; funding negativi prolungati → ~0. R4 regolatorio EU (Ethena GmbH liquidata dopo BaFin; USDe non è EMT MiCA — per questo PUÒ pagare dove USDC non può). 📌 Nota a favore da misurare se si procede: il rendimento USDe sale coi funding positivi, cioè quando il nostro libro long li PAGA (−2,16%/anno): sconto parziale correlato sulla tassa di funding.
L'aritmetica (dallo script)
| equity | quota 50% rende | −100% costa | note |
|---|---|---|---|
| $2.065 | $41/anno | $1.032 | conversione ripagata in ~3 giorni |
| $5.065 | $101/anno | $2.532 | scenario post-versamento |
| $20.000 | $400/anno | $10.000 | dove la posta diventa seria |
Mark −1% = 3 mesi di resa · −3,5% = 11 mesi · −100% = 25 anni: non si recupera mai → la leva di controllo è la quota, non il tasso.
PROPOSTA (pre-registrata qui, esito da scrivere sotto)
Test di eligibilità sul conto: convertire ~$500 USDC→USDE (costo <$0,20 totale), tenere 3 giorni, guardare il Transaction Log alle ~12:00 UTC (reward atteso ~$0,05/g). Regola dichiarata PRIMA di vedere l'esito: ≥1 voce reward in 3 giorni → idoneo, e si apre la decisione di quota (con un gate: quota massima, chi la decide, cosa la riapre); 0 voci → non idoneo, si riconverte e la pista si chiude come l'USDC. L'esecuzione è dell'operatore (app: Spot → USDE/USDC) o autorizzata esplicitamente via gateway. Il libro non c'entra: nessun codice del percorso soldi viene toccato dal test.
ESECUZIONE DEL TEST (stesso giorno, 13:04 UTC — autorizzata dall'operatore: "fai test")
Ordine via gateway, limit marcabile con banda di sicurezza sul prezzo (0,995-1,005):
500 USDE @ 1,0003, filled, fee 0 (USDE_USDC-8977542793). Costo totale ~$0,15.
Prima finestra utile di reward: ~28/08 12:00 UTC (il calcolo usa il minimo di equity
USDE della finestra); verifica finale il 29/08: ≥1 voce reward nel Transaction Log →
idoneo; 0 voci → si riconverte e la pista si chiude.
🚨 DIFETTO TROVATO E RIPARATO DURANTE IL TEST — il test valeva gia' per questo.
shadow._equity leggeva SOLO il conto USDC: dopo la conversione il book avrebbe visto
$1.556 (−24,3%) al giro delle 13:47 → falso 💰 "USCITA DI FONDI" e vendita indesiderata
di ~$140 di posizioni (i target scalano con l'equity). Riparato in 35 minuti, prima del
giro: _collaterale_usde() valuta l'USDE all'indice pubblico usde_usdc (mediana
multi-exchange — la lezione Binance 10/10), con tre proprieta' blindate da 6 test nuovi
(tests/test_shadow_usde.py): un depeg PASSA nel sizing (mai nascosto), sopra la pari
si clampa a 1,0, indice illeggibile → 1,0 dichiarato, mai 0 (contare 0 ricreerebbe
il falso −24%: il fallback si sceglie sul danno, P5). Verificato live: equity vista dal
book $2.055,88 ("mainnet USDC + USDE 500 @ 0.9999").
Un test da $500 progettato per misurare l'eligibilita' ha scoperto che il book era cieco
al cross-collateral: se la prima conversione fosse stata fatta a quota vera, l'errore
sarebbe costato caro. I test piccoli esistono per questo.
Esito eligibilita': (da scrivere entro il 29/08)
STRUTTURA (stesso giorno, ~14:20 UTC — "struttura il progetto per gestire subito usde")
La patch d'emergenza delle 13:07 e' diventata struttura di prima classe:
config/live.jsonsezioneusde— l'unica autorita' sui parametri (P1):index_name,haircut0.10,quota_max_frac0.50 (tetto di ALLERTA — la quota effettiva la decide l'operatore),depeg_warn0.99 /depeg_crit0.95 coi criteri dichiarati in_nota_usde(P6: warn = fuori dalla banda spot ~3 bps e oltre il clamp ±0,5% per fonte dell'indice; crit = meta' del buffer di haircut consumata).src/live/usde.py— modulo unico per config, catena di prezzo (indice pubblico → ticker spot → 1,0 dichiarato) e valutazionevaluta()PURA.shadow._collaterale_usdeora DERIVA da qui (niente ridichiarazioni); i 6 test di shadow passano invariati.scripts/live/usde_watch.py+cron_usde.shalle 12:35 UTC (dopo la finestra reward ~12:00, fuori da :00/:25/:47) — sola lettura: (1) reward per DELTA di equity al netto dei trade spot (il gateway non espone il Transaction Log; un delta con trade nel mezzo si dichiara, trade illeggibili → delta NON attribuito, P12); (2) depeg: 🚨 solo sotto crit e ripetuto, ⚠️ warn/quota/BLIND solo alla transizione (P9); (3) quota sul totale, che allerta anche per deriva PASSIVA (il libro perde → la quota sale da sola, N4). Applica il verdetto pre-registrato (≥1 reward entro il 29/08 → IDONEO; zero → riconvertire) invece di lasciarlo a un promemoria. Limite dichiarato: cadenza giornaliera, un depeg intraday puo' sfuggire all'ALLERTA — ma non al SIZING, che legge l'indice a ogni giro orario del book.- Serie
data/live/usde_watch.jsonl— dentro il perimetro di backup,tsin ms epoch → sorvegliata damonitor_health(max_age 30h,open_labeled=False): un watch fermo spegnerebbe gli allarmi depeg e il silenzio si leggerebbe come "va tutto bene" (P5). - Baseline registrata alle 14:17:52Z: 500 USDE @ 1,0000 (indice) = $500,00 · quota 24,3% (tetto 50%) · margine utilizzabile ~$2.008 · verdetto IN_ATTESA. E' la lettura che rende misurabile il delta del 28/08.
- Test: 775 passati (+17 nuovi in
tests/test_usde_watch.py: valutazione condivisa, rilevatore reward, verdetto — incluso che NON anticipa la scadenza del 29/08 —, condizioni di allerta,px=Noneche non finge un depeg).