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
Copy file name to clipboardExpand all lines: README.md
+52-98Lines changed: 52 additions & 98 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,20 +6,21 @@
6
6
7
7
### ⚠️ Aviso legal e limitações (leitura obrigatória)
8
8
9
-
Este algoritmo é uma ferramenta de cálculo baseada numa interpretação lógica do Código do IRS. No entanto, existem nuances legais críticas que exigem intervenção manual do utilizador:
9
+
Este algoritmo é uma ferramenta de cálculo baseada numa interpretação lógica do Código do IRS e nas orientações dos informativos fiscais vigentes. No entanto, existem nuances legais críticas que exigem intervenção manual do utilizador:
10
10
11
11
1.***Security tokens* (valores mobiliários):** O algoritmo assume por defeito que os ativos **NÃO** são valores mobiliários. Se o criptoativo representar uma participação financeira, dívida ou direito a dividendos (ex: *tokens* de *equity*, *bonds* tokenizados), a **isenção de 365 dias NÃO se aplica**. Estes ativos são sempre tributados (Categoria G), independentemente do tempo de detenção. O utilizador deve assinalar manualmente estes ativos como `isSecurityToken: true`.
12
12
2.***Staking* e rendimentos em cripto:** De acordo com o entendimento do regime fiscal português, os rendimentos gerados e pagos diretamente em criptoativos (como recompensas de *staking*, *lending*, *airdrops* ou *yield farming*) beneficiam de um regime de **suspensão de tributação**.
13
13
***Quando se aplica?** Aplica-se no exato momento em que recebes os *tokens* na tua carteira. Como recebeste ativos digitais e não moeda fiduciária (Euros), a AT "congela" a exigência do imposto. Não há qualquer tributação imediata ou obrigação de declarar.
14
14
***Como o algoritmo trata isto?** Para refletir esta suspensão, o algoritmo regista estas entradas com um **`custo de aquisição = 0,00€`** (custo zero), iniciando aí a contagem do prazo de detenção de 365 dias.
15
-
***Quando termina a suspensão?** A suspensão cessa no momento em que realizas uma **alienação onerosa para moeda *fiat*** (venda por Euros, Dólares, etc.) ou compras bens/serviços com esses *tokens*. Nesse instante, geras liquidez real e o imposto é devido na **Categoria G (mais-valias)** sobre 100% do valor da venda (já que o teu custo guardado foi zero), a menos que o ativo tenha sido detido por 365 dias ou mais, caso em que fica legalmente excluído de tributação.
16
-
3.**Matriz de anexos da declaração de IRS:** O cálculo da mais-valia baseia-se na regra *FIFO*, e o destino de exportação do relatório segue estritamente a estrutura e instruções dos formulários oficiais da Autoridade Tributária:
15
+
***Quando termina a suspensão?** A suspensão cessa no momento em que realizas uma **alienação onerosa para moeda fiat** (venda por Euros, Dólares, etc.) ou compras bens/serviços com esses *tokens*. Nesse instante, geras liquidez real e o imposto é devido na **Categoria G (mais-valias)** sobre 100% do valor da venda (já que o teu custo guardado foi zero), a menos que o ativo tenha sido detido por 365 dias ou mais, caso em que fica legalmente excluído de tributação.
16
+
3.**Exclusão de NFT:** Conforme detalhado nas orientações doutrinárias e informativos fiscais especializados (como o Informativo Fiscal da APECA), as operações e ganhos associados a NFT (ativos não fungíveis) encontram-se **excluídos de tributação** na categoria de criptoativos. O algoritmo ignora o cálculo de mais-valias sobre estes itens para efeitos de imposto, tratando-os como bens digitais não sujeitos a esta moldura fiscal.
17
+
4.**Matriz de anexos da declaração de IRS:** O cálculo da mais-valia baseia-se na regra *FIFO*, e o destino de exportação do relatório segue estritamente a estrutura e instruções dos formulários oficiais da Autoridade Tributária, cruzando a natureza do ativo, o prazo de detenção e a jurisdição da entidade:
* Se a operação ocorreu no estrangeiro ou *self-custody* (`isNational: false`): Deve ser declarada detalhadamente no **Anexo J, Quadro 9.4A**.
19
20
* Se a operação ocorreu através de um intermediário nacional (`isNational: true`): Deve ser declarada no **Anexo G, Quadro 18A**.
20
21
***Longo prazo (>= 365 dias) - Não sujeitas a tributação:**
21
22
* Independentemente de estarem em carteiras privadas (*self-custody*), *exchanges* internacionais ou corretoras nacionais, os ganhos com criptoativos comuns detidos por mais de um ano estão excluídos de tributação. Devem ser declarados na totalidade no **Anexo G1, Quadro 7** (mais-valias não sujeitas a tributação).
22
-
4.**Exclusão de atividade profissional (Categoria B / IRC):** Este algoritmo abrange **única e exclusivamente a gestão de património privado (Categoria G - mais-valias de particulares)**. Se o utilizador exercer uma atividade comercial ou profissional de compra e venda de criptoativos, mineração em escala industrial, ou se as transações forem efetuadas em nome de uma pessoa coletiva (empresa), os rendimentos enquadram-se na **Categoria B (regime simplificado ou contabilidade organizada)** ou em sede de **IRC**. Nestes cenários, aplicam-se regras de determinação de lucro e taxas de tributação totalmente distintas, estando fora do âmbito deste algoritmo.
23
+
5.**Exclusão de atividade profissional (Categoria B / IRC):** Este algoritmo abrange **única e exclusivamente a gestão de património privado (Categoria G - mais-valias de particulares)**. Se o utilizador exercer uma atividade comercial ou profissional de compra e venda de criptoativos, mineração em escala industrial, ou se as transações forem efetuadas em nome de uma pessoa coletiva (empresa), os rendimentos enquadram-se na **Categoria B (regime simplificado ou contabilidade organizada)** ou em sede de **IRC**. Nestes cenários, aplicam-se regras de determinação de lucro e taxas de tributação totalmente distintas, estando fora do âmbito deste algoritmo.
23
24
24
25
---
25
26
@@ -52,9 +53,6 @@ Este algoritmo é uma ferramenta de cálculo baseada numa interpretação lógic
52
53
-[5. Tratamento fiscal de NFT](#5-tratamento-fiscal-de-nft)
53
54
-[5.1 O que é NFT?](#51-o-que-é-nft)
54
55
-[5.2. Enquadramento fiscal de NFT em Portugal (CIRS)](#52-enquadramento-fiscal-de-nft-em-portugal-cirs)
55
-
-[➤ Caso 1: compra de NFT com FIAT](#-caso-1-compra-de-nft-com-fiat)
56
-
-[➤ Caso 2: venda de NFT por FIAT](#-caso-2-venda-de-nft-por-fiat)
57
-
-[➤ Caso 3: permuta NFT-NFT](#-caso-3-permuta-nft-nft)
58
56
-[6. Tratamento fiscal de DeFi](#6-tratamento-fiscal-de-defi)
59
57
-[6.1. O que é DeFi?](#61-o-que-é-defi)
60
58
-[Exemplos comuns de DeFi:](#exemplos-comuns-de-defi)
@@ -146,9 +144,8 @@ Cada `Lot` deve ter:
146
144
#### 3.1. `deposit`
147
145
148
146
Um depósito é sempre uma **aquisição** que cria um novo lote:
149
-
150
-
***tag: '`buy`':**`costPerUnit` = `fiatValue`, `acquisitionDate` = data da transação.
- Dias detidos: 624 dias → **Isento** (se não foi Security Token)
233
+
- Dias detidos: 624 dias → **Isento** (se não for *security token*)
237
234
238
235
**Cálculo:**
239
236
- Mais-valia = 30.000€ - 15.000€ = **15.000€**
@@ -395,13 +392,14 @@ Valor de realização:
395
392
- Total mais-valia = 15.000€ + 30€ = **15.030€**
396
393
- IRS = 15.030€ × 28% = **4.208,40€**
397
394
398
-
> **📝 Nota sobre taxas em transferências:**Même 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.
395
+
> **📝 Nota sobre taxas em transferências:**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.
399
396
400
397
---
401
398
402
399
### 5. Tratamento fiscal de NFT
400
+
403
401
#### 5.1 O que é NFT?
404
-
NFT significa Non-Fungible Token, em português: Token Não Fungível.
402
+
NFT significa *Non-Fungible Token*, em português: *Token* Não Fungível.
405
403
406
404
**Não fungível** = único e irrepetível.
407
405
Diferente de moedas ou criptomoedas (como Bitcoin ou Ethereum), que são fungíveis. Um NFT é único - não pode ser trocado por outro igual.
@@ -411,98 +409,41 @@ Diferente de moedas ou criptomoedas (como Bitcoin ou Ethereum), que são fungív
411
409
- Um NFT de uma obra de arte digital = só existe um → não fungível.
412
410
413
411
#### 5.2. Enquadramento fiscal de NFT em Portugal (CIRS)
414
-
Para efeitos do Código do IRS, NFT são tratados como criptoativos.
412
+
Para efeitos do Código do IRS, e suportado pelas orientações doutrinárias recentes (como as divulgadas pela APECA), os NFT possuem uma **exclusão expressa de tributação** na categoria de criptoativos, por carecerem da característica de fungibilidade exigida pela redação da lei.
415
413
416
-
**As regras são exatamente as mesmas:**
417
-
* Compra de NFT com FIAT → aquisição normal.
418
-
* Compra de NFT com cripto → permuta neutra (Art. 10.º, n.º 20).
419
-
* Venda de NFT por FIAT, cripto, outro NFT ou serviços → alienação tributável se < 365 dias (e se não for considerado atividade profissional).
420
-
* Permuta NFT-NFT → neutra; novo NFT recebe novo custo = custo do ativo entregue e nova data.
421
-
* Airdrops/recebimentos gratuitos de NFT → custo = **0,00€** (suspensão de tributação).
422
-
423
-
#### ➤ Caso 1: compra de NFT com FIAT
424
-
**Exemplo:**
425
-
- Data: 2024-05-01
426
-
- Entidade: OpenSea
427
-
- Ativo: NFT-123
428
-
- Quantidade: 1
429
-
- Valor em FIAT: 500€
414
+
***Comportamento do algoritmo:** Transações identificadas como NFT não originam apuramento de mais-valias tributáveis, poupando a sua inclusão nos quadros de reporte fiscal de mais-valias padrão de criptoativos.
430
415
431
-
**Resultado:**
432
-
- Cria novo lote:
433
-
-`acquisitionDate = 2024-05-01`
434
-
-`costPerUnit = 500€`
435
-
-`amount = 1`
436
-
-`isSecurityToken = false`
437
416
438
417
---
439
418
440
-
#### ➤ Caso 2: venda de NFT por FIAT
441
-
**Exemplo:**
442
-
- Data: 2025-01-10
443
-
- Entidade: OpenSea
444
-
- Ativo: NFT-123
445
-
- Quantidade: 1
446
-
- Valor em FIAT: 800€
447
-
- Custo: 500€
448
-
- Dias detidos: 254 dias → **Tributável**
449
-
450
-
**Cálculo:**
451
-
- Mais-valia = 800€ - 500€ = **300€**
452
-
- IRS = 300€ × 28% = **84€**
453
-
454
-
---
455
-
456
-
#### ➤ Caso 3: permuta NFT-NFT
457
-
**Exemplo:**
458
-
- Data: 2024-09-01
459
-
- Entidade: OpenSea
460
-
- Ativo entregue: NFT-123 (custo: 500€)
461
-
- Ativo recebido: NFT-456
462
-
463
-
**Resultado:**
464
-
- Cria novo lote de NFT-456:
465
-
-`acquisitionDate = 2024-09-01`
466
-
-`costPerUnit = 500€`
467
-
-`amount = 1`
468
-
-`originalAcquisitionDate = null`
469
-
470
-
➡️ **Evento neutro fiscalmente**, não gera tributação imediata.
São aplicações financeiras construídas em blockchains que não dependem de intermediários tradicionais.
479
-
480
-
#### Exemplos comuns de DeFi:
481
-
-**Staking** (delegar tokens para validar redes)
482
-
-**Lending & Borrowing** (emprestar ou pedir emprestado cripto)
483
-
-**Liquidity Pools** (fornecer liquidez em exchanges descentralizadas como Uniswap)
484
-
-**Yield Farming** (ganhar recompensas por fornecer liquidez)
485
-
-**Stablecoins** (USDC, DAI, etc.)
486
-
-**Derivados e seguros descentralizados**
419
+
### 6. Tratamento fiscal de _DeFi_
487
420
488
-
#### 6.2. Enquadramento fiscal de DeFi em Portugal (CIRS)
421
+
#### 6.1. O que é _DeFi_?
422
+
***DeFi* (*Decentralized Finance*)** = Finanças Descentralizadas. São aplicações financeiras construídas em *blockchains* que não dependem de intermediários tradicionais.
489
423
490
-
O **Código do IRS não distingue explicitamente entre DeFi e CeFi**, ou seja, **o tratamento fiscal é o mesmo** para todos os ativos móveis.
424
+
#### Exemplos comuns de _DeFi_:
425
+
-***Staking* (delegar *tokens* para validar redes)**
426
+
-***Lending* & *Borrowing* (emprestar ou pedir emprestado cripto)**
427
+
-***Liquidity pools* (fornecer liquidez em _exchanges_ descentralizadas como Uniswap)**
428
+
-***Yield farming* (ganhar recompensas por fornecer liquidez)**
429
+
-***Stablecoins* (USDC, DAI, etc.)**
491
430
492
-
#### 6.3 Princípios aplicáveis ao DeFi:
431
+
#### 6.2. Enquadramento fiscal de _DeFi_ em Portugal (CIRS)
432
+
O **Código do IRS não distingue explicitamente entre _DeFi_ e _CeFi_**, ou seja, **o tratamento fiscal é o mesmo** para todos os ativos móveis.
493
433
434
+
#### 6.3 Princípios aplicáveis ao _DeFi_:
494
435
1.**Rendimentos passivos (*staking*, *yield farming*):** São tratados sob o regime de **suspensão de tributação**. O custo de aquisição é **0,00€**.
495
-
2.**Alienação de ativos *DeFi* (venda, troca, saque):** Mais-valia calculada com FIFO.
4.**Taxas em _DeFi_ (*gas fees*):** Tratadas como micro-alienações se pagas em cripto.
498
439
5.**Isenção após 365 dias:** Aplicável apenas a criptoativos não-mobiliários.
499
440
500
-
#### 6.4. Como implementar DeFi no algoritmo
441
+
#### 6.4. Como implementar _DeFi_ no algoritmo
501
442
502
443
#### ➤ Caso 1: *staking* / *yield farming* / recompensas
503
444
**Exemplo:**
504
445
- Data: 2024-06-15
505
-
- Entidade: Uniswap (DeFi)
446
+
- Entidade: Uniswap (*DeFi*)
506
447
- Ativo: USDC
507
448
- Quantidade: 100
508
449
- Tipo: `deposit`, Tag: `defi`
@@ -568,13 +509,26 @@ O **Código do IRS não distingue explicitamente entre DeFi e CeFi**, ou seja, *
568
509
569
510
### 7. Sumário final
570
511
571
-
-**Depósitos:** criam novos lotes com custo real (compra) ou **custo zero** (rendimentos em cripto).
572
-
-**Alienações para FIAT, NFT, bens, serviços:** tributáveis se detidos menos de 365 dias (e não forem Security Tokens); isentos se ≥ 365 dias.
573
-
-**Security tokens:****Sempre tributáveis**, sem isenção de tempo.
574
-
-**Transferências entre entidades:** evento neutro, preserva data e custo original.
575
-
-**Permutas:** evento neutro - o novo ativo tem como custo o valor de aquisição do ativo entregue e **reinicia a contagem dos 365 dias**.
576
-
-**Taxas:** separa lógica entre FIAT e cripto. Taxas em cripto são micro-alienações.
577
-
-**Relatórios:** gerados conforme `isNational` da entidade (Anexo G para verdadeiro, Anexo J para falso).
512
+
-**Depósitos:** criam novos lotes com o custo real (no caso de uma compra) ou com **custo zero** (no caso de rendimentos passivos recebidos diretamente em criptoativos).
513
+
-**Alienações para FIAT, bens ou serviços:** o enquadramento depende do tempo de detenção e da natureza do ativo:
514
+
- Se detidos por menos de 365 dias: são **tributáveis** (Categoria G).
515
+
- Se detidos por 365 dias ou mais: estão **excluídos de tributação** (exceto *security tokens*).
516
+
-**Alienações de NFT:** de acordo com o enquadramento legal, os ganhos com NFT estão **totalmente excluídos de tributação** na categoria de criptoativos, por não partilharem da natureza fungível prevista na lei.
517
+
-***Security tokens*:****Sempre tributáveis** (Categoria G), independentemente do tempo de detenção. Não beneficiam da isenção de longo prazo.
518
+
-**Transferências entre entidades:** evento totalmente neutro que apenas altera o local de custódia (*self-custody* ou *exchanges*). Preserva a data e o custo de aquisição originais para o cálculo do *FIFO*.
519
+
-**Permutas (*trades*):** evento fiscalmente neutro (Art. 10.º, n.º 20) - o novo ativo recebido herda o custo de aquisição proporcional do ativo entregue e **reinicia a contagem do prazo de 365 dias** para zero.
520
+
-**Taxas (*gas fees*):** separa a lógica conforme a moeda de pagamento:
521
+
- Taxas pagas em fiat: reduzem o valor de realização / acrescem aos encargos dedutíveis da operação principal.
522
+
- Taxas pagas em criptoativos: são tratadas como micro-alienações autónomas do ativo usado para o pagamento.
523
+
524
+
#### Matriz de exportação de relatórios (IRS)
525
+
526
+
A geração de relatórios de exportação cruza a natureza do ativo, o prazo de detenção e a jurisdição da entidade para o preenchimento correto dos anexos da Autoridade Tributária:
527
+
528
+
| Natureza do Ativo | Prazo de Detenção | Entidade Nacional (`isNational: true`) | Entidade Estrangeira / *Self-Custody* (`isNational: false`) |
0 commit comments