Crypto tax tracker IT 2026 · cost basis dal 16.03.2026 · aliquota 33%
| Provider | Wallet | Ticker | Saldo | Iniziale | Prezzo EUR | Valore EUR | Valore @ ATH | % alloc | Tipo |
|---|
| Wallet | Saldo | Iniziale | Valore EUR | Valore @ ATH |
|---|
| Ticker | Prezzo EUR | ATH EUR | % portfolio | Sorgente | Pair | Aggiornato |
|---|
| Ticker | Prezzo EUR @ 16.03.2026 | Sorgente |
|---|
Modifica solo via JSON / chat — non editabile inline (regola del progetto).
| Data | Ticker | Wallet | Provider | Qty | Prezzo | Tot netto | Costo | P/L | Note |
|---|
| Data | Token | Exchange | Wallet | Quantità | Prezzo vend. (€) | Totale (€) | Carico 16/03 (€) | Fonte | Capital gain (€) | Tassa 33% (€) | Note |
|---|
| Token | Prezzo carico (€) | Fonte | Pair Binance | Override manuale |
|---|
| Anno formazione | Minus formata | Compensata | Residuo riportabile | Scadenza |
|---|
/api/v3/klines, candela 1d). Prezzo: (Open + High + Low + Close) / 4. TOKEN/EUR se disponibile, altrimenti TOKEN/USDT convertito con EURUSDT dello stesso giorno (sorgente Binance USD→EUR) oppure, in alternativa più difendibile, con il cambio ufficiale BCE/ECB della medesima data (sorgente Binance USD × ECB, fonte: ECB reference rates pubblicati giornalmente).Capital gain = Totale incassato − (Quantità × Prezzo di carico). Il "totale incassato" è il campo "totale netto" inserito manualmente (include già le commissioni dell'exchange). Se il capital gain è positivo si tratta di una plusvalenza; se negativo di una minusvalenza.Base imponibile netta = Plusvalenze lorde − Minusvalenze realizzate. Se le minusvalenze superano le plusvalenze, la base imponibile è zero; l'eventuale residuo può essere riportato negli anni successivi (4 anni, art. 68 TUIR) — verificare con il commercialista. Nella tabella dettaglio, le righe in perdita riportano la dicitura "compensa" nella colonna tasse.Tassa = Base imponibile netta × 33%. Il versamento avviene tramite dichiarazione dei redditi (Modello Redditi PF, quadro RT) oppure tramite imposta sostitutiva con affrancamento se applicabile.Cost basis al 16/03/2026. Data di iscrizione all'anagrafe italiana e di decorrenza della residenza fiscale (art. 67 c-ter TUIR). Per ogni ticker il valore di carico convenzionale è il prezzo di mercato di quel giorno: Binance OHLC÷4 in EUR diretto o tramite USDT × cambio EUR/USD, con fallback CoinGecko per ticker non listati su Binance (XDC, XPL, VSN…). Il tab Quadro RT espone due bottoni: Calcola carico (Binance OHLC÷4) usa il close di EURUSDT del giorno per la conversione USD→EUR; Calcola carico (cambio ufficiale ECB) usa invece il tasso di riferimento giornaliero BCE (fonte ECB via frankfurter.dev), più difendibile in caso di accertamento — è la pratica adottata anche dai principali fornitori SaaS fiscali italiani. Le entry con source:"manual" e prezzo > 0 sono sempre preservate. La sorgente di ciascun ticker viene salvata in state.costBasis[t].source come EUR / USD / USD-ECB / CG / manual.
Aliquota 33%. Si applica dal 16/03/2026 a tutte le plusvalenze su cripto-attività (Legge di Bilancio 2025, art. 1 co. 24). Tutte le vendite registrate qui sono post-residenza, quindi soggette uniformemente a 33%.
Compensazione plus/minus same-year. Le minusvalenze realizzate nell'anno riducono la base imponibile delle plusvalenze stesso anno: Base imponibile = max(0, plus − minus). Tassa = base × 33%.
Riporto minus 4 anni. Se le minus eccedono le plus, l'eccedenza si riporta agli anni successivi fino a 4 (art. 68 TUIR). Il tab Quadro RT mostra il riporto residuo e l'anno di scadenza per ciascuna tranche.
⚠ Tool di supporto personale, NON costituisce consulenza fiscale. Verificare sempre col commercialista prima del Modello Redditi PF (quadro RT) e quadro RW per il monitoraggio fiscale degli exchange esteri.
Lo swap crypto → crypto (es. XRP → USDT, USDT → HBAR, ETH → SOL) è considerato dalla normativa italiana post Legge di Bilancio 2023 una permuta fiscalmente neutra: non genera realizzo, non si paga imposta nel momento dello swap. Il cost basis si trasferisce per equivalente di valore al token ricevuto.
Realizzo solo a fronte di: conversione in fiat (EUR/USD/CHF), uscita verso un bene/servizio diverso da cripto, oppure utilizzo come corrispettivo. Quando il token finalmente esce verso fiat, la plus/minus si calcola dal cost basis del token originale della catena di permute.
Implicazione operativa per tr4ck3r: in questo registro inserisci come vendite SOLO le uscite verso fiat. Gli swap intermedi vanno tracciati separatamente (al momento non gestiti dall'app) e il cost basis del token finale eredita dal token originale, non dal valore di mercato al momento dello swap.
Verifica catena di permute: se in passato hai fatto BTC → ETH → XRP nel periodo 2017-2018, quando vendi XRP nel 2026 il cost basis convenzionale al 16/03/2026 è una semplificazione conservativa concordata col commercialista (residenza fiscale acquisita in Italia da quella data — riparte la base imponibile). Per token mai entrati in catena di permute (es. acquistati direttamente in EUR su Bitpanda nel 2025), il cost basis effettivo potrebbe essere diverso dal valore al 16/03/2026. Discutere col commercialista caso per caso.
Riferimenti: art. 67 c-ter TUIR, Legge di Bilancio 2023 (L. 197/2022), Circolare AdE 30/E del 2023.
Quadro RT — plusvalenze e altri redditi diversi di natura finanziaria. È il quadro dove dichiari il capital gain crypto al 33%. Il tab "Quadro RT" di tr4ck3r genera il riepilogo da copiare/allegare.
Quadro RW — monitoraggio fiscale degli investimenti detenuti all'estero. Obbligatorio per Bitpanda (Austria) e Swissquote (Svizzera): vanno indicati saldi al 16/03 (inizio possesso fiscalmente rilevante) e 31/12 (fine periodo), con cambi ufficiali. Roadmap V1.1 aggiunge un helper.
Quadro RM — redditi a tassazione separata. Rilevante per derivati/forex non IRPEF; tipicamente non applicabile a crypto detenute come investimento.
Quadro RL — altri redditi (dividendi, royalty, staking rewards considerati "redditi diversi" se non in regime di impresa). Se in futuro attivi staking ETH/HBAR, le rewards potrebbero rientrare qui — verifica con il commercialista la classificazione corretta (RL vs RT).
tr4ck3r oggi copre operativamente solo RT (calcolo) e fornisce input per RW (saldi). RM/RL sono fuori scope.
↻ Aggiorna prezzi correnti. Fetcha live i prezzi di mercato da Binance + CoinGecko (per i ticker non su Binance) e li scrive in state.refPrices. Puoi cliccarlo quante volte vuoi: è puro cache live, nessun limite pratico. Auto-refresh all'apertura della app se i prezzi sono vecchi più di 30 minuti.
↑↓ Sync. Pull → Push verso il repo privato tr4ck3r-data via GitHub API. Da fare dopo qualunque modifica che vuoi conservare: nuova vendita, click su Calcola carico, edit manuali. Senza Sync le modifiche restano solo nel localStorage di questo browser. NON serve dopo "Aggiorna prezzi" — quel cache si rigenera live.
Anonymity mode. Bottone in alto a destra. Quando ON sfoca tutti gli importi €, le quantità e i P/L (classe .sensitive). Date, ticker, percentuali, label provider/exchange restano sempre leggibili. Stato persistito in localStorage.
↓ JSON / ↑ JSON. Export/import manuale dell'intero state — utile per backup di emergenza o per migrare a un altro browser senza Sync.
Provider. Swissquote (banca FINMA, multi-asset XRP + 6 ticker) e Bitpanda (Austria VASP, 10 ticker incluse small cap come AERO/RSR/XDC/XPL/VSN). Entrambi pre-residenza italiana — i saldi attuali sono il risultato del trasferimento al 16/03.
Wallet logici. Per Swissquote XRP ci sono 6 wallet storici (5 fissi + 0r4ng3 "resto"). Gli altri ticker hanno 1 wallet ciascuno (sq_*, bp_*). I 5 fissi (brun0rti1, m4tt14, s1st3r, p4gl14, b1n0) sono mostrati in tabella separata "legacy" e esclusi dai KPI principali per non gonfiare i totali.
Fonti prezzi. Cost basis = Binance kline 1d OHLC÷4 al 16/03/2026 (EUR diretto o via USDT × EURUSDT). Prezzi correnti = Binance ticker live. Fallback CoinGecko per ticker assenti da Binance (`/coins/{id}/history` per cost basis con throttling 12s, `/simple/price` per current in singola batched call).
Storage. Runtime in localStorage chiave tr4ck3r_state_v1. Sync via GitHub API (Fine-grained PAT scope tr4ck3r-data, Contents r/w) salvato in tr4ck3r_gh_pat dietro Cloudflare Access OTP. V1 last-write-wins basato su state.exportedAt.
Valore totale. Σ (balance × prezzo_corrente) sui wallet main (esclusi 5 legacy XRP). È il valore di mercato del portfolio adesso.
P/L latente netto. (Valore totale − Costo basis) al netto del 33%. Cioè: cosa ti resterebbe in tasca dopo le tasse se vendessi tutto adesso. Le minus latenti restano intere (non pagano tasse). Il meta sotto mostra il valore lordo.
Top 5 ticker. I 5 ticker con maggiore allocazione EUR sui wallet main, con la rispettiva % e la concentrazione cumulata. Snapshot della concentrazione del portfolio.
Valore per provider. Suddivisione del Valore totale tra Swissquote e Bitpanda (esclusi i 5 legacy XRP), con importi e percentuali. Snapshot della concentrazione tra exchange.
Cattura una "fotografia" delle posizioni (saldi wallet + prezzi correnti EUR) a una data specifica. Serve per il Quadro RW del Modello Redditi PF, che richiede valore inizio e fine periodo per ogni asset detenuto su exchange esteri (Bitpanda Austria, Swissquote Svizzera). Pratica consigliata: cattura uno snapshot al 31/12 di ogni anno fiscale e uno al 16/03/2026 (inizio possesso fiscalmente rilevante).
⚠ Lo snapshot usa i prezzi presenti in state.refPrices. Se sono vecchi clicca ↻ Aggiorna nel tab Portfolio prima di catturare. Per il 16/03/2026 i prezzi correnti non saranno disponibili — usare i valori di state.costBasis a mano via JSON.
Smoke test del calcolo fiscale (compensazione plus/minus, riporto 4 anni, edge cases). Apri la pagina e verifica che tutti i casi siano verdi. Da rieseguire dopo modifiche a fiscalSummary, plMinusForSale, costBasisFor.
Diario fiscale, decisioni col commercialista, scadenze, qualunque cosa. Salvato automaticamente in state.knowledgeNotes; ricordati di fare Sync per propagarlo.