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.

Overview

CryptoFiscaFacile

made-with-Go MIT license Open Source? Yes!

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

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 / Compilation / Mise à jour

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

$ go get -u 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.

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

Options de base

Help

  -h
        Display all available arguments

Permet d'afficher toutes les options possibles.

Native Currency

  -native string
        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 string
        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 string
        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 string
        Display Transactions By Catergory : Exchanges|Deposits|Withdrawals|CashIn|CashOut|etc
  -curr_filter string
        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 : -curr_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 string
        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.

  • 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.

  • 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

  -binance string
        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.

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 string
        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

Bittrex Support bon

  -bittrex string
        Bittrex CSV file
  -bittrex_api_key string
        Bittrex API key
  -bittrex_api_secret string
        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 string
        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 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_address 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 string
        Bitcoin Gold Transactions JSON file

Expériemental.

Crypto.com Support avancé

  • App with CSV:
  -cdc_app_crypto string
        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 with JS and JSON:
  -cdc_ex_exportjs string
        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 with CSV:
  -cdc_ex_stake string
        Crypto.com Exchange Stake CSV file
  -cdc_ex_supercharger string
        Crypto.com Exchange Supercharger CSV file
  -cdc_ex_transfer string
        Crypto.com Exchange Deposit/Withdrawal CSV file

Il faut fournir les CSV récupérés dans l'Exchange Crypto.com (pour le SuperCharger, il faut le créer à la main car on ne peut pas le télécharger pour l'instant).

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

Les colones du CSV de l'Exchange Stake doivent être : create_time_utc,stake_currency,stake_amount,apr,interest_currency,interest_amount,status

Les colones du CSV de l'Exchange Supercharger doivent être : create_time_utc,supercharger_currency,reward_mount,description

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

  • Exchange with API:
  -cdc_ex_api_key string
        Crypto.com Exchange API Key
  -cdc_ex_secret_key string
        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 string
        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

ETH Support avancé

  -eth_address string
        Ethereum Addresses CSV file

Il faut fournir 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_address 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 string
        HitBTC API Key
  -hitbtc_secret_key string
        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 string
        HitBTC Trades CSV file
  -hitbtc_transactions string
        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 string
        Kraken API key
  -kraken_api_secret string
        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 string
        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 string
        Local Bitcoin Trade CSV file
  -lb_transfer string
        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 string
        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

MyCelium Support déprécié

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

  -mycelium string
        MyCelium CSV file

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

