Crypto SAC vs FIFO, smart contracts și dovezi blockchain pentru ANAF: ghid super-avansat 2026
La nivel de specialist, problema reală nu mai este ce cotă aplici, ci cum construiești un sistem de evidență crypto SAC FIFO blockchain documentație ANAF care produce dovezi digitale irefutabile, reproductibile bit-cu-bit, atunci când inspectorul îți cere reconstituirea cost basis pe trei ani fiscali și șapte ledgere. Începând cu 1 ianuarie 2026, cota pe câștigul din transferul de monedă virtuală a urcat la 16% (Legea 239/2025), iar furnizorii reglementați raportează automat sub DAC8/CARF — prima raportare către ANAF în martie 2027 pentru anul 2026. Asimetria informațională a dispărut: Fiscul are deja fluxul tău on-chain și off-chain, deci jocul se mută integral pe terenul reconcilierii și al apărării cantitative.
Acest material presupune că stăpânești deja diferența SAC vs FIFO, mecanica tax loss harvesting și structura D212. Mergem direct în zona grea: tracking cost basis crypto cu algoritm SAC pe loturi, impozitarea event-urilor de smart contract și DeFi, gestionarea cost basis tracking pe mai multe ledgere (Ethereum, L2-uri, Solana, exchange-uri centralizate) și construirea unui dosar de blockchain evidence pentru tax audit crypto care rezistă la o expertiză contradictorie. Vom trata smart contract event impozitare DeFi, dovezi digitale irefutabile ANAF crypto și matematica fiscală care le leagă.
Premisa centrală: un cost basis nedocumentat se evaluează de inspector la zero. Diferența dintre un basis demonstrabil de 180.000 lei și unul respins înseamnă, la cota de 16%, exact 28.800 lei impozit suplimentar plus accesorii. Documentația nu e birocrație — e linia ta de profit după taxe.
Modelul de loturi: structura de date care precede orice algoritm
Orice metodă de cost basis — fie SAC (cost mediu actualizat), fie FIFO — operează peste o structură de loturi (tax lots). Un lot este tripletul minimal: (cantitate, cost_basis_unitar_lei, timestamp_dobândire), plus metadate de proveniență. Eroarea de specialist este să tratezi „1 BTC" ca fungibil contabil; din punct de vedere fiscal, fiecare achiziție este un lot distinct cu basis propriu, indiferent de fungibilitatea on-chain.
Definim formal. Pentru un activ, la momentul achiziției i:
- Cost basis lot = preț_unitar × cantitate + comisioane_directe_alocate. Comisioanele de exchange și gas-ul aferent achiziției intră în basis (cresc costul, reduc câștigul viitor).
- Cursul de conversie: dacă tranzacția e cripto-cripto sau în USDT/USDC, valoarea în lei se stabilește la cursul BNR al zilei pentru valuta de referință, sau la prețul spot agregat la timestamp-ul exact al confirmării on-chain. Alege o singură sursă de preț și documenteaz-o ca politică — inconsecvența surselor e primul lucru pe care îl atacă inspectorul.
SAC: formula de cost mediu și capcana de reset
Metoda costului mediu actualizat recalculează basis-ul unitar la fiecare achiziție, păstrându-l constant la vânzări (vânzarea consumă din pool fără a modifica media). Recurența:
- La achiziție:
basis_mediu_nou = (Q_vechi × basis_vechi + Q_add × preț_add + comision) / (Q_vechi + Q_add) - La vânzare:
câștig = Q_vând × (preț_vânzare − basis_mediu);basis_mediurămâne neschimbat;Qscade.
Capcana de specialist: când pool-ul ajunge la zero (vinzi tot), media trebuie resetată. Dacă re-cumperi după lichidare completă, basis-ul vechi nu mai are relevanță. Un algoritm care nu detectează evenimentul Q→0 propagă o medie contaminată și produce câștig fals. În cod, condiția de reset e if Q_rezidual < epsilon: basis_mediu = 0 (epsilon pentru dust-ul de satoshi/wei).
FIFO: coada de loturi și optimizarea de hold
FIFO consumă loturile în ordinea dobândirii. Structura naturală e o coadă (deque) de loturi ordonate cronologic. La vânzarea a Q unități, golești loturi din capul cozii până acoperi Q, eventual spargând ultimul lot parțial. FIFO produce, în piață ascendentă, cel mai mare câștig declarat (basis-ul cel mai vechi e cel mai mic) — deci cel mai mare impozit imediat, dar și cel mai curat tratament pe termen lung.
În România, Codul fiscal nu impune explicit o metodă unică pentru persoane fizice; ANAF acceptă în practică FIFO sau cost mediu, cu condiția consecvenței pe tot anul fiscal și a documentării coerente. Schimbarea metodei între ani trebuie justificată și aplicată unitar — arbitrajul oportunist de metodă per-tranzacție este un red flag major.
Comparație numerică SAC vs FIFO pe un caz multi-lot
Construim un scenariu concret. Cumperi ETH în trei tranșe în 2026, apoi vinzi parțial:
- Lot A: 2 ETH la 12.000 lei/ETH (10 feb 2026) → basis 24.000 lei
- Lot B: 1 ETH la 15.000 lei/ETH (18 apr 2026) → basis 15.000 lei
- Lot C: 2 ETH la 9.000 lei/ETH (5 iun 2026) → basis 18.000 lei
- Vânzare: 3 ETH la 16.000 lei/ETH (20 sep 2026) → încasare brută 48.000 lei
FIFO: consumi integral Lot A (2 ETH, basis 24.000) plus 1 ETH din Lot B (basis 15.000 pe acel ETH). Cost total alocat vânzării = 39.000 lei. Câștig = 48.000 − 39.000 = 9.000 lei. Impozit 16% = 1.440 lei. Pool rezidual după vânzare: 2 ETH din Lot C, basis 18.000 lei (Lot A consumat complet, Lot B consumat complet — cele 3 ETH vândute provin din A întreg și din B întreg).
SAC: basis mediu la momentul vânzării = (24.000 + 15.000 + 18.000) / 5 ETH = 57.000 / 5 = 11.400 lei/ETH. Vânzare 3 ETH: cost = 3 × 11.400 = 34.200 lei. Câștig = 48.000 − 34.200 = 13.800 lei. Impozit 16% = 2.208 lei. Pool rezidual: 2 ETH la basis mediu 11.400 = 22.800 lei.
Observația de specialist: FIFO produce aici câștig declarat mai mic (9.000 vs 13.800) pentru că „scoate" loturile scumpe primul. Dar atenție — basis-ul rezidual diferă: FIFO lasă 18.000 lei pe 2 ETH, SAC lasă 22.800 lei. Diferența de impozit imediat (768 lei) se reciclează în impozit viitor: SAC îți dă un basis rezidual mai mare, deci câștig viitor mai mic. Pe orizont infinit și fără rate diferențiate de timp, suma impozitului e identică; diferența e pur de timing. Valoarea reală a deciziei SAC vs FIFO este valoarea-timp a banilor pe impozitul amânat, plus poziționarea față de pragul anual de 600 lei și plafoanele CASS.
Smart contract event impozitare DeFi: taxonomia event-urilor
Aici e zona unde 90% din investitori greșesc, pentru că tratează DeFi ca pe un exchange. Fiecare interacțiune cu un smart contract emite un event log (Transfer, Swap, Deposit, Mint, Harvest) și fiecare poate fi sau nu un fapt generator de impozit. Clasificarea fiscală:
- Swap pe DEX (Uniswap, Curve): este transfer de monedă virtuală → fapt generator. Predai activul X, primești Y; câștigul pe X se realizează la cursul momentului. Basis-ul lui Y = valoarea de piață a lui X la swap.
- Wrapping (ETH→WETH): tehnic un mint 1:1 fără schimbare de valoare economică. Poziție prudentă: tratează ca non-event de realizare, dar păstrează continuitatea basis-ului (WETH moștenește basis-ul ETH). Documentează raționamentul.
- Furnizare de lichiditate (add liquidity): depui două active, primești LP token. Conservator: realizare pe activele depuse (le „vinzi" către pool), basis nou pe LP token = valoarea agregată la depunere. La retragere, simetric.
- Staking rewards / yield harvest: recompensele sunt venit la primire, evaluate la cursul momentului confirmării, cu basis egal cu acea valoare. Vânzarea ulterioară generează câștig/pierdere față de acel basis. Evenimentul de „claim/harvest" e timestamp-ul de venit, nu cel de acumulare teoretică.
- Airdrop / fork: venit la primire dacă ai control efectiv (poți transfera), evaluat la valoarea de piață; dacă piață ilichidă, basis prudent zero documentat.
Pentru fiecare clasă, datele de probă sunt în log-ul tranzacției: txHash, blockNumber, logIndex, adresa contractului, signatura event-ului (topic0 = keccak al semnăturii) și parametrii decodați din ABI. Un dosar serios decodează ABI-ul contractului și mapează fiecare logIndex la o clasificare fiscală explicită.
Cost basis tracking pe mai multe ledgere: problema de reconciliere
Provocarea reală nu e un singur lanț, ci portarea basis-ului între ledgere. Când transferi 1 BTC de pe Binance pe wallet self-custody, apoi prin bridge pe o L2, basis-ul trebuie să „călătorească" cu activul. Un transfer intern (același proprietar) NU e fapt generator — dar dacă tracking-ul tău îl tratează ca depozit nou cu basis necunoscut, ori pierzi basis (impozit mai mare), ori îl dublezi (risc de fraudă la audit).
Regula de identificare a transferurilor interne
Algoritmic, un transfer e intern dacă adresa destinație îți aparține (control demonstrabil prin semnătură) și cantitatea, net de gas, se conservă într-o fereastră temporală strânsă. Construiește un graf de proveniență: noduri = (ledger, adresă), muchii = transferuri, etichetate cu cantitate și timestamp. Matching-ul deposit↔withdrawal se face pe toleranță: |Q_out − Q_in − gas| < toleranță și |t_out − t_in| < fereastră. Bridge-urile complică: input pe chain A, output pe chain B cu alt token (wrapped), deci matching-ul se face pe valoare economică, nu pe identitate de token.
Capcana de bridge: la cross-chain, contractul de pe sursă face burn/lock, cel de pe destinație face mint. Dacă nu corelezi explicit cele două log-uri, sistemul vede o „dispariție" și o „apariție" — și un audit naiv le citește ca vânzare + cumpărare, generând câștig fantomă. Documentează corelarea prin txHash-urile ambelor capete plus mesajul de bridge (nonce/messageId).
Pragul de 600 lei, CASS și optimizarea cantitativă 2026
Reamintim regula exactă pentru 2026: câștigul sub 200 lei pe tranzacție e neimpozabil, dar numai dacă totalul câștigurilor anuale nu depășește 600 lei. Dacă depășești 600 lei cumulat, întreaga sumă devine impozabilă (nu doar diferența peste prag) — un „cliff", nu o franșiză. Exemplu: 800 lei câștig total → impozit 16% pe tot = 128 lei. Implicația de planificare: dacă ești la 590 lei câștig cumulat spre final de an, a realiza încă 50 lei te aruncă peste cliff și transformă cei 640 lei integral în bază impozabilă — o decizie de 102,4 lei impozit pentru 50 lei câștig marginal.
Pe CASS: pentru veniturile din 2026, baza se raportează la salariul minim brut (4.050 lei la 1 ianuarie 2026) și la plafoanele de 6, 12 și 24 salarii minime. CASS (10%) se datorează când venitul net cumulat din surse non-salariale (crypto + chirii + dividende + dobânzi) depășește 6 salarii minime; baza de calcul este forfetară pe tranșe, nu pe venitul integral. La 6–12 salarii minime, baza = 6 salarii minime; impozit CASS ≈ 2.430 lei. Optimizarea de specialist: tax loss harvesting nu reduce doar impozitul pe câștig (16%), ci poate trage venitul net sub pragul de 6 salarii minime și elimina integral CASS — un efect de prag care valorează mult mai mult decât economia liniară.
Tax loss harvesting cu conștiința pragurilor
Spre deosebire de SUA, în România nu există o regulă wash-sale codificată explicit pentru crypto. Asta permite realizarea unei pierderi și re-achiziția imediată a aceluiași activ pentru a reseta basis-ul. Tehnica: identifici loturile cu pierdere latentă (basis > preț curent), le vinzi pentru a materializa pierderea care se compensează cu câștigurile anului (pierderea din transfer de monedă virtuală se reportează în limitele Codului fiscal), apoi re-cumperi. Cuantifică întotdeauna efectul net: economia de impozit pe câștig plus potențiala scădere sub pragul CASS, minus costurile de tranzacție (spread + gas) ale dublului trade. Sub gas mare pe L1, harvesting-ul devine neeconomic — mută-l pe L2 sau pe exchange centralizat.
Construirea dovezii digitale irefutabile
O „dovadă irefutabilă" în context ANAF nu e un screenshot. Este un lanț de probă criptografic, reproductibil de un terț. Componentele:
- Ancorare on-chain: pentru fiecare event fiscal, txHash + blockNumber + logIndex. Acestea sunt imuabile și verificabile independent de inspector pe orice node sau explorer. Un txHash e o semnătură de finalitate.
- Reconstrucția deterministă a basis-ului: registrul tău de loturi trebuie să fie un fișier (CSV/JSON) care, rulat printr-un script public de calcul SAC/FIFO, reproduce exact câștigul declarat. Salvează scriptul și versiunea. Reproductibilitatea = irefutabilitate.
- Hash de integritate: calculează SHA-256 al registrului la finalul fiecărui an fiscal și ancorează-l (timestamp printr-o tranzacție OP_RETURN sau un serviciu de notarizare). Astfel demonstrezi că evidența nu a fost modificată retroactiv după ce ai aflat de control — răspunsul matematic la acuzația de „documente create post-factum".
- Sursa de preț documentată: politica scrisă de cursuri (ex. „spot agregat la timestamp UTC al confirmării, sursă X; pentru lei, curs BNR ziua respectivă"), aplicată consecvent. O metodologie scrisă și consecventă bate orice contestare punctuală.
- Probarea controlului adreselor: pentru a demonstra că un transfer e intern, semnezi un mesaj cu cheia privată a adresei (signMessage), dovedind controlul fără a expune cheia. Aceasta e dovada că deposit-ul și withdrawal-ul aparțin aceluiași contribuabil.
Sub DAC8/CARF, ANAF primește din martie 2027 datele exchange-urilor pentru 2026. Dosarul tău trebuie să reconcilieze cu raportarea lor: orice delta între ce a raportat platforma și ce ai declarat tu devine întrebare de audit. Construiește o foaie de reconciliere CARF: pe o coloană fluxul raportat de furnizori, pe alta evidența ta, cu explicație documentată pentru fiecare diferență (transferuri interne, DeFi neraportat de exchange, diferențe de curs).
Edge-case-uri de specialist
- Dust și rounding: la 18 zecimale (wei), erorile de rotunjire se acumulează. Folosește aritmetică pe întregi (unități minimale) intern, convertește la lei doar la final. Un epsilon greșit la reset SAC poate genera „câștiguri" de fracțiuni de leu × mii de tranzacții.
- Tranzacții eșuate: un tx revertit consumă gas dar nu transferă activul. Gas-ul pe tx eșuat NU intră în basis (nu a achiziționat nimic) — dar trebuie tratat coerent ca și cost; poziție prudentă: cost nedeductibil, documentat separat.
- MEV / sandwich: slippage-ul efectiv schimbă cantitatea primită vs cea așteptată. Basis-ul se calculează pe cantitatea efectiv primită din log, nu pe cea din interfața DEX.
- Rebasing tokens (tip stETH): soldul se modifică fără tranzacție. Rebase-ul pozitiv e venit la momentul acumulării — un coșmar de tracking care cere snapshot-uri periodice de sold.
- NFT și fracționare: dacă tratezi un NFT ca monedă virtuală pentru transfer, aplici aceeași logică de basis; clasificarea rămâne sensibilă și cere poziție documentată.
Checklist operațional — sistemul tău anti-audit
- Pas 1 — Ingestie multi-ledger: exportă raw toate tranzacțiile (API exchange + scan on-chain per adresă) cu txHash, logIndex, timestamp. Nicio sursă manuală.
- Pas 2 — Graf de proveniență: construiește nodurile (ledger, adresă) și etichetează fiecare transfer ca intern (control probat) sau extern (fapt generator).
- Pas 3 — Clasificare event-uri DeFi: decodează ABI, mapează fiecare logIndex la swap/LP/staking/airdrop și marchează faptele generatoare vs non-realizările.
- Pas 4 — Motor de loturi: rulează SAC SAU FIFO consecvent pe tot anul; loghează fiecare consum de lot cu basis și rezidual; detectează reset-urile Q→0.
- Pas 5 — Curs și lei: aplică politica scrisă de preț; convertește la lei la timestamp; păstrează sursa pentru fiecare conversie.
- Pas 6 — Optimizare praguri: verifică pragul de 600 lei (cliff) și plafoanele CASS (6/12/24 × 4.050 lei); planifică harvesting-ul ca să rămâi sub praguri unde e avantajos.
- Pas 7 — Reconciliere CARF: confruntă evidența ta cu fluxul raportabil de furnizori; documentează fiecare delta.
- Pas 8 — Sigilare criptografică: SHA-256 pe registrul anual, ancorat on-chain cu timestamp; arhivează scriptul de calcul versionat.
- Pas 9 — D212: declară câștigul net în secțiunea de transfer de monedă virtuală; aplică 16% pe câștigul 2026; termen 25 mai 2027.
- Pas 10 — Dosar de apărare: pachet final = registru loturi + script + hash ancorat + foaie reconciliere CARF + politică de preț + dovezi de control al adreselor. Reproductibil de orice terț, bit-cu-bit.
Concluzia de specialist: în 2026, edge-ul fiscal pe crypto nu mai vine din alegerea metodei, ci din calitatea probatorie a sistemului. Cine poate reconstrui determinist orice câștig, ancorat criptografic și reconciliat cu raportarea CARF, transformă un audit potențial devastator într-o formalitate de verificat hash-uri. Restul plătesc impozit pe basis zero — și accesoriile pe deasupra.