You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: versão v1.3 — correções ortográficas, tratamento de taxas em transferências e fluxograma atualizado
- Atualizar título da secção 2 para: “Arquitetura do algoritmo (v1.3)”
- Adicionar secção sobre **taxas em transferências** como micro-alienações e exemplo prático
- Atualizar fluxograma para incluir tratamento de taxas em transferências
- Adicionar nota explicativa sobre taxas em transferências
- Atualizar sumário final para incluir tratamento de taxas em transferências
- Refinar exemplos e linguagem para maior clareza e precisão técnica
@@ -42,7 +44,7 @@ O objetivo é criar e manter uma "fonte da verdade" lógica e transparente que p
42
44
43
45
---
44
46
45
-
## 2. Arquitetura do algoritmo (v1.2)
47
+
## 2. Arquitetura do algoritmo (v1.3)
46
48
47
49
### 1. Visão geral e conformidade legal
48
50
@@ -51,7 +53,7 @@ Este documento descreve um algoritmo fiscal, desenhado para estar em conformidad
51
53
O motor opera sobre cinco princípios fundamentais:
52
54
53
55
1.**FIFO por entidade depositária (Art. 43.º, n.º 9):**
54
-
O método `FIFO (First-In, First-Out) é aplicado individualmente a cada "entidade depositária" (ex.: exchanges).
56
+
O método `FIFO (First-In, First-Out)` é aplicado individualmente a cada "entidade depositária" (ex.: exchanges).
55
57
Todas as carteiras **self-custody** (frias, quentes, etc.) são tratadas como uma única entidade depositária para efeitos de cálculo, a menos que o utilizador opte por separá-las.
56
58
57
59
2.**Transferência entre entidades é um evento neutro:**
@@ -80,7 +82,7 @@ Cada `Lot` deve ter:
80
82
81
83
>**📝 Nota:** Para que serve `originalAcquisitionDate`?
82
84
>
83
-
>Para preservar a data real de aquisição de um lote que foi comprado numa entidade **A** e posteriormente transferido para **B**.
85
+
>Para preservar a data real de aquisição de um lote que foi comprado numa entidade **A** e posteriormente transferido para **B**.
84
86
>Sem este campo, o algoritmo poderia reiniciar o contador dos **365 dias** ao receber o ativo noutra entidade
85
87
86
88
---
@@ -95,7 +97,6 @@ Um depósito é sempre uma **aquisição** que cria um novo lote:
95
97
***tag: '`staking`', '`airdrop`', '`interest`', '`rewards`':**`costPerUnit` = 0, `acquisitionDate` = data da transação.
96
98
***`originalAcquisitionDate`** = `null`.
97
99
98
-
99
100
#### ➤ Caso 1: Compra com FIAT (`tag: 'buy'`)
100
101
**Exemplo:**
101
102
- Data: 2023-01-15
@@ -132,7 +133,7 @@ Um depósito é sempre uma **aquisição** que cria um novo lote:
132
133
133
134
Inclui **qualquer alienação para algo não-cripto**, como:
134
135
135
-
***FIAT**
136
+
***FIAT**
136
137
***NFT**
137
138
***Compra de bens ou serviços**
138
139
***Pagamentos com cartões que gaste a sua cripto**
Aciona `_calculateFifoForSale` na entidade de origem.
145
146
146
-
Para cada lote consumido: `**data de aquisição efetiva = originalAcquisitionDate ?? acquisitionDate**
147
-
147
+
Para cada lote consumido: `**data de aquisição efetiva = originalAcquisitionDate ?? acquisitionDate**`
148
148
149
149
Isto garante que transferências anteriores não reiniciam o contador dos 365 dias.
150
150
@@ -194,33 +194,38 @@ A data da transferência `acquisitionDate` **não influencia os 365 dias**.
194
194
- Total mais-valia = 15.000€ + 30€ = **15.030€**
195
195
- IRS devido = 15.030€ × 28% = **4.208,40€**
196
196
197
-
#### ➤ Caso 3: Transferência entre entidades (`tag: 'transfer'`, `fiatValue = null`)
197
+
#### ➤ Caso 3: Transferência entre entidades com taxa (`tag: 'transfer'`, `fiatValue = null`)
198
198
**Exemplo:**
199
199
- Data: 2024-06-01
200
200
- Entidade de origem: Binance
201
201
- Entidade de destino: Ledger
202
202
- Ativo: BTC
203
-
- Quantidade: 0.5
203
+
- Quantidade enviada: 0.5
204
+
- Taxa: 0.001 BTC (valor implícito: 60€)
204
205
- Custo do lote consumido: 0.5 × 30.000€ = 15.000€
205
206
- Data de aquisição original: 2023-01-15
206
207
207
208
**Resultado:**
208
-
- Cria novo lote na Ledger:
209
+
-**Micro-alienação da taxa:**
210
+
- Custo da taxa = 0.001 × 30.000€ = 30€
211
+
- Mais-valia da taxa = 60€ - 30€ = **30€**
212
+
-**Cria novo lote na Ledger:**
209
213
-`acquisitionDate = 2024-06-01`
210
214
-`costPerUnit = 30.000€`
211
-
-`amount = 0.5`
215
+
-`amount = 0.499`
212
216
-`originalAcquisitionDate = 2023-01-15`
213
217
214
-
➡️ **Evento neutro fiscalmente**, não gera mais-valia.
218
+
➡️ **Evento neutro fiscalmente**, não gera mais-valia — mas a taxa foi apurada separadamente.
219
+
215
220
216
221
#### 3.3. `trade` (Permuta cripto-cripto)
217
222
218
223
➡️ **Evento neutro - Art. 10.º, n.º 20**
219
224
220
-
1. Consome lotes do ativo entregue.
221
-
2. Cria novo lote do ativo recebido.
225
+
1. Consome lotes do ativo entregue.
226
+
2. Cria novo lote do ativo recebido.
222
227
3. O custo do novo lote é: `costPerUnit` = custo de aquisição dos lotes entregues
223
-
4.`acquisitionDate` = data da permuta.
228
+
4.`acquisitionDate` = data da permuta.
224
229
5.`originalAcquisitionDate` = `null`.
225
230
226
231
#### ➤ Caso 1: Permuta simples (BTC → ETH)
@@ -289,8 +294,7 @@ A taxa é uma **micro-alienação** do ativo usado para pagá-la.
289
294
Valor de realização:
290
295
291
296
1.**Venda para FIAT:**
292
-
Usa o **preço implícito** da venda: `**valor = fiatValue / fromAmount**
293
-
297
+
Usa o **preço implícito** da venda: `**valor = fiatValue / fromAmount**`
294
298
295
299
2.**Permuta ou transferência:**
296
300
Usa `feeFiatValue`, introduzido pelo utilizador.
@@ -328,10 +332,13 @@ Valor de realização:
328
332
- Total mais-valia = 15.000€ + 30€ = **15.030€**
329
333
- IRS = 15.030€ × 28% = **4.208,40€**
330
334
335
+
> **📝 Nota sobre taxas em transferências:**
336
+
> Mesmo que a transferência entre entidades do mesmo titular seja neutra fiscalmente, a taxa de rede paga em cripto é uma micro-alienação — e deve ser apurada separadamente para manter a precisão dos custos nos lotes.
337
+
331
338
---
332
339
333
340
### 5. Tratamento fiscal de NFT
334
-
#### 5.1 O que é NFT?
341
+
#### 5.1 O que é NFT?
335
342
NFT significa Non-Fungible Token, em português: Token Não Fungível.
336
343
337
344
**Não fungível** = Único e irrepetível
@@ -340,8 +347,7 @@ Um NFT é único - não pode ser trocado por outro igual, porque cada um tem car
340
347
341
348
Exemplo:
342
349
- Um Bitcoin = outro Bitcoin → fungível.
343
-
-Um NFT de uma obra de arte digital = só existe um → não fungível.
344
-
350
+
- Um NFT de uma obra de arte digital = só existe um → não fungível.
345
351
346
352
#### 5.2. Enquadramento fiscal de NFT em Portugal (CIRS)
347
353
Para efeitos do Código do IRS, NFT são tratados como criptoativos.
@@ -429,7 +435,7 @@ O **Código do IRS não distingue explicitamente entre DeFi e CeFi**, ou seja, *
429
435
2.**Alienação de ativos DeFi (venda, troca, saque)** → **mais-valia calculada com FIFO** (Art. 43.º, n.º 9).
4.**Taxas em DeFi (gas fees, comissões)** → tratadas como **micro-alienações** se pagas em cripto.
432
-
5.**Isenção após 365 dias** → aplicável, desde que o ativo seja detido pore 365 diasou mais (independentemente de estar em DeFi ou CeFi).
438
+
5.**Isenção após 365 dias** → aplicável, desde que o ativo seja detido por 365 dias ou mais (independentemente de estar em DeFi ou CeFi).
433
439
434
440
#### 6.4. Como implementar DeFi no algoritmo
435
441
@@ -509,9 +515,9 @@ O **Código do IRS não distingue explicitamente entre DeFi e CeFi**, ou seja, *
509
515
510
516
-**Depósitos:** criam novos lotes com custo real ou zero, dependendo do tipo (`buy` ou rendimento passivo).
511
517
-**Alienações para FIAT, NFT, bens, serviços ou qualquer ativo não-cripto:** tributáveis se detidos menos de 365 dias; isentos se ≥=365 dias. Apuram-se mais-valias usando FIFO e preservando datas originais.
512
-
-**Transferências entre entidades:** evento neutro, preserva data e custo.
518
+
-**Transferências entre entidades:** evento neutro, preserva data e custo - **inclui tratamento de taxas como micro-alienações**.
513
519
-**Permutas:** evento neutro - o novo ativo tem como custo o valor de aquisição do ativo entregue e como data de aquisição a data da permuta
514
-
-**Taxas:** separa lógica entre FIAT e cripto, aplicando dupla entrada quando necessário - e podem tambem ser dedutiveis nas mais-valias
520
+
-**Taxas:** separa lógica entre FIAT e cripto, aplicando dupla entrada quando necessário - e podem tambem ser dedutiveis nas mais-valias. **Inclui tratamento de taxas em transferências como micro-alienações.**.
0 commit comments