Skip to content

Commit fb9efe2

Browse files
authored
v1.5.3 (#10)
* Clarify declarative destination and fiscal eligibility in DeFi Updated the description of the 'declarative destination' to include DeFi wallet types and clarified the fiscal eligibility in the context of DeFi. * Update README with entity details and remove notes Removed a note about the taxpayer's burden of proof in DeFi from two sections and updated the entity information in an example. * Fix formatting in NFT algorithm section of README * Update section numbers and headings in README * Fix formatting and update section headers in README
1 parent 7b0301e commit fb9efe2

1 file changed

Lines changed: 33 additions & 39 deletions

File tree

README.md

Lines changed: 33 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,15 @@ Este algoritmo é uma ferramenta de cálculo baseada numa interpretação lógic
5757
- [➤ Caso 2: permuta simples em entidade não cooperante (BTC → ETH)](#-caso-2-permuta-simples-em-entidade-não-cooperante-btc--eth)
5858
- [➤ Caso 3: permuta com múltiplos ativos (BTC → ETH + SOL)](#-caso-3-permuta-com-múltiplos-ativos-btc--eth--sol)
5959
- [4. Tratamento das taxas](#4-tratamento-das-taxas)
60-
- [4.1. Taxa paga em FIAT](#41-taxa-paga-em-fiat)
60+
- [4.1. Taxa paga em FIAT](#41-taxa-paga-em-fiat)
6161
- [4.2. Taxa paga em cripto](#42-taxa-paga-em-cripto)
6262
- [Dupla entrada fiscal aplicável apenas quando deve ser:](#dupla-entrada-fiscal-aplicável-apenas-quando-deve-ser)
6363
- [➤ Caso 1: taxa paga em FIAT](#-caso-1-taxa-paga-em-fiat)
6464
- [➤ Caso 2: taxa paga em cripto](#-caso-2-taxa-paga-em-cripto)
6565
- [5. Tratamento fiscal de NFT](#5-tratamento-fiscal-de-nft)
6666
- [5.1 O que é NFT?](#51-o-que-é-nft)
6767
- [5.2. Enquadramento fiscal de NFT em Portugal (CIRS)](#52-enquadramento-fiscal-de-nft-em-portugal-cirs)
68-
- [5.3 Como o algoritmo trata os NFT](#53-como-o-algoritmo-trata-os-nft)
69-
- [Em vez de aplicar a lógica FIFO de cripto, o motor suspende o processamento da linha e emite um aviso ao utilizador para reporte manual na categoria geral correspondente do IRS (ex: Categoria B se houver cariz profissional, ou mais-valia geral se aplicável), uma vez que a Autoridade Tributária analisa estes ativos pela sua substância (ex: se representa arte digital, propriedade, ou um direito de serviço).](#em-vez-de-aplicar-a-lógica-fifo-de-cripto-o-motor-suspende-o-processamento-da-linha-e-emite-um-aviso-ao-utilizador-para-reporte-manual-na-categoria-geral-correspondente-do-irs-ex-categoria-b-se-houver-cariz-profissional-ou-mais-valia-geral-se-aplicável-uma-vez-que-a-autoridade-tributária-analisa-estes-ativos-pela-sua-substância-ex-se-representa-arte-digital-propriedade-ou-um-direito-de-serviço)
68+
- [5.3 Como o algoritmo trata os NFT](#53-como-o-algoritmo-trata-os-nft)
7069
- [6. Tratamento fiscal de _DeFi_](#6-tratamento-fiscal-de-defi)
7170
- [6.1. O que é _DeFi_?](#61-o-que-é-defi)
7271
- [Exemplos comuns de _DeFi_:](#exemplos-comuns-de-defi)
@@ -78,8 +77,8 @@ Este algoritmo é uma ferramenta de cálculo baseada numa interpretação lógic
7877
- [➤ Caso 3: retirada de liquidez (*withdrawal* de *LP*)](#-caso-3-retirada-de-liquidez-withdrawal-de-lp)
7978
- [➤ Caso 4: taxas em _DeFi_ (*gas fees*)](#-caso-4-taxas-em-defi-gas-fees)
8079
- [7. Sumário final](#7-sumário-final)
81-
- [Matriz de exportação de relatórios (IRS)](#matriz-de-exportação-de-relatórios-irs)
82-
- [8. Fluxograma das transações](#8-fluxograma-das-transações)
80+
- [8. Matriz de exportação de relatórios (IRS)](#8-matriz-de-exportação-de-relatórios-irs)
81+
- [9. Fluxograma das transações](#9-fluxograma-das-transações)
8382
- [🤝 Como Contribuir](#-como-contribuir)
8483
- [📄 Licença](#-licença)
8584

@@ -137,7 +136,8 @@ Cada entidade (carteira ou *exchange*) deve ser criada com os seguintes atributo
137136

138137
O algoritmo calcula os seguintes estados implícitos no momento da transação:
139138
* **`fiscalEligibility`**: Determinado a partir do `countryCode`. Consulta uma tabela interna para classificar o país como cooperante (`COOPERATING`), não cooperante (`NON_COOPERATING` - paraísos fiscais da lista negra nacional) ou desconhecido. O estado desconhecido suspende o cálculo para obrigar à revisão e intervenção manual.
140-
* **Destino declarativo**: Determinado de forma dinâmica no processamento. Se `type` for 'Exchange' e `countryCode` for 'PT', as mais-valias de curto prazo seguem para o **Anexo G**. Se `type` for 'Exchange' e `countryCode` for diferente de 'PT' (ex: 'IE'), seguem para o **Anexo J**. Para carteiras pessoais (`type` igual a 'Cold Wallet' ou 'Hot Wallet'), o algoritmo assume por defeito o `countryCode` de residência do sujeito passivo (ex: 'PT') para efeitos de `fiscalEligibility`, mas encaminha sempre o curto prazo para o **Anexo J**, uma vez que a custódia não pertence a um intermediário financeiro nacional.
139+
* **Destino declarativo**: Determinado de forma dinâmica no processamento. Se `type` for 'Exchange' e `countryCode` for 'PT', as mais-valias de curto prazo seguem para o **Anexo G**. Se `type` for 'Exchange' e `countryCode` for diferente de 'PT' (ex: 'IE'), seguem para o **Anexo J**. Para carteiras pessoais ou DeFi (`type` igual a 'Cold Wallet' ou 'Hot Wallet'), o algoritmo assume por defeito o `countryCode` de residência do sujeito passivo (ex: 'PT') para efeitos de `fiscalEligibility`, mas encaminha sempre o curto prazo para o **Anexo J**, uma vez que a custódia não pertence a um intermediário financeiro nacional.
140+
141141

142142
#### Estrutura do lote (`Lot`)
143143
Cada `Lot` deve ter:
@@ -153,9 +153,9 @@ Cada `Lot` deve ter:
153153
154154
---
155155

156-
### 3. Tratamento por tipo de transação
156+
## 3. Tratamento por tipo de transação
157157

158-
#### 3.1. `deposit`
158+
### 3.1. `deposit`
159159

160160
Um depósito é sempre uma **aquisição** que cria um novo lote:
161161
* **tag: 'buy':** `costPerUnit` = `fiatValue`, `acquisitionDate` = data da transação.
@@ -200,7 +200,7 @@ Um depósito é sempre uma **aquisição** que cria um novo lote:
200200

201201
---
202202

203-
#### 3.2. `withdrawal`
203+
### 3.2. `withdrawal`
204204

205205
Inclui **qualquer alienação para algo não-cripto**, como:
206206
* **FIAT**
@@ -313,7 +313,7 @@ A data da transferência em si (`acquisitionDate` do novo local) **não influenc
313313

314314
---
315315

316-
#### 3.3. `trade` (permuta cripto-cripto)
316+
### 3.3. `trade` (permuta cripto-cripto)
317317

318318
O fluxo lógico depende diretamente da elegibilidade da entidade detentora:
319319

@@ -363,12 +363,10 @@ O fluxo lógico depende diretamente da elegibilidade da entidade detentora:
363363
- `originalAcquisitionDate = null`
364364

365365
#### ➤ Caso 3: permuta com múltiplos ativos (BTC → ETH + SOL)
366-
> [!WARNING]
367-
> **TODO:** Validar qual a fiscalEligibility em DeFi para carteira de titular em Portugal
368-
366+
369367
**Exemplo:**
370368
- Data: 2024-08-15
371-
- Entidade: Uniswap (type: 'Hot Wallet', countryCode: 'PT')
369+
- Entidade: Binance (type: 'Exchange', countryCode: 'GE')
372370
- Ativo entregue: BTC (1.0) - Custo histórico total: 30.000€
373371
- Ativos recebidos: ETH (0.3) + SOL (0.2)
374372
- Valores de mercado proporcionais calculados no instante da troca:
@@ -396,14 +394,14 @@ O fluxo lógico depende diretamente da elegibilidade da entidade detentora:
396394

397395
---
398396

399-
### 4. Tratamento das taxas
397+
## 4. Tratamento das taxas
400398

401399
A lógica de tratamento de taxas é offline e determinística, aplicando os princípios gerais de "alienação onerosa" (Art. 10.º) e "apuramento de mais-valias" (Art. 43.º).
402400

403401
### 4.1. Taxa paga em FIAT
404402
➡️ **É um encargo puro da alienação**, deduzido diretamente na fórmula da mais-valia.
405403

406-
#### 4.2. Taxa paga em cripto
404+
### 4.2. Taxa paga em cripto
407405

408406
A taxa é tratada como uma **micro-alienação** do criptoativo usado para liquidá-la.
409407

@@ -428,8 +426,6 @@ Valor de realização da micro-alienação:
428426
- Mais-valia = 30.000€ - 15.000€ - 50€ = **14.950€**
429427
- Se tributável (< 365 dias): IRS = 14.950€ × 28% = **4.186€**
430428

431-
---
432-
433429
#### ➤ Caso 2: taxa paga em cripto
434430
**Exemplo:**
435431
- Venda de 0.5 BTC por 30.000€
@@ -447,9 +443,9 @@ Valor de realização da micro-alienação:
447443
448444
---
449445

450-
### 5. Tratamento fiscal de NFT
446+
## 5. Tratamento fiscal de NFT
451447

452-
#### 5.1 O que é NFT?
448+
### 5.1 O que é NFT?
453449
NFT significa *Non-Fungible Token* (*Token* não fungível). Representa um certificado digital de propriedade sobre um ativo único, indivisível e não intermutável (ex.: arte digital, colecionáveis, registos de exclusividade).
454450

455451
**Não fungível** = único e irrepetível.
@@ -459,43 +455,45 @@ Diferente de moedas ou criptomoedas (como Bitcoin ou Ethereum), que são fungív
459455
- Um Bitcoin = outro Bitcoin → fungível.
460456
- Um NFT de uma obra de arte digital = só existe um → não fungível.
461457

462-
#### 5.2. Enquadramento fiscal de NFT em Portugal (CIRS)
458+
### 5.2. Enquadramento fiscal de NFT em Portugal (CIRS)
463459
Por força da exclusão legal da definição de criptoativos, as transações de NFT **não seguem o regime das criptomoedas**. Isto implica um tratamento severo pelo algoritmo:
464460

465461
1. **Revogação de Isenções:** Não existe exclusão de tributação após 365 dias de detenção.
466462
2. **Permutas Tributáveis:** Trocar um NFT por outro (ou por ETH) não goza de neutralidade fiscal. É um evento de alienação imediato com apuramento de ganho em Euros baseado no valor de mercado.
467463

468464
### 5.3 Como o algoritmo trata os NFT
469-
Para evitar cálculos errados e proteger o utilizador, o algoritmo implementa uma **"Flag de Bloqueio/Alerta"** (`assetType: 'NFT'`).
465+
Para evitar cálculos errados e proteger o utilizador, o algoritmo implementa uma **"Flag de Bloqueio/Alerta"** (`assetType: 'NFT'`).
470466

471467
Em vez de aplicar a lógica FIFO de cripto, o motor suspende o processamento da linha e emite um aviso ao utilizador para reporte manual na categoria geral correspondente do IRS (ex: Categoria B se houver cariz profissional, ou mais-valia geral se aplicável), uma vez que a Autoridade Tributária analisa estes ativos pela sua substância (ex: se representa arte digital, propriedade, ou um direito de serviço).
468+
472469
---
473470

474-
### 6. Tratamento fiscal de _DeFi_
471+
## 6. Tratamento fiscal de _DeFi_
475472

476-
#### 6.1. O que é _DeFi_?
473+
### 6.1. O que é _DeFi_?
477474
*DeFi* (*Decentralized Finance*) engloba serviços financeiros (empréstimos, trocas automatizadas, derivados) executados diretamente através de *smart contracts* em redes *blockchain*, sem a presença de intermediários centralizados.
478475

479-
#### Exemplos comuns de _DeFi_:
476+
### Exemplos comuns de _DeFi_:
480477
- ***Staking* (delegar *tokens* para validar redes)**
481478
- ***Lending* & *Borrowing* (emprestar ou pedir emprestado cripto)**
482479
- ***Liquidity pools* (fornecer liquidez em _exchanges_ descentralizadas como Uniswap)**
483480
- ***Yield farming* (ganhar recompensas por fornecer liquidez)**
484481
- ***Stablecoins* (USDC, DAI, etc.)**
485482

486-
#### 6.2. Enquadramento fiscal de _DeFi_ em Portugal (CIRS)
483+
### 6.2. Enquadramento fiscal de _DeFi_ em Portugal (CIRS)
487484
O Código do IRS não faz qualquer distinção operacional entre finanças descentralizadas (*DeFi*) ou centralizadas (*CeFi*). As regras gerais da Categoria G aplicam-se igualmente à natureza dos ativos movimentados.
488485

489-
#### 6.3 Princípios aplicáveis ao _DeFi_:
486+
### 6.3 Princípios aplicáveis ao _DeFi_:
490487
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€**.
491488
2. **Alienação de ativos _DeFi_ (venda, troca, saque):** Mais-valia calculada com *FIFO*.
492489
3. **Permutas _DeFi_ (ex.: ETH → *LP token*):** Neutras fiscalmente (Art. 10.º, n.º 20).
493490
4. **Taxas em _DeFi_ (*gas fees*):** Tratadas como micro-alienações se pagas em cripto.
494491
5. **Isenção após 365 dias:** Aplicável apenas a criptoativos não-mobiliários.
495492

496-
#### 6.4. Como implementar _DeFi_ no algoritmo
497-
> [!WARNING]
498-
> **TODO:** Validar qual a fiscalEligibility em DeFi para carteira de titular em Portugal
493+
### 6.4. Como implementar _DeFi_ no algoritmo
494+
495+
> [!NOTE]
496+
> No DeFi o ónus da prova cabe inteiramente ao contribuinte. A Autoridade Tributária (AT) não monitoriza de forma automática as suas wallets privadas ou protocolos descentralizados, pelo que é o titular quem tem de demonstrar a origem, o histórico e o tempo de detenção dos ativos para beneficiar das isenções fiscais.
499497
500498
Como os protocolos *DeFi* correm em contratos sem localização geográfica tradicional, o algoritmo determina a `fiscalEligibility` avaliando o `type` da carteira que assina a transação (`Cold/Hot Wallet`), herdando o país de residência fiscal do utilizador (ex: 'PT' = `COOPERATING`). No entanto, o encaminhamento declarativo de curto prazo é sempre remetido para o **Anexo J**, dada a ausência de intermediário financeiro nacional.
501499

@@ -515,8 +513,6 @@ Como os protocolos *DeFi* correm em contratos sem localização geográfica trad
515513
- `originalAcquisitionDate = null`
516514
- *Ação fiscal:* Nenhuma no momento da receção. A tributação ocorrerá apenas na venda por Euros (Categoria G).
517515

518-
---
519-
520516
#### ➤ Caso 2: fornecimento de liquidez (*liquidity pool*)
521517
**Exemplo:**
522518
- Data: 2024-07-01
@@ -534,8 +530,6 @@ Como os protocolos *DeFi* correm em contratos sem localização geográfica trad
534530

535531
➡️ **Evento neutro fiscalmente**, permuta cripto-cripto.
536532

537-
---
538-
539533
#### ➤ Caso 3: retirada de liquidez (*withdrawal* de *LP*)
540534
**Exemplo:**
541535
- Data: 2025-01-10
@@ -553,8 +547,6 @@ Como os protocolos *DeFi* correm em contratos sem localização geográfica trad
553547
> Os ativos recebidos de volta (ETH, USDC) entram como novos lotes com custo igual ao seu valor de mercado no dia da retirada (2.500€ no total).
554548
- **Ação:** Sendo curto prazo numa estrutura sem intermediário nacional, é direcionado para o **Anexo J, Quadro 9.4A**.
555549

556-
---
557-
558550
#### ➤ Caso 4: taxas em _DeFi_ (*gas fees*)
559551
**Exemplo:**
560552
- Transação DeFi (ex.: staking)
@@ -568,7 +560,7 @@ Como os protocolos *DeFi* correm em contratos sem localização geográfica trad
568560

569561
---
570562

571-
### 7. Sumário final
563+
## 7. Sumário final
572564

573565
* **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).
574566
* **Alienações para FIAT, bens ou serviços:** Curto prazo (< 365 dias) é sempre tributado a 28%. Longo prazo (≥ 365 dias) em países cooperantes é isento. Transações em paraísos fiscais perdem o direito a isenção de longo prazo.
@@ -584,7 +576,9 @@ Como os protocolos *DeFi* correm em contratos sem localização geográfica trad
584576
- Taxas pagas em fiat: reduzem o valor de realização / acrescem aos encargos dedutíveis da operação principal.
585577
- Taxas pagas em criptoativos: são tratadas como micro-alienações autónomas do ativo usado para o pagamento.
586578

587-
#### Matriz de exportação de relatórios (IRS)
579+
---
580+
581+
## 8. Matriz de exportação de relatórios (IRS)
588582

589583
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:
590584

@@ -597,7 +591,7 @@ A geração de relatórios de exportação cruza a natureza do ativo, o prazo de
597591

598592
---
599593

600-
### 8. Fluxograma das transações
594+
## 9. Fluxograma das transações
601595

602596
```mermaid
603597
flowchart TD

0 commit comments

Comments
 (0)