Giter VIP home page Giter VIP logo

fiscafacile / cryptofiscafacile Goto Github PK

View Code? Open in Web Editor NEW
60.0 8.0 11.0 591 KB

Outil (en ligne de commande pour l'instant) vous permettant de rassembler toutes les transactions de vos différents échanges et wallets afin de constituer votre portefeuille global et ainsi vous aider à la déclaration fiscale française.

License: MIT License

Go 99.06% Python 0.20% JavaScript 0.65% Shell 0.09%
crytpocurrency crypto fiscalization

cryptofiscafacile's Introduction

CryptoFiscaFacile v2

Ce projet a évolué, une version 2 est disponible en ligne et le code source est sur Gitlab. Dans la version 2 vous aurez :

  • une interface graphique (dans votre navigateur Web)
  • une disponibilité online sans même avoir à compiler soi même ! Et pourtant toutes vos infos personnelles resteront chez vous, dans votre navigateur !
  • d'autre nouveautés comme des graphiques de stats sur votre portefeuille global crypto

Ce projet sur Github reste ici pour archive de l'historique, mais vous êtes tous invités à venir utiliser la v2 bien plus ergonomique !

CryptoFiscaFacile v1

made-with-Go MIT license Open Source? Yes! PRs Welcome Telegram CryptoFiscaFacile Discord CryptoFiscaFacile

Cet outil veut vous aider à déclarer vos cryptos aux impôts !

Attention néanmoins : les développeurs de CryptoFiscaFacile ne peuvent pas être tenus pour responsables des éventuelles erreurs ou imprécisions qui pourraient survenir dans vos déclarations fiscales suite à d'éventuels bugs de l'outil. En cas d'erreurs, l'entière responsabilité de ces erreurs vous incombe.

Gardez en tête que la loi n'étant pas encore définie sur tous les points, cet outil peut différer de votre point de vue, c'est pour cela qu'il est en open-source : à vous de modifier (ou faire modifier) à vos besoins.

Gardez aussi en tête le fait qu'il ne supporte pas toutes les plateformes existantes, mais un guide vous est fourni pour vous aider à développer votre propre module.

Tout pull request est le bienvenu, j'essayerai de les intégrer le plus vite possible.

Enfin, le code actuel est en constante évolution, il se peut donc que la documentation ci dessous ne soit pas précise, mais elle vous fournira une bonne base pour utiliser cet outil.

Installation / Mise à jour

Vous aurez besoin de Go dont voici la doc officelle d'installation.

Une fois Go installé sur votre système, ouvrez un terminal (cmd.exe/PowerShell sous Windows, Terminal sous MacOS, un shell sous Linux) et tappez cette commande :

$ go install github.com/fiscafacile/CryptoFiscaFacile

Le binaire de l'outil sera généré sur votre PC, vous pourrez le lancer en ligne de commande (donc dans un terminal) avec les Options nécessaires à vos besoins.

$ CryptoFiscaFacile --help

Pour mettre à jour, il suffit de relancer la commande (pas trop sur de cela) :

$ go get -u github.com/fiscafacile/CryptoFiscaFacile

Utilisation

Principe de fonctionnement

Cet outil a besoin de "Sources" pour établir une liste de transactions qui constituent votre protefeuille global.

Ces "Sources" peuvent être :

  • des fichiers CSV (souvent exportés depuis une plateforme ou établis manuellement)

  • des fichiers JSON (autre formalisme de données structurées)

  • des API de plateforme

Toutes les APIs utilisées par cet outil sont mis en cache dans des fichiers JSON rangés dans le répertoire Cache créé à côté de l'exécutable. Vous pouvez donc vérifier/exporter/modifier ces informations pour rendre votre utilisation cohérente. Pensez aussi à supprimer/déplacer/renommer les fichiers de cache si vous voulez récupérer les dernières informations de la plateforme.

Chaque transaction est composée d'une Date, d'une Note (donnant des informations pour la comprendre), optionellement d'une liste de frais Fee, optionellement d'une liste de sources From et optionellement d'une liste de destinations To.

Les Fee, From et To sont des "Actifs" composés d'un Code et d'un montant Amount.

Tous les montants dans l'outil sont des chiffres décimaux avec précision arbitraire : aucun arrondi n'est fait dans les calculs, seulement à l'affichage à la fin pour plus de clareté.

Une fois toutes les transactions récupérées de toutes les "Sources" que vous avez fournies à l'outil, il va essayer de catégoriser ces TXs.

Catégories de TXs relatives à une "Source"

  • "Dépôts" Deposits : ce sont des TXs qui ont un ou plusieurs To mais n'ont pas de From et possiblement des Fee.

  • "Retraits" Withdrawals : c'est l'inverse des "Dépôts".

  • "Frais" Fees : les TXs qui n'ont que des Fee.

  • "Echanges" Exchanges : des TXs qui ont des From et des To, et possiblement des Fee.

Catégories manuelles et semi-automatiques

Vous pourrez fournir une Source particulière pour rediriger certaines TXs dans des catégories manuelles comme des "Dons" Gifts et autres AirDrops.

Vous pourrez aussi activer la détection de Forks sur certaines cryptos.

Catégories spécifiques à certaines plateformes

Sur certaines plateformes comme Crypto.com il existe aussi des CommercialRebates (cashback de carte, remboursement Netflix, Pay Checkout Reward et Gift Card Reward), Interests (intérêts du programme Earn, intérêts de "Stacking") et autres Referrals. Certaines TXs sont directement catégorisées en CashOut comme les paiements en crypto.

Catégories spécifiques ETH

Pour les sources ETH, il y a d'autres catégories spécifiques : Burns, Claims, Selfs et Swaps.

Catégories de TXs relatives au portefeuille global

Une fois toutes les TXs rangées dans des catégories, l'outil va essayer de rapprocher des TXs de différentes "Sources" pour synthétiser et recatégoriser au niveau du portefeuille global :

  • "Transferts" Transfers : par fusion d'un Deposits avec un Withdrawals si les Date et Amount correspondent.

  • CashIn et CashOut : ce sont respectivement des Deposits et Withdrawals ou des Exchanges dont l'"Actif" source ou destination sont des Fiats.

  • les Interests sont transformés en CashIn et leurs montant global est affiché.

  • les CommercialRebates sont transformés en CashIn si aucun "reversal" n'est venu les annuler et leurs montant global est affiché.

  • les Referrals sont transformés en CashIn et leurs montant global est affiché.

Configuration

Vous pouvez utiliser le fichier de configuration config.exemple.yaml, copiez le en config.yaml puis mofidiez le a votre guise. Il sera utilisé pour vos options par défaut (c'est à dire que si vous spécifiez une autre valeur d'une option dans la ligne de commande, elle sera prioritaire sur les valeurs du fichier de configuration).

Options de base

Help

  --help
        Display all available arguments

Permet d'afficher toutes les options possibles.

Native Currency

  --native
        Native Currency for consolidation (default "EUR")

Choix de la Fiat pour consolidation. Si vous voulez déclarer aux impôts français, il faut laisser "EUR".

Location

  --location
        Date Filter Location (default "Europe/Paris")

Permet de choisir le fuseau horaire pour calculer les dates. Si vous voulez déclarer aux impôts français, il faut laisser "Europe/Paris".

Date

  --date
        Date Filter (default "2021-01-01T00:00:00")

Permet d'afficher votre protefeuille global valorisé en Fiat à une date donnée. Utile pour vérifier l'état du stock et estimer s'il manque des sources.

Options d'aide à l'établissement d'un portefeuille global cohérent

Stats

  --stats
        Display accounts stats

Permet d'afficher le nombre de transactions par catégorie (toutes cryptos confondues).

Check

  --check
        Check and Display consistency

Lance des vérifications d'intégrité sur les TXs du portefeuille globale et affiche les TXs KO. Les vérifications sont :

  • tous les Withdrawals postérieurs au 1 Janvier 2019 doivent être justifiés, donc catégorisés ailleurs (CashOut, Gifts,...).

  • tous les Transfers doivent avoir une balance nulle (la balance est la somme des To moins la somme des From moins la somme des Fee). Note pour pouvoir aditioner ces montant, ils faut qu'ils soient dans la même devise, ce qui est le cas pour les Transfers (normalement).

  • toutes les TXs doivent avoir des montants positifs. Les montants de From et de Fee seront consédérés négativement par l'outil mais ils doivent être enregistré positivement dans leur TX par la "Source" qui les a produites.

Display

  --txs-display
        Display Transactions By Catergory : Exchanges|Deposits|Withdrawals|CashIn|CashOut|etc
  --currency-filter
        Currencies to be filtered in Transactions Display (comma separated list)

Affiche toutes les TXs d'une Catégorie (attention ceci peut être très long...).

Vous pouvez afficher toutes les Catégories avec --txs-display Alls.

Vous pouvez aussi afficher que les TXs concernant certaines cryptos, par exemple pour n'afficher que le BTC et le BCH : --currency-filter BTC,BCH.

Options de "Sources"

Pour chaque Source, je vous indique le taux de support fourni par l'outil (l'exactitude de l'analyse pour cette Source). Si ce taux de support n'est pas bon, c'est sûrement parce que je n'ai pas assez d'exemples de transactions pour bien les analyser. Vous pouvez ouvrir un Ticket Github pour ajouter votre cas qui ne fontionne pas, j'essayerai de faire évoluer l'outil pour le rendre compatible.

Catégorisation Manuelle Support manuel

  --txs-categ
        Transactions Categories CSV file

Il faut fournir un CSV à faire manuellement contenant toutes les transactions que vous voulez catégoriser manuellement (attention les champs dans le CSV doivent être séparés par des virgules, pas des points virgules comme le fait Excel en Français, le plus simple est de le faire dans un editeur de texte simple comme Notepad). Un CSV d'exemple est disponible, essayez --txs-categ Inputs/TXS_Categ_exemple.csv --btc-address Inputs/BTC_Addresses_exemple.csv.

Ce CSV identifie une TX par son TxID (identifiant dans la blockchain BTC, ETH, ou autre) et donne un Type. Les différents Type supportés sont :

  • IN : va transformer la TX en CashIn même si ses From ne sont pas en Fiat. Utile pour simuler des plateformes qui ne proposent pas de CSV (comme DigyCode).

  • OUT : va transformer la TX en CashOut même si ses To ne sont pas en Fiat. Utile pour les achats de bien ou service en crypto. Cela va transformer le To avec les infos Value et Currency de ce CSV.

  • GIFT : va catégoriser la TX en don Gifts. Utile si vous offrez des cryptos à un ami pour lui montrer comment cela fonctionne lors de son anniversaire.

  • INT : va catégoriser la TX en intérêt Interests.

  • AIR : va catégoriser la TX en AirDrops.

  • FEE : va associer toutes les TXs dont les Hash sont concaténées entre eux avec un point virgule ";" et fournis dans Description à la TX dont le Hash est donné dans TXID. Utile pour faire le ménage dans la catégorie Fees.

  • TRANS : va associer la TX dont l'ID est fournis dans Description à la TX dont l'ID est donné dans TXID. Utile pour force l'association d'un dépôt avec un retrait même si l'un des deux a des frais non dissocié du montant. Dans le cas d'un forcage de Deposits et Withdrawals en Transfers avec TRANS, pour respecter la balance nulle hors frais, la différence de montant entre les deux TX initiales sera déduite du montant le plus grand et ajouté en tant que Fee dans la TX de Transfers résultante.

  • SHIT : va ignorer la TX donc aucune catégorisation. Utile si vous avez des Shitcoins dont vous ne voulez pas.

  • CUS : va retrancher une partie du montant de From ou To comme si vous en aviez la gestion mais qu'ils ne vous appartenaient pas (Custody), ils ne seront donc pas consiédérés dans votre portefeuille global. Utile si vous avez acheté des cryptos pour votre grand-père, mais attention, il devra lui aussi les déclarer.

Les colones du CSV doivent être : TxID,Type,Description,Value,Currency

Binance Support léger

Par API :

  --binance-api-key
        Binance API key
  --binance-api-secret
        Binance API secret

Par CSV :

  --binance
        Binance CSV file
  --binance-extended
        Use Binance CSV file extended format

Il faut fournir le fichier CSV récupéré dans Binance (https://www.binance.com/fr/my/wallet/history puis "Générer un relevé complet"). Vous pouvez modifier ce fichier CSV pour ajouter une colone Fee entre Change et Remark, et donc reseigner la part de frais dans les Withdraw qui ont un Remark avec Withdraw fee is included, cela permet de bien fusioner ce Withdrawals avec un autre Deposits pour en faire un Transfers lors de l'analyse des TXs. Dans ce cas, n'oubliez pas de rajouter l'option --binance-extended. Ces frais seront automatiquement déduits du montant du retrait, veuillez donc ne pas toucher à la valeur Change.

Les colones du CSV d'origine doivent être : UTC_Time,Account,Operation,Coin,Change,Remark Les colones du CSV étendu doivent être : UTC_Time,Account,Operation,Coin,Change,Fee,Remark

Bitfinex Support bon

  --bitfinex
        Bitfinex CSV file

Il faut fournir le fichier CSV récupéré dans Bitfinex (https://report.bitfinex.com/ledgers puis choisissez les dates et "Export", choisissez Date Format : DD-MM-YY).

Les colones du CSV d'origine doivent être : #,DESCRIPTION,CURRENCY,AMOUNT,BALANCE,DATE,WALLET

Bitstamp Support bon

  --bitstamp
        Bitstamp CSV file
  --bitstamp-api-key
        Bitstamp API key
  --bitstamp-api-secret
        Bitstamp API secret

Il faut fournir les fichiers CSV récupérés dans Bitstamp.

Les colones du CSV d'origine doivent être : Type,Datetime,Account,Amount,Value,Rate,Fee,Sub Type

Bittrex Support bon

  --bittrex
        Bittrex CSV file
  --bittrex-api-key
        Bittrex API key
  --bittrex-api-secret
        Bittrex API secret

Il faut fournir les fichiers CSV récupérés dans Bittrex (https://global.bittrex.com/history puis "Download Order History").

Les colones du CSV d'origine doivent être : Uuid,Exchange,TimeStamp,OrderType,Limit,Quantity,QuantityRemaining,Commission,Price,PricePerUnit,IsConditional,Condition,ConditionTarget,ImmediateOrCancel,Closed,TimeInForceTypeId,TimeInForce

Il est nécessaire de fournir l'API et le CSV car chaque support a son défaut :

  • l'API ne retourne pas les transactions liées à des assets délistés.
  • le CSV ne comprend pas l'historique de dépot/retrait.

BTC Support avancé

  --btc-address
        Bitcoin Address
  --btc-addresses-csv
        Bitcoin Addresses CSV file
  --bcd
        Detect Bitcoin Diamond Fork
  --bch
        Detect Bitcoin Cash Fork
  --btg
        Detect Bitcoin Gold Fork
  --lbtc
        Detect Lightning Bitcoin Fork

Il faut fournir :

  • soit une ou plusieurs adresses directement dans la ligne de commande : --btc-address 36BTpmPbZaG2e5DyMpjEfDeEaiwjR8jGUM --btc-address bc1qlmsx8vtk03jwcuafe7vzvddjzg4nsfvflgs4k9

  • soit un CSV à faire manuellement contenant toutes les addresses BTC que vous possédez (attention les champs dans le CSV doivent être séparés par des virgules, pas des points virgules comme le fait Excel en Français, le plus simple est de le faire dans un editeur de texte simple comme Notepad). Un CSV d'exemple est disponible, essayez --btc-addresses-csv Inputs/BTC_Addresses_exemple.csv.

L'outil se chargera de récupérer la liste des transactions associées sur Blockstream (pas besoin de API Key).

Vous pouvez aussi demander la detection d'un des Fork de BTC, l'outil vous dira dans quel wallet vous avez un montant dû au Fork et intègrera ces montants à votre portefeuille global.

Les colones du CSV doivent être : Address,Description

BTG Support manuel

  --btg-txs
        Bitcoin Gold Transactions JSON file

Expériemental.

Crypto.com Support avancé

  • App avec CSV:
  --cdc-app-crypto
        Crypto.com App Crypto Wallet CSV file

Il faut fournir les CSV récupérés dans l'App (celui des Transactions du Portefeuille Crypto).

Les colones du CSV du portefeuille Crypto de l'APP doivent être : Timestamp (UTC),Transaction Description,Currency,Amount,To Currency,To Amount,Native Currency,Native Amount,Native Amount (in USD),Transaction Kind

  • Exchange avec JS et JSON:
  --cdc-ex-exportjs
        Crypto.com Exchange JSON file from json_exporter.js

Il faut fournir le JSON récupéré dans l'Exchange Crypto.com avec la méthode décrite ici

Cette méthode vous permet de récupérer les Deposits et Withdrawals, les Interests du Staking de CRO et Soft Staking, les CommercialRebates du bonus d'inscription et des Syndicates, les Referrals du programme de parainage, les Minings des Superchargers.

  • Exchange avec CSV:
  --cdc-ex-spot-trade
        Crypto.com Exchange Spot Trade CSV file
  --cdc-ex-transfer
        Crypto.com Exchange Deposit/Withdrawal CSV file

Il faut fournir les CSV récupérés dans l'Exchange Crypto.com.

Préférez la methode JS+JSON ci dessus, elle est plus complète.

Les colones du CSV de l'Exchange Spot Trade doivent être : account_type,order_id,trade_id,create_time_utc,symbol,side,liquditiy_indicator,traded_price,traded_quantity,fee,fee_currency

Les colones du CSV de l'Exchange Transfer doivent être : create_time_utc,currency,amount,fee,address,status

  • Exchange avec API:
  --cdc-ex-api-key
        Crypto.com Exchange API Key
  --cdc-ex-secret-key
        Crypto.com Exchange Secret Key

Il faut donner le api-key et secret-key que vous pouvez créer dans votre compte.

Il faut activer le droit de "Withdrawal" (si disponible pour vous) si vous voulez récupérer les Withdrawals et Deposits (je ne l'ai pas donc je n'ai pas pu tester). Dans le cas contraire, le CSV Transfers ou le JSON permet de les mettre dans l'outil sans l'API.

Par contre les Exchanges sur le Spot Market seront bien récupérés sans droit particulier (attention tout de même c'est assez long, on ne peut faire qu'une requête par seconde pour récupérer les Trades d'une seule journée, il faut donc de nombreuses requêtes pour remonter au jour du lancement de l'Exchange le 14 Nov 2019).

Coinbase Support bon

  --coinbase
        Coinbase CSV file

Il faut fournir le CSV récupéré sur Coinbase.

Le CSV contient une entête qui sera ignorée par l'outil.

Pour les "Transaction Type" "Send" du CSV, les frais ne sont pas renseignés, l'outil ne pourra donc pas agréger ce Withdrawals avec le Deposits d'une autre Source. Vous pouvez l'y aider en retrouvant le Depostis correspondant à la main et calculant les frais (la différence entre les deux montants) puis en le rajoutant dans la colone EUR Fees de ce CSV.

Les colones du CSV doivent être : Timestamp,Transaction Type,Asset,Quantity Transacted,EUR Spot Price at Transaction,EUR Subtotal,EUR Total (inclusive of fees),EUR Fees,Notes

Coinbase Pro Support bon

  --coinbase-pro-account
        Coinbase Pro Account CSV file
  --coinbase-pro-fills
        Coinbase Pro Fills CSV file

Il faut fournir les CSV récupérés sur Coinbase.

Les colones du CSV Account doivent être : portfolio,type,time,amount,balance,amount/balance unit,transfer id,trade id,order id

Les colones du CSV Fills doivent être : portfolio,trade id,product,side,created at,size,size unit,price,fee,total,price/fee/total unit

ETH Support avancé

  --eth-address
        Ethereum Address
  --eth-addresses-csv
        Ethereum Addresses CSV file

Il faut fournir :

  • soit une ou plusieurs adresses directement dans la ligne de commande : --eth-address 0x9302F624d2C35fe880BFce22A36917b5dB5FAFeD --eth-address 0x9302F624d2C35fe880BFce22A36917b5dB5FAFeD

  • soit un CSV à faire manuellement contenant toutes les addresses ETH que vous possédez (attention les champs dans le CSV doivent être séparés par des virgules, pas des points virgules comme le fait Excel en Français, le plus simple est de le faire dans un editeur de texte simple comme Notepad). Un CSV d'exemple est disponible, essayez --eth-addresses-csv Inputs/ETH_Addresses_exemple.csv.

L'outil se chargera de récupérer la liste des transactions associées sur Etherscan.io (à une vitesse limitée de 5 requêtes par secondes si vous ne fournissez pas une API Key).

Il détectera aussi les Token ERC20 et ERC721 (NFT) associés.

Les colones du CSV doivent être : Address,Description

HitBTC Support bon

  • Via API
  --hitbtc-api-key
        HitBTC API Key
  --hitbtc-secret-key
        HitBTC Secret Key

L'API est utilisée pour récupérer les transactions du compte Deposits et Withdrawals afin de les ajouter à votre portefeuille global.

La clé API doit avoir les droits :

  • Payment information pour les Deposits et Withdrawals (équivalent du CSV Transactions).

  • Orderbook, History, Trading balance pour les Exchanges (équivalent du CSV Trades).

  • Via CSV

  --hitbtc-trades
        HitBTC Trades CSV file
  --hitbtc-transactions
        HitBTC Transactions CSV file

Il faut fournir les fichiers CSV récupérés dans HitBTC (https://hitbtc.com/reports).

Le CSV Transactions ne fournit pas les infos de Fee, il vaut donc mieux utiliser l'API.

Les colones du CSV Trades doivent être : Email,Date (UTC),Instrument,Trade ID,Order ID,Side,Quantity,Price,Volume,Fee,Rebate,Total,Taker

Les colones du CSV Transactions doivent être : Email,Date (UTC),Operation id,Type,Amount,Transaction hash,Main account balance,Currency

Kraken Support bon

  • Via API
  --kraken-api-key
        Kraken API key
  --kraken-api-secret
        Kraken API secret

L'API est utilisée pour récupérer l'ensemble des transactions du ledger afin de les ajouter à votre portefeuille global.

  • Via CSV
  --kraken
        Kraken CSV file

Il faut fournir le fichier CSV récupéré dans Kraken (https://www.kraken.com/u/history/export puis sélectionner "Ledgers" et "All fields").

Les colones du CSV d'origine doivent être : txid,refid,time,type,subtype,aclass,asset,amount,fee,balance

Local Bitcoin Support bon

  --lb-trade
        Local Bitcoin Trade CSV file
  --lb-transfer
        Local Bitcoin Transfer CSV file

Les colones du CSV de Trade doivent être : id,created_at,buyer,seller,trade_type,btc_amount,btc_traded,fee_btc,btc_amount_less_fee,btc_final,fiat_amount,fiat_fee,fiat_per_btc,currency,exchange_rate,transaction_released_at,online_provider,reference

Les colones du CSV de Transfer doivent être : TXID, Created, Received, Sent, TXtype, TXdesc, TXNotes

Ledger Live Support bon

  --ledgerlive
        LedgerLive CSV file

Les colones du CSV doivent être : Operation Date,Currency Ticker,Operation Type,Operation Amount,Operation Fees,Operation Hash,Account Name,Account xpub

Monero Wallet Support bon

  --monero
        Monero Wallet CSV file

Les colones du CSV doivent être : blockHeight,epoch,date,direction,amount,atomicAmount,fee,txid,label,subaddrAccount,paymentId

MyCelium Support déprécié

Vous devriez exporter les clés publiques de votre wallet et utiliser la "Source" BTC.

  --mycelium
        MyCelium CSV file

Les colones du CSV doivent être : Account,Transaction ID,Destination Address,Timestamp,Value,Currency,Transaction Label

Poloniex Support bon

  --poloniex-trades
        Poloniex Trades CSV file
  --poloniex-deposits
        Poloniex Deposits CSV file
  --poloniex-withdrawals
        Poloniex Withdrawals CSV file
  --poloniex-distributions
        Poloniex Distributions CSV file

Les colones du CSV de Trades doivent être : Date,Market,Category,Type,Price,Amount,Total,Fee,Order Number,Base Total Less Fee,Quote Total Less Fee,Fee Currency,Fee Total

Les colones du CSV de Deposits doivent être : Date,Currency,Amount,Address,Status

Les colones du CSV de Withdrawals doivent être : Date,Currency,Amount,Fee Deducted,Amount - Fee,Address,Status

Les colones du CSV de Distributions doivent être : date,currency,amount,wallet

Revolut Support bon

  --revolut
        Revolut CSV file

Les colones du CSV doivent être : Completed Date,Description,Paid Out (BTC),Paid In (BTC),Exchange Out, Exchange In, Balance (BTC), Category, Notes

Uphold Support bon

  --uphold
        Uphold CSV file

Les colones du CSV doivent être : Date,Destination,Destination Amount,Destination Currency,Fee Amount,Fee Currency,Id,Origin,Origin Amount,Origin Currency,Status,Type

Options de "Providers"

Cet outil utilise plusieurs APIs de plateformes pour récupérer soit des taux de changes (CoinGecko, CoinLayer et CoinAPI), soit des transactions sur une blockchain particulière (Blockstream pour BTC et Etherscan pour ETH). Certaines de ces APIs ont besoins d'une clé.

CoinAPI.io

  --coinapi-key
        CoinAPI Key (https://www.coinapi.io/pricing?apikey)

CoinLayer.com

  --coinlayer-key
        CoinLayer Key (https://coinlayer.com/product)

Etherscan.io

  --etherscan-apikey
        Etherscan API Key (https://etherscan.io/myapikey)

Utilisé pour la Source ETH, si vous ne la fournissez pas les requêtes seront limitées à 5 par secondes.

Options de sortie

  --2086-display
        Display Cerfa 2086
  --2086
        Export Cerfa 2086 in 2086.xlsx
  --cashin-bnc-2019
        Convert AirDrops/CommercialRebates/Interests/Minings/Referrals into CashIn for 2019's Txs in 2086
  --cashin-bnc-2020
        Convert AirDrops/CommercialRebates/Interests/Minings/Referrals into CashIn for 2020's Txs in 2086

Cela vous génère automatiquement le formulaire 2086 !

Il y a deux façons de considérer les AirDrops/CommercialRebates/Interests/Minings/Referrals :

  • soit ils sont ajoutés simplement au portefeuille avec une valeur de 0€

  • soit ils sont ajoutés au portefeuille avec leur valeur du jour en EUR (donc convertis en CashIn), ce qui va accroitre votre Prix Total d'Acquisition et faire baisser votre Plus-Value, mais en contrepartie, il convient de les déclarer en revenus non commerciaux non professionnels (régime déclaratif spécial ou micro BNC) dans la case 5KU/5LU/5MU de votre 2042-C-PRO.

Pour activer la seconde méthode d'intégration, vous pouvez utiliser les options --cashin-bnc-2019 et/ou --cashin-bnc-2020.

En attendant que la loi soit plus claire à ce sujet, nous vous laissons le choix. Vous pouvez venir demander de l'aide à ce sujet sur le groupe Fiscalité crypto FR.

  --3916
        Export Cerfa 3916 in 3916.xlsx

Cela vous génère automatiquement le formulaire 3916 !

  --stock
        Export stock balances in stock.xlsx

Cela vous génère automatiquement une fiche de stock de tous vos coins !

Donation

Si vous voulez faire un don à l'outil (pas à moi), cela permettra d'acheter un nom de domaine et payer un hébergement par exemple :

Donate with Bitcoin

Donate with Ethereum

Donate with Crytpo.org Chain

Donate with Litecoin

Support

Si vous avez un problème d'utilisation ou pour le développement d'un module et que cette doc ne vous apporte pas de réponse, venez me la poser dans les groupes officiels de support sur :

Telegram CryptoFiscaFacile

Contribution

Pour les développeurs de la v2 :

Discord CryptoFiscaFacile

Remerciements

Merci au groupe Fiscalité crypto FR qui est une mine d'or d'informations pour essayer de comprendre comment cela fonctionne.

Copyright & License

Copyright (c) 2021-present FiscaFacile.

Released under the terms of the MIT license. See LICENSE for details.

cryptofiscafacile's People

Contributors

baprx avatar cromatikap avatar fiscafacile avatar gaelj avatar mehdichaouch avatar youri-c avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cryptofiscafacile's Issues

Binance api flag provided but not defined error

Describe the bug
Si j'ai bien compris, je devrais pouvoir obtenir des informations sur mon compte Binance en tappant ./CryptoFiscaFacile --binance-api-key ma_cle_ici --binance-api-secret ma_cle_secrete_ici. Cependant, cela retourne l'erreur flag provided but not defined: -binance-api-key
Ais-je mal compris comment lancer le programme ?

Desktop (please complete the following information):

  • OS: Arch Linux.

Cerfa 2086 année 2021

Même si l'année 2021 est loin d'être finie, ça serait bien d'avoir la possibilité d'avoir une preview du Cerfa 2086 des plus et moins values déjà réalisées de l'année 2021. D'après le code c'est actuellement hardcodé dans CalculatePVMV de ne montrer que le Cerfa année 2019 et 2020.

comment forcer une balance à 0 ?

Describe the bug
J’explique mon besoin : en utilisant la fonction dust_conversion de CDC App, il me reste des poussières de certaines cryptos mais quand je vais sur l’app le solde est de 0.
l’app crop les derniers digits je pense. j’aimerai donc forcer une balance à 0

complément : dans "Amounts" le coin n’apparait pas (donc considéré comme 0 je pense)

To Reproduce
Steps to reproduce the behavior:
Command Line '...'

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. Windows/Mac/Linux]

Additional context
Add any other context about the problem here.

est-ce que tx-display fait un arrondi ?

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:
Command Line '...'

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image
car mon csv et mon fichier de stock indiquent bien -0.09703428

Desktop (please complete the following information):

  • OS: [e.g. Windows/Mac/Linux]

Additional context
Add any other context about the problem here.

fees en double pour Bitstamp

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:
Command Line '...'

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image

Desktop (please complete the following information):

  • OS: [e.g. Windows/Mac/Linux]

Additional context
Add any other context about the problem here.

Creation d'archive

Ca serait pas mal de pouvoir exporter une archive ZIP avec tous les fichiers nécessaires à une analyze déclarée (CSVs, Cache API, config file, commande complete, binaire exéctuable)

Pouvoir ignorer certaines transactions

Is your feature request related to a problem? Please describe.
Je souhaite ignorer un doublon manuellement dans une source CSV sans vraiment le supprimer.

Describe the solution you'd like
Mettre un # dans le fichier CSV comme un commentaire.

Additional context
Binance double certaines transactions (aléatoirement) dans les exports CSV.

Pouvoir forcer un coin à la place d'un autre

Suite à un problème de valorisation de mes récompenses de Minings en UNI, je me suis rendu compte que plusieurs tokens étaient listés dans le Cache de Coingecko avec le même symbole mais un id différent ce qui fausse certains calculs :

telegram-cloud-photo-size-4-5904457272170493957-x
telegram-cloud-photo-size-4-5904457272170493958-x
telegram-cloud-photo-size-4-5904457272170493959-x

Seul le premier m'est utile dans le cadre de ma déclaration, je propose donc de pouvoir forcer l'usage de l'un ou l'autre de ces coins via une option dans le fichier config.yml

CdC Ex JSON : fees de withdrawal ne sont pas prises en compte

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:
Command Line '...'

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image
après ce retrait ma balance est de 0.1 alors qu’elle devrait être de 0

Desktop (please complete the following information):

  • OS: [e.g. Windows/Mac/Linux]

Additional context
Add any other context about the problem here.

les frais n’ont pas l’air d’être pris en compte lors des transferts de Bittrex à CDC App

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:
Command Line '...'

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image
Ici on voit bien 3*1,35 MCO de fees. et ça correspond à ma balance restante sur mon fichier stock.xls : 4,05 MCO

Desktop (please complete the following information):

  • OS: [e.g. Windows/Mac/Linux]

Additional context
Add any other context about the problem here.

Ajouter les Transfers dans la fiche de stocks

Describe the solution you'd like
Pouvoir avoir une visibilité sur les transfers (deposits et withdrawals associés) internes dans la fiche de stock. Cela n'inpacte pas la balance mais permet d'avoir un historique complet par coin pour trouver des coquilles.

CdC Exchange JSON : problème avec le traitement (dedup)

Describe the bug
Lors du lancement du premier supercharger, je pense que CDC a mal géré le dépôt des récompenses UNI.
Toutes les récompenses quotidiennes du 01/11/2020 au 24/11/2020 ont toute la date identique du 24/11, ce qui fait que lorsqu’il y’a suppression des doublons, ils sont tous supprimés pour ne conserver qu’une seule et unique transaction le 24/11/2020.

To Reproduce
Steps to reproduce the behavior:
Command Line '...'

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. Windows/Mac/Linux]

Additional context
Add any other context about the problem here.

Associer manuellement un dépôt et un retrait

Il serait idéal de pouvoir associer un retrait et un dépôt via leur txid respectifs. Cela permettrait de résoudre les frais manquants sur les transactions de certains échanges.

Exemple :
image

telegram-cloud-document-4-5904580623174994456

Trades CDC non traités

J'ai une multitude de trades de l'exchange Crypto.com qui ne sont pas traités par l'outil car non visibles dans la fiche de stocks. Je retrouve bien ces trades dans le Cache/Crypto.com/Exchange/private/get-trades donc ils sont bien importés avec l'API.

Cache json du 30/09/2020
image

Fiche de stock :
image

Erreur sur le traitement des trades CDC Exchange "spot-orders.csv"

Hello,

Merci pour l'ajout du support des CSV de l'exchange Crypto.com pour les trades.

J'ai constaté une petite coquille sur l'agorithme de dedupe.

Le CSV en date du 2 octobre 2020
image

La fiche de stock générée par l'outil :
image

On constate qu'un des deux trades à 12.26 n'est pas pris en compte.

Générer un tx id pour les transactions qui n'en ont pas

Is your feature request related to a problem? Please describe.
Je souhaite arrondir à 0 une balance avec la fonction SHIT, mais la transaction en question n'a pas d'ID donc je ne peux pas agir sur celle-ci

Describe the solution you'd like
Générer un tx id pour les transactions qui n'en ont pas. Exemple : Bittrex.

Additional context
La transaction en question
image

Comment déclarer du mining

J'ai miné en 2014 et j'ai transférés les coins sur Binance en 2021. Ensuite il y a eu pas mal d'opérations crypto / fiat puis crypto / stable coins 😝 et un retrait en fiat.

Comment catégoriser correctement ces transactions pour être taxé au plus juste ?

J'ai tenté:

  • de renommer dans le csv binance, l'Operation de ces transactions (Deposit) à "Super BNB Mining" (c'est ce qui me semble le plus proche comme operation)
  • changer simplement l'année dans le CSV

dans les 2 cas => ça augmente de 50% ma plus value globale ☹️ c'était pas le but...

Par ailleur le README de mentionne pas de catégorie Mining pour aller les catégoriser dans le fichier TXS_Categ.csv (ce qui me semblait la solution idéale)

Quelle est la meilleure méthode ?

CdC Exchange : problème dans traitement des trades

Describe the bug
cela fausse toutes les balances concernées.
dès que j’enlève l’API des sources dans le fichier de config, mes balances sont correctes.
pour l’instant, je n’arrive pas à trouver l’origine du problème mais je crois me souvenir que @BapRx rencontre le même soucis. Est-ce que tu as pu t’y pencher ?

To Reproduce
Steps to reproduce the behavior:
Command Line '...'

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. Windows/Mac/Linux]

Additional context
Add any other context about the problem here.

Binance API : le merge des ordres a l’air de faire des siennes dans certains cas

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:
Command Line '...'

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image

Desktop (please complete the following information):

  • OS: [e.g. Windows/Mac/Linux]

Additional context
Add any other context about the problem here.

`Cannot find rate for ATA`

J'ai acheté de l'ATA sur Binance mais les rates ne sont pas toujours disponibles avec coinapi ou coinlayer:

2021/08/22 15:15:18 Cannot find rate for ATA at 2021-06-03 03:33:30 +0200 CEST
2021/08/22 15:15:19 Cannot find rate for ATA at 2021-06-04 03:43:19 +0200 CEST
2021/08/22 15:15:19 Cannot find rate for ATA at 2021-06-05 03:42:36 +0200 CEST
2021/08/22 15:15:20 Cannot find rate for ATA at 2021-06-06 04:15:24 +0200 CEST

et du coup j'ai ces erreurs:

2021/08/22 15:26:06 Malformated TX : {2021-06-03 03:33:30 +0200 CEST c055114225505240f03eb110f269fc8bc4433f59068092b747ded5f89a86b684   map[To:[{ATA 1.80934416}]] map[] Binance CSV : Super BNB Mining  false}
2021/08/22 15:26:06 Malformated TX : {2021-06-04 03:43:19 +0200 CEST 959a781a52c2cb72333efce511380b11e7833bbb027af2841ff2ef516846ad64   map[To:[{ATA 1.66306495}]] map[] Binance CSV : Super BNB Mining  false}
2021/08/22 15:26:06 Malformated TX : {2021-06-05 03:42:36 +0200 CEST 8ba7ca3d70604374fae35a16be87e6bf53c38ba813db356a964aae3fd7310530   map[To:[{ATA 1.63837042}]] map[] Binance CSV : Super BNB Mining  false}
2021/08/22 15:26:06 Malformated TX : {2021-06-06 04:15:24 +0200 CEST 99d0403f6b0960e43594b7cf865597723dac11270e59c3f74f578f1529fa7594   map[To:[{ATA 0.81441364}]] map[] Binance CSV : Super BNB Mining  false}

sur par exemple :

2021-06-06 04:15:24,Spot,Super BNB Mining,ATA,0.81441364,""

Crash on start `Undefined: New2086` / clarifier comment lancer le script

Describe the bug
Quand je lance l'application avec go run main.go, après l'avoir configurée en suivant le manuel, il crashe directement.
NB: si je lance en debug avec VS code, pas de problème

To Reproduce
Steps to reproduce the behavior:

❯ go run ./main.go
# command-line-arguments
./main.go:634:12: undefined: New2086

Expected behavior
Lancement sans crash...

Screenshots
N/A

Desktop (please complete the following information):

  • OS: Arch Linux
  • go version go1.16.7 linux/amd64

Additional context
J'ai configuré un compte binance et l'emplacement du csv et lancé le programme

Lors de l'utilisation du paramètre "delisted-coins", ajouter un commentaire

Is your feature request related to a problem? Please describe.
Afficher le delisting d'un coin dans le fichier de stock afin de permettre de comprendre visuellement le changement de balance.

Describe the solution you'd like
Pour d'avantage de clarté, il serait idéal d'ajouter un commentaire dans la colonne "Note" du fichier excel stock.csv

CSV générique

Idéalement, il faudrait pouvoir un fichier CSV "template" qui permettrait de déclarer des transactions manuelles.

Binance API : galère un peu à tout récupérer

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:
Command Line '...'

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image
ici j’ai un trou entre mon CSV (arrêt le 26/04) et l’API. L’API aurait du prendre le relai le 27/04 mais on voit le 09/05.

image
voici l’historique pour comparaison sur le site de Binance directement.
=> j’ai le cas sur deux tokens différents

Desktop (please complete the following information):

  • OS: [e.g. Windows/Mac/Linux]

Additional context
Add any other context about the problem here.

Ajout fonction d'export brut

Bonjour,
Serait-il envisageable d'ajouter une nouvelle fonction pour exporter de façon brute mais dans un format uniforme toutes les transactions avec tous les détails ?
En gros générer un excel de ce genre :

Id    , Date               , Type          , Achat, Devise achat, Vente , Devise de vente, Balance achat, Balance vente, Note
015500, 12/10/2021 11:10:00, CashIn        , 5000 , USDT        ,       ,                , 5000         ,              , Crypto.com
015681, 12/10/2021 11:10:00, spot_trade    , 0.1  , BTC         , 5000  , USDT           , 0.1          , 0            , Crypto.com
015681, 12/10/2021 11:10:00, spot_trade_fee,      ,             , 0.0001, BTC            ,              , 0,09999      , Crypto.com
032291, 12/10/2021 12:10:00, card_cashback , 3    , CRO         ,       ,                , 3            ,              , Crypto.com
029577, 12/10/2021 12:12:00, spot_trade    , 1.5  , USDT        , 3     , CRO            , 1.5          , 0            , Crypto.com

Je ne maitrise pas la complexité technique mais l'idée serait peut-être de rentrer les cadeaux/intérêts en achats et de séparer les frais de chaque transaction en une seconde ligne qui ne contiendrais que de la vente. Si l'idée vous intéresse je suis ouvert à toute suggestion :-).

Binance CSV : doublons dans le CSV d'origine

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:
Command Line '...'

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image
à voir si c’est pas plus simple de le traiter à la main en le supprimant du CSV source

Desktop (please complete the following information):

  • OS: [e.g. Windows/Mac/Linux]

Additional context
Add any other context about the problem here.

CdC Supercharger from APP

supercharger_withdrawal et supercharger_deposit dans App CSV semblent ne pas avoir d'equivalents dans Exchange donc ne sont pas consolidés,

a vérifier

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.