Revolut Support bon

  -revolut string
        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

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 string
        CoinAPI Key (https://www.coinapi.io/pricing?apikey)

CoinLayer.com

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

Etherscan.io

  -etherscan_apikey string
        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

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

  -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

Support

Si vous avec 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 le groupe officiel de support sur Telegram 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.

Comments
  • Binance api flag provided but not defined error

    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.
    opened by arbolis 20
  • Binance API : le merge des ordres a l’air de faire des siennes dans certains cas

    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.

    question 
    opened by fiscafacile 5
  • comment forcer une balance à 0 ?

    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.

    question 
    opened by fiscafacile 4
  • est-ce que tx-display fait un arrondi ?

    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.

    question 
    opened by fiscafacile 3
  • `Cannot find rate for ATA`

    `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,""

    opened by gaelj 2
  • Crash on start `Undefined: New2086` / clarifier comment lancer le script

    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

    opened by gaelj 2
  • Générer un tx id pour les transactions qui n'en ont pas

    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

    enhancement 
    opened by lebnet 2
  • Ajouter les Transfers dans la fiche de stocks

    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.

    opened by lebnet 2
  • CdC Exchange JSON : problème avec le traitement (dedup)

    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.

    opened by fiscafacile 2
  • Binance CSV : doublons dans le CSV d'origine

    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.

    opened by fiscafacile 2
  • CdC Ex JSON : fees de withdrawal ne sont pas prises en compte

    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.

    bug 
    opened by fiscafacile 2
  • Ajout fonction d'export brut

    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 :-).

    opened by aperigault 1
  • CdC Supercharger from APP

    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

    opened by fiscafacile 0
  • Comment déclarer du mining

    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 :stuck_out_tongue_closed_eyes: 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 :frowning_face: 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 ?

    opened by gaelj 1
  • Pouvoir forcer un coin à la place d'un autre

    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

    enhancement 
    opened by lebnet 3
  • Erreur sur le traitement des trades CDC Exchange

    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.

    bug 
    opened by lebnet 3
Owner
null
An easy tool to apply transactions to the current EVM state. Optimized for MEV.

sibyl A more embedded version of fxfactorial/run-evm-code. This tool makes it easy to apply transactions to the current EVM state. Call it a transacti

Dialectic 69 Dec 25, 2022
Signer manages Web3 transactions

Signer Website: https://signer-tech41.com Signer is a distributed, highly available, and data center aware solution to connect and configure applicati

Tech41 GmbH 1 Oct 29, 2021
A blockchains platform with high throughput, and blazing fast transactions

Node implementation for the Avalanche network - a blockchains platform with high throughput, and blazing fast transactions. Installation Avalanche is

null 1 Oct 31, 2021
Flashbots utilities in Go: Blocks & Transactions API, and tools to spot bundle and block irregularities

Utilities for Flashbots Go API client for the mev-blocks API for information about Flashbots blocks and transactions Detect bundle errors: (a) out of

Chris Hager 39 Nov 26, 2022
Prototype to predict Ethereum transactions' access lists

predict_al Prototype to predict Ethereum transactions' access lists. The project comes from CDAP cohort-one. The current design is to use a simplified

Alex Chen 4 Sep 18, 2022
Slides about IOTA transactions, validation and consensus

IOTA Donations: NJNCOKJOE9SMCYTSBZVTGWMAABPBYELV9SBPUYLKWSTCXQQZDUWHTFLTVKKRBBWSZKPDMNQALJMJX9CG9KAMOJXQVW IOTA Transactions, Confirmation and Consens

null 107 Oct 14, 2022
Dijetsnetgo: a blockchains platform with high throughput, and blazing fast transactions

Node implementation for the Avalanche network - a blockchains platform with high

Dijets 0 Jan 18, 2022
Signature-server - stores transaction blobs and uses predefined secret key to sign and verify those transactions

Signature Server Signature server stores transaction blobs and uses predefined s

Rezoan Tamal 0 Feb 14, 2022
A simple program able to listen to the pending transactions of the Ethereum mempool. Written in Go.

eth-mempool-listener-go A simple program able to listen to the pending transactions of the Ethereum mempool. How does it work ? It creates a set of cl

Luca G.F. 24 Dec 26, 2022
Quote-bot - Un bot utilisant l'API Twitter pour tweeter une citation par jour sur la programmation et les mathématiques.

Description Ceci est un simple bot programmé en Golang qui tweet une citation sur la programmation tout les jours. Ce bot est host sur le compte Twitt

Liam Cornu 0 Jan 1, 2022
Golang SDK du Logiciel de Facturation en ligne VosFactures

Golang VosFactures Implémentation sommaire de l'API VosFactures en Golang. Ce projet n'est pas complet, il l'est suffisamment pour les fonctionnalités

Squirrel Réunion 3 Oct 15, 2021
Converts grouped transactions in a ZKB transaction CSV (incl. details) to single transactions

ZKB Converter Converts grouped transactions in a ZKB transaction CSV (incl. deta

Tobias Nehrlich 0 Dec 26, 2021
ConsenSys Software 9 Jan 7, 2023
A simple server which can be used as an RPC endpoint in popular Ethereum wallets.

RPC Endpoint This repository contains code for a simple server which can be used as an RPC endpoint in popular Ethereum wallets. The endpoint is https

Flashbots 114 Jan 2, 2023
Report unwanted import path and declaration usages

faillint Faillint is a simple Go linter that fails when a specific set of import paths or exported path's functions, constant, vars or types are used.

Fatih Arslan 229 Dec 28, 2022
Faillint: Report unwanted import path and declaration usages

faillint Faillint is a simple Go linter that fails when a specific set of import paths or exported path's functions, constant, vars or types are used.

Fatih Arslan 229 Dec 28, 2022
Typescript type declaration to PostgreSQL CREATE TABLE converter

ts2psql NOTE: This is WIP. Details in this readme are ideal state. Current usage: go build && ./ts2psql (or go build && ts2psql if on Windows OS). A s

null 1 Jan 13, 2022
Go linter to analyze expression groups: require 'import' declaration groups

grouper — a Go linter to analyze expression groups Installation

null 0 Jun 19, 2022
RadonDB is an open source, cloud-native MySQL database for building global, scalable cloud services

OverView RadonDB is an open source, Cloud-native MySQL database for unlimited scalability and performance. What is RadonDB? RadonDB is a cloud-native

RadonDB 1.7k Dec 31, 2022