Files
PythagorasGoal/docs/diary/2026-06-16-mainnet-fase0-smoke.md
T
Adriano Dal Pastro aee53161c3 docs: Fase 0 smoke mainnet VERDE (ETH->USDC limit) + aggiorna piano micro-test
Catena d'esecuzione validata su mainnet con soldi veri a costo ~0: LIMIT SELL ETH_USDC
0.0138 @ floor 1776.3 -> filled@1778.1 (=bid), fee 0, USDC 25->49.54. Consolidato l'ETH
stranded in margine USDC. Funding parziale ~$49.54 (sotto il min EUR500) -> Fase 1 in
attesa di top-up a ~EUR1000. Diario + STATO/checklist del piano aggiornati.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 15:48:38 +00:00

3.2 KiB

2026-06-16 — Fase 0 smoke mainnet VERDE (ETH→USDC, limit non market)

Contesto

Il conto Deribit mainnet, fino al 2026-06-14 vuoto (€0, unico blocco al micro-test), ha ricevuto un deposito iniziale di ~$50: 25.00 USDC + 0.013878 ETH. Occasione per eseguire la Fase 0 del piano (docs/specs/mainnet-microtest-plan.md): validare la catena d'esecuzione su soldi VERI con rischio ~0, abbinandola a un'operazione utile — consolidare l'ETH stranded in margine USDC.

Perché consolidare: noi eseguiamo sui perp lineari USDC (*_USDC-PERPETUAL), marginati in USDC. I 0.0138 ETH stavano nel wallet ETH (collateral dell'inverse, che NON usiamo per la matematica lineare del backtest) → margine effettivo solo i $25 USDC. Convertendo, l'intero ~$50 diventa USDC utilizzabile.

Ordine (LIMIT, non market — istruzione utente)

Check capability read-only prima: spot ETH_USDC esiste (bid 1780.3/ask 1780.9, testnet:false, price tick 0.1). Il listing strumenti NON espone lo spot (kind=spot vuoto, endpoint v1 404) ma il ticker basta. place_order supporta order_type="limit" + price.

  • LIMIT SELL ETH_USDC 0.0138 ETH @ floor 1776.3 (~0.1% sotto il bid) — marketable limit con cap di slippage: crossa e filla al bid corrente, ma con un floor sotto cui NON può fillare. Soddisfa "non a market" (prezzo protetto, niente slippage incontrollato) garantendo il fill.
  • Step 0.0001 ok al primo colpo (niente fallback 0.013); fallback previsti 0.013/0.012.

Esito

order_state = filled        filled_amount = 0.0138
average_price = 1778.1       (= bid al momento dell'invio; il bid era sceso 1780.3->1778.1 tra
                              quote e invio, ma > floor 1776.3 -> zero slippage negativo)
fee = 0.0                    (maker, costo nullo)
order_id = ETH_USDC-8488088107

Riconciliazione conto (before→after):

Wallet Prima Dopo
USDC 25.00 49.538 (+24.538)
ETH 0.013878 0.000078 (dust ~$0.14, sotto il min → non convertibile)
BTC 0 0
posizioni / ordini resting nessuna / nessuno

Cosa è dimostrato

Catena end-to-end su mainnet (testnet:false), a costo ~0: routing live + auth + place_order limit + fill + verifica via get_trade_history + riconciliazione get_account_summary. La meccanica d'esecuzione reale FUNZIONA su soldi veri. Fase 0 .

Limite residuo (resta il blocco vero)

~$49.54 USDC è sotto il minimo €500 del piano: a questo margine il rumore di arrotondamento BTC (step lineare ~$6.6) soffoca il segnale → NON si può ancora testare l'edge. Per la Fase 1 (fade-only, €1000, 2-4 settimane, verdetto ledger-vs-backtest) serve un top-up a ~€500-1000 USDC. Stato piano aggiornato: token+smoke , funding 🟡 parziale, Fase 1 in attesa di capitale.

Note operative

  • Operazione MANUALE one-off (non il runner): .env.mainnet sourcato a mano, client puntato a mainnet solo per questa sessione. Il runner di produzione resta su testnet (.env condiviso invariato) → nessun rischio di flip accidentale.
  • La marketable-limit con floor è il pattern giusto per conversioni one-shot a prezzo controllato (vs il TP resting/limit-al-livello degli sleeve): fill immediato + cap di slippage, fee maker.