Aller au contenu principal

Suivre un portefeuille de cryptomonnaies avec le coût de

Suivez un portefeuille de cryptomonnaies dans Beancount sur plusieurs bourses, avec le coût de base, les lots et l'analyse de performance dans un seul registre.

Gérer un portefeuille de cryptomonnaies réparti sur plusieurs plateformes d'échange, portefeuilles et protocoles DeFi peut s'avérer complexe. Ce guide complet vous montre comment configurer et maintenir un suivi précis de portefeuille de cryptomonnaies à l'aide du puissant système de comptabilité en texte brut de Beancount.io.

Explorez un exemple de grand livre de cryptomonnaies en direct :

Ouvrir Cryptocurrency Example Ledger dans un nouvel onglet

Pourquoi les trackers de portefeuille traditionnels sont insuffisants

Problèmes courants avec les outils de portefeuille crypto

  • Prise en charge limitée des plateformes d'échange : De nombreux outils ne prennent pas en charge toutes les plateformes d'échange ni les protocoles DeFi
  • Base de coût imprécise : Les calculs simplifiés FIFO/LIFO manquent les scénarios complexes
  • Transactions manquantes : Limitations des API et lacunes de la saisie manuelle
  • Aucune personnalisation : Catégories et structures de reporting fixes
  • Préoccupations de confidentialité : Partage des clés API avec des services tiers
  • Verrouillage propriétaire : Formats de données propriétaires et options d'export limitées

Avantages de Beancount.io

  • Contrôle total : Vos données vous appartiennent, au format texte brut
  • Personnalisation illimitée : Créez n'importe quelle structure de comptes dont vous avez besoin
  • Base de coût précise : Suivi par lots avec identification spécifique
  • Prise en charge multi-protocoles : Gérez n'importe quelle plateforme d'échange, portefeuille ou protocole DeFi
  • Calculs transparents : Voyez exactement comment les chiffres sont calculés
  • Pérenne : Le format texte brut garantit l'accessibilité à long terme

Configuration de la structure de votre portefeuille crypto

Hiérarchie de compte de base

Commencez par une structure de comptes exhaustive qui reflète votre écosystème crypto :

; Exchange Accounts - Organized by Platform
1970-01-01 open Assets:Crypto:Coinbase:USD
1970-01-01 open Assets:Crypto:Coinbase:BTC
1970-01-01 open Assets:Crypto:Coinbase:ETH
1970-01-01 open Assets:Crypto:Coinbase:ADA
 
1970-01-01 open Assets:Crypto:Binance:USD
1970-01-01 open Assets:Crypto:Binance:BTC
1970-01-01 open Assets:Crypto:Binance:ETH
1970-01-01 open Assets:Crypto:Binance:BNB
 
1970-01-01 open Assets:Crypto:Kraken:USD
1970-01-01 open Assets:Crypto:Kraken:BTC
1970-01-01 open Assets:Crypto:Kraken:ETH
1970-01-01 open Assets:Crypto:Kraken:ADA
1970-01-01 open Assets:Crypto:Binance:ADA
 
; Wallet Accounts - Organized by Type
1970-01-01 open Assets:Crypto:Wallet:Ledger:BTC
1970-01-01 open Assets:Crypto:Wallet:Ledger:ETH
1970-01-01 open Assets:Crypto:Wallet:MetaMask:ETH
1970-01-01 open Assets:Crypto:Wallet:MetaMask:USDC
1970-01-01 open Assets:Crypto:Wallet:MetaMask:UNI
1970-01-01 open Assets:Crypto:Wallet:TrustWallet:BNB
 
; DeFi Protocol Accounts
1970-01-01 open Assets:DeFi:Uniswap:ETH-USDC-LP
1970-01-01 open Assets:DeFi:Compound:CUSDC
1970-01-01 open Assets:Staking:Ethereum:ETH
1970-01-01 open Assets:Staking:Cardano:ADA
 
; Income Tracking
1970-01-01 open Income:Crypto:Staking:ETH
1970-01-01 open Income:Crypto:Staking:ADA
1970-01-01 open Income:Crypto:Mining:BTC
1970-01-01 open Income:Crypto:Airdrops
1970-01-01 open Income:Crypto:DeFi:Yield
1970-01-01 open Income:Crypto:Arbitrage
1970-01-01 open Income:CapitalGains:Crypto
1970-01-01 open Income:CapitalGains:LongTerm
 
; Expense Tracking
1970-01-01 open Expenses:Crypto:Fees:Trading
1970-01-01 open Expenses:Crypto:Fees:Network
1970-01-01 open Expenses:Crypto:Fees:Withdrawal
1970-01-01 open Expenses:CapitalLoss:Crypto

Une règle de nommage pose problème ici, et l'analyseur syntaxique l'impose plutôt que la convention : chaque composant de compte, et chaque symbole de marchandise, doit commencer par une lettre majuscule ou un chiffre. Compound écrit son jeton de reçu cUSDC dans toute son interface, mais Assets:DeFi:Compound:cUSDC et une marchandise cUSDC sont tous deux des erreurs de lexer. Écrivez-les CUSDC et conservez l'orthographe propre du protocole dans les métadonnées name: de la marchandise.

Définitions des marchandises avec métadonnées

Définissez vos cryptomonnaies avec des métadonnées riches pour un meilleur suivi :

1970-01-01 commodity BTC
  name: "Bitcoin"
  asset-class: "cryptocurrency"
  sector: "digital-currency"
  price-source: "coinbase"
  website: "https://bitcoin.org"
 
1970-01-01 commodity ETH
  name: "Ethereum"
  asset-class: "cryptocurrency"
  sector: "smart-contract-platform"
  price-source: "coinbase"
  website: "https://ethereum.org"
 
1970-01-01 commodity ADA
  name: "Cardano"
  asset-class: "cryptocurrency"
  sector: "smart-contract-platform"
  price-source: "binance"
  website: "https://cardano.org"
 
1970-01-01 commodity DOT
  name: "Polkadot"
  asset-class: "cryptocurrency"
  sector: "interoperability"
  price-source: "kraken"
  website: "https://polkadot.network"

Suivi de portefeuille multi-exchanges

Enregistrement des achats sur plusieurs exchanges

Suivez la même cryptomonnaie sur différentes plateformes d'échange avec une base de coût précise :

; Bitcoin purchases on different exchanges
2024-01-15 * "Buy BTC on Coinbase"
  Assets:Crypto:Coinbase:BTC      1.0 BTC {45000.00 USD}
  Assets:Crypto:Coinbase:USD  -45000.00 USD
  Expenses:Crypto:Fees:Trading    50.00 USD
  Assets:Crypto:Coinbase:USD     -50.00 USD
 
2024-01-20 * "Buy BTC on Binance"
  Assets:Crypto:Binance:BTC       0.5 BTC {46000.00 USD}
  Assets:Crypto:Binance:USD   -23000.00 USD
  Expenses:Crypto:Fees:Trading    25.00 USD
  Assets:Crypto:Binance:USD      -25.00 USD
 
2024-01-25 * "Buy BTC on Kraken"
  Assets:Crypto:Kraken:BTC        0.8 BTC {44000.00 USD}
  Assets:Crypto:Kraken:USD    -35200.00 USD
  Expenses:Crypto:Fees:Trading    30.00 USD
  Assets:Crypto:Kraken:USD       -30.00 USD

Transferts inter-exchanges

Suivez les transferts entre plateformes d'échange tout en conservant la base de coût :

2024-02-01 * "Transfer BTC from Coinbase to Ledger"
  Assets:Crypto:Coinbase:BTC      -0.5 BTC {45000.00 USD}
  Assets:Crypto:Wallet:Ledger:BTC  0.5 BTC {45000.00 USD}
  Expenses:Crypto:Fees:Withdrawal  0.0005 BTC {45000.00 USD}
  Assets:Crypto:Coinbase:BTC      -0.0005 BTC {45000.00 USD}

Opportunités d’arbitrage

Un arbitrage est un seul événement économique sur deux places, alors enregistrez-le comme une seule transaction. Cette écriture vend 10 ETH que vous détenez déjà sur Coinbase à 2 580,00 $ et restaure immédiatement la position sur Binance à 2 500,00 $ :

2024-02-10 * "Arbitrage: Buy ETH on Binance, Sell on Coinbase"
  ; Buy leg on Binance
  Assets:Crypto:Binance:ETH       10 ETH {2500.00 USD}
  Assets:Crypto:Binance:USD   -25000.00 USD
  Expenses:Crypto:Fees:Trading    25.00 USD
  Assets:Crypto:Binance:USD      -25.00 USD
  ; Sell leg on Coinbase, at the higher price
  Assets:Crypto:Coinbase:ETH     -10 ETH {2500.00 USD} @ 2580.00 USD
  Assets:Crypto:Coinbase:USD   25800.00 USD
  Expenses:Crypto:Fees:Trading    30.00 USD
  Assets:Crypto:Coinbase:USD     -30.00 USD
  Income:Crypto:Arbitrage       -800.00 USD  ; 25,800.00 proceeds - 25,000.00 basis

Trois choses à retenir :

  • Ne laissez jamais de ligne vide entre les écritures. Une ligne vide termine la transaction, et Beancount signale une erreur de syntaxe sur les écritures qui suivent. Utilisez plutôt des commentaires ; indentés pour étiqueter les jambes — c'est ce que font les deux lignes de commentaire ci-dessus.
  • Le gain est celui de la cession, 800,00 $, et il est négatif car les comptes Income contiennent des crédits. Les 55,00 $ de frais sont distincts : c'est ce qui transforme 800,00 $ de spread brut en 745,00 $ de profit, et ils sont déjà enregistrés sur leurs deux propres écritures.
  • La jambe de vente réduit un lot que vous devez déjà détenir. Cette écriture suppose 10 ETH achetés plus tôt sur Coinbase à 2 500,00 $ ; sans ce lot, la réduction n'a rien à quoi s'imputer.

Gestion avancée du prix de revient

Suivi par lots

Le système par lots de Beancount.io offre un suivi précis de la base de coût :

; Multiple purchases at different prices
2024-01-01 * "BTC Purchase Lot 1"
  Assets:Crypto:Coinbase:BTC  1.0 BTC {40000.00 USD}
  Assets:Crypto:Coinbase:USD -40000.00 USD
 
2024-02-01 * "BTC Purchase Lot 2"
  Assets:Crypto:Coinbase:BTC  1.0 BTC {45000.00 USD}
  Assets:Crypto:Coinbase:USD -45000.00 USD
 
2024-03-01 * "BTC Purchase Lot 3"
  Assets:Crypto:Coinbase:BTC  1.0 BTC {50000.00 USD}
  Assets:Crypto:Coinbase:USD -50000.00 USD

La convention de signe pour les gains et pertes

Les comptes Income contiennent des crédits, donc Beancount les stocke sous forme de nombres négatifs. Chaque gain ci-dessous est par conséquent une écriture négative sur un compte de revenus, et chaque perte est une écriture positive sur un compte de charges. Les frais sont distincts des deux : ils constituent une charge à part entière, donc les soustraire aussi du gain reviendrait à les déduire deux fois et laisserait la transaction déséquilibrée.

Pour une cession, l'arithmétique est toujours la suivante :

gain (or loss) = gross proceeds - cost basis of the lots removed
net cash       = gross proceeds - fees

Méthode d’identification spécifique

Vendez des lots spécifiques pour une gestion fiscale optimale. Nommer le coût du lot dans l'écriture de réduction est ce que signifie « identification spécifique » dans Beancount, et cela fonctionne avec la méthode d'affectation STRICT par défaut :

; Sell the most expensive lot: 1.0 BTC bought at $50,000.00
2024-04-01 * "Sell BTC Lot 3 for tax optimization"
  Assets:Crypto:Coinbase:BTC    -1.0 BTC {50000.00 USD} @ 48000.00 USD
  Assets:Crypto:Coinbase:USD   48000.00 USD  ; gross proceeds
  Expenses:Crypto:Fees:Trading    50.00 USD
  Assets:Crypto:Coinbase:USD     -50.00 USD
  Expenses:CapitalLoss:Crypto   2000.00 USD  ; 50,000.00 basis - 48,000.00 proceeds

Vendre le lot le plus ancien ou le plus récent

Nommer un coût différent sélectionne un lot différent. Ces deux ventes prennent le lot à 40 000,00 $ puis le lot à 45 000,00 $ — les deux encore en place après que celui à 50 000,00 $ a été utilisé dans l'exemple ci-dessus — ce qui correspond à la même sélection que FIFO et LIFO feraient automatiquement, explicitée à la main :

; Sell the oldest lot (bought 2024-01-01 at $40,000.00)
2024-05-01 * "Sell 0.5 BTC from the oldest lot"
  Assets:Crypto:Coinbase:BTC    -0.5 BTC {40000.00 USD} @ 52000.00 USD
  Assets:Crypto:Coinbase:USD   26000.00 USD  ; gross proceeds, 0.5 * 52,000.00
  Expenses:Crypto:Fees:Trading    30.00 USD
  Assets:Crypto:Coinbase:USD     -30.00 USD
  Income:CapitalGains:Crypto   -6000.00 USD  ; 26,000.00 proceeds - 20,000.00 basis
 
; Sell the newest remaining lot (bought 2024-02-01 at $45,000.00)
2024-05-02 * "Sell 0.5 BTC from the newest lot"
  Assets:Crypto:Coinbase:BTC    -0.5 BTC {45000.00 USD} @ 52000.00 USD
  Assets:Crypto:Coinbase:USD   26000.00 USD
  Expenses:Crypto:Fees:Trading    30.00 USD
  Assets:Crypto:Coinbase:USD     -30.00 USD
  Income:CapitalGains:Crypto   -3500.00 USD  ; 26,000.00 proceeds - 22,500.00 basis

Même prix de vente, lot différent, 2 500,00 $ d'écart sur le gain réalisé. Si vous préférez que Beancount choisisse le lot à votre place, définissez une méthode d'affectation sur le compte plutôt que de nommer un coût — "FIFO", "LIFO" ou "HIFO" sur la directive open, décrite dans Gestion des inventaires.

Analyse des performances du portefeuille

Configuration du suivi des prix

Configurez des flux de prix automatisés pour une valorisation précise :

Pour les livres hébergés, Live Prices fournit automatiquement les paires prises en charge. Les directives statiques ci-dessous montrent les données utilisées par une valorisation et restent utiles pour des exemples locaux reproductibles.

; Daily price updates
2024-01-15 price BTC 45000.00 USD
2024-01-15 price ETH 2500.00 USD
2024-01-15 price ADA 0.50 USD
 
2024-01-16 price BTC 46000.00 USD
2024-01-16 price ETH 2550.00 USD
2024-01-16 price ADA 0.52 USD

Suivi de l'allocation du portefeuille

Utilisez les fonctionnalités de reporting de Beancount.io pour analyser l'allocation :

-- Query for portfolio allocation by asset
SELECT
  account,
  sum(position) as balance,
  value(sum(position)) as market_value
WHERE account ~ "Assets:Crypto"
GROUP BY 1
ORDER BY market_value DESC

Indicateurs de performance

Suivez les indicateurs clés de performance :

-- Total portfolio value query
SELECT
  sum(value(position)) as total_portfolio_value
WHERE account ~ "Assets:Crypto"
 
-- Realized gains/losses
SELECT
  sum(position) as realized_gains
WHERE account ~ "Income:CapitalGains:Crypto"

Intégration Staking et DeFi

Suivi des récompenses de staking

Enregistrez les récompenses de staking avec une reconnaissance de revenus appropriée. Les unités qui arrivent et le revenu reconnu sont le même événement vu de deux côtés, donc leurs poids doivent s'annuler : [unités] × [prix] d'actif en entrée, le même nombre de dollars de revenus en sortie — et un revenu est un crédit, donc il est négatif.

2024-01-31 * "ETH Staking Rewards - January"
  Assets:Staking:Ethereum:ETH     0.08 ETH {2500.00 USD}
  Income:Crypto:Staking:ETH     -200.00 USD  ; 0.08 * 2,500.00
 
2024-01-31 * "ADA Staking Rewards - January"
  Assets:Staking:Cardano:ADA        25 ADA {0.50 USD}
  Income:Crypto:Staking:ADA      -12.50 USD  ; 25 * 0.50

Les {2,500.00 USD} et {0.50 USD} sont des valorisations externes. Beancount stocke ce que vous écrivez ; il ne récupère pas un prix ni ne décide quelle cotation est la bonne. Choisissez une source — la plateforme d'échange sur laquelle vous vendriez réellement, ou un indice publié — et utilisez-la de manière cohérente, car ce nombre est à la fois votre revenu et votre future base de coût.

La base de la récompense est reconnue une seule fois

Les 200,00 $ reconnus ci-dessus deviennent la base de coût des 0,08 ETH. Les vendre plus tard ne réalise que la variation depuis la date de la récompense :

2024-06-30 * "Sell the January ETH staking reward"
  Assets:Staking:Ethereum:ETH   -0.08 ETH {2500.00 USD} @ 3000.00 USD
  Assets:Crypto:Coinbase:USD     240.00 USD  ; gross proceeds, 0.08 * 3,000.00
  Income:CapitalGains:Crypto     -40.00 USD  ; 240.00 proceeds - 200.00 basis

40,00 $ de plus-value, et non 240,00 $ — les premiers 200,00 $ ont déjà été comptabilisés en revenus en janvier. Comptabiliser l'intégralité des 240,00 $ comme gain est la façon la plus courante de compter deux fois le revenu des récompenses. Le moment où la récompense devient imposable, et à quel taux, varie selon la juridiction ; le grand livre enregistre la réception et la cession séparément afin que l'un ou l'autre traitement puisse être déclaré à partir de celui-ci.

Suivi des rendements DeFi

Suivez des positions DeFi complexes :

Fournir de la liquidité échange deux marchandises contre une troisième, donc chaque jambe doit être évaluée dans la même devise avant que la transaction puisse s'équilibrer. Les jambes ETH et LP le font déjà, car elles portent un coût ; la jambe de stablecoin a besoin d'un @ 1.00 USD explicite, sinon Beancount voit 25 000 unités de USDC sortir et 25 000,00 $ de valeur entrer, qui sont des marchandises différentes et ne s'annulent pas.

2024-02-01 * "Uniswap LP Position"
  Assets:Crypto:Wallet:MetaMask:ETH    -10 ETH {2500.00 USD}
  Assets:Crypto:Wallet:MetaMask:USDC -25000 USDC @ 1.00 USD
  Assets:DeFi:Uniswap:ETH-USDC-LP      100 UNI-V2-ETH-USDC {500.00 USD}
 
2024-02-28 * "Uniswap LP Rewards - February"
  Assets:Crypto:Wallet:MetaMask:UNI    50 UNI {8.00 USD}
  Income:Crypto:DeFi:Yield          -400.00 USD  ; 50 * 8.00

Gestion automatisée du portefeuille

Importation des données d'échange

Beancount ne fournit aucun client d'API de plateforme d'échange, et il n'existe aucun fichier de configuration qui le fasse communiquer avec Coinbase ou Binance. La voie prise en charge est un importateur : vous téléchargez l'export CSV de la plateforme d'échange (ou le récupérez avec votre propre script) et le convertissez en transactions Beancount avec beangulp, le framework d'importation qui a succédé au beancount.ingest intégré de Beancount 2. beancount.ingest n'existe pas dans Beancount 3.

Si vous écrivez effectivement un script de récupération, son fichier d'identifiants n'appartient qu'à vous — rien dans la chaîne d'outils Beancount ne le lit :

# Configuration for YOUR OWN fetch script. No Beancount tool reads this file.
exchanges:
  coinbase:
    api_key: "your_api_key"
    api_secret: "your_api_secret"
    passphrase: "your_passphrase"
  binance:
    api_key: "your_api_key"
    api_secret: "your_api_secret"

Rapprochement Automatisé

Configurez une vérification automatisée des soldes :

; Balance assertions for automated verification
2024-01-31 balance Assets:Crypto:Coinbase:BTC    2.5 BTC
2024-01-31 balance Assets:Crypto:Binance:ETH    15.0 ETH
2024-01-31 balance Assets:Crypto:Kraken:ADA   1000.0 ADA

Ces trois nombres proviennent de vos écrans de plateforme d'échange, pas de cette page, donc le bloc ci-dessus ne se vérifiera contre rien tant que vos propres transactions ne sont pas dans le grand livre. Deux règles déterminent s'il se vérifie du tout. Une directive balance affirme le solde au début du jour nommé, donc une assertion datée du 2024-01-31 ne voit rien de ce qui est comptabilisé le 2024-01-31 — datez-la du lendemain de la période que vous clôturez. Et chaque compte affirmé doit être ouvert, c'est pourquoi Assets:Crypto:Kraken:ADA apparaît dans la section Hiérarchie de comptes de base ci-dessus.

Prix gérés dans un grand livre hébergé

Utilisez Live Prices pour choisir une devise de valorisation et les actifs crypto pris en charge, puis collez les includes générés dans votre grand livre hébergé. Les symboles d'actifs doivent correspondre à vos avoirs. Les flux fournissent des prix de valorisation datés ; ils ne fixent pas le montant du revenu ni le coût d'acquisition des récompenses de staking et des airdrops.

Votre propre prix a la priorité pour la même date et la même paire, y compris la paire réciproque. Une cotation mise en cache peut être obsolète pendant une panne, alors vérifiez son horodatage d'observation. Le flux de travail de récupération locale ci-dessous reste utile pour Beancount et Fava en amont.

Maintenir les prix à jour

Les prix vivent dans le grand livre sous forme de directives price. Beancount 3.2.3 en amont ne les récupère pas lui-même ; les includes gérés hébergés utilisent l'extension de chargeur Beancount.io décrite ci-dessus. Il n'existe aucune directive custom "price-source" — un symbole de marchandise nu n'est même pas une valeur custom valide, donc cette ligne est une erreur de syntaxe — et aucun module beancount.plugins.forecast ; le chargeur s'arrête avec une erreur d'importation si vous le nommez.

Activez beanprice dans le moteur géré avec bea engine enable beanprice, puis récupérez les cotations avec bea price main.beancount. Il lit un champ de métadonnées price: sur chaque directive commodity, sous la forme "<devise de cotation>:<module source>/<ticker>", et écrit des directives price que vous ajoutez à votre grand livre :

1970-01-01 commodity BTC
  name: "Bitcoin"
  asset-class: "cryptocurrency"
  price: "USD:beanprice.sources.coinbase/BTC-USD"
 
1970-01-01 commodity ETH
  name: "Ethereum"
  asset-class: "cryptocurrency"
  price: "USD:beanprice.sources.coinbase/ETH-USD"
 
; Example quotes to append after reviewing the output of bea price - and what you would otherwise type by hand
2024-01-15 price BTC 45000.00 USD
2024-01-15 price ETH 2500.00 USD

Toute autre métadonnée que vous attachez à une marchandise — sector, website, ou le champ price-source utilisé plus haut dans ce guide — est de la documentation libre à votre propre usage. Le chargeur la stocke et aucun outil n'agit dessus.

Stratégies d'Optimisation Fiscale

Récolte de Pertes Fiscales

Mettez en œuvre une récolte systématique de pertes fiscales :

; The lot being harvested, so this block stands on its own
2024-03-01 * "Buy ADA on Binance"
  Assets:Crypto:Binance:ADA       1000 ADA {0.60 USD}
  Assets:Crypto:Binance:USD    -600.00 USD
 
; Identify positions with unrealized losses
2024-12-15 * "Tax loss harvesting - Sell ADA at loss"
  Assets:Crypto:Binance:ADA      -1000 ADA {0.60 USD} @ 0.45 USD
  Assets:Crypto:Binance:USD       450.00 USD  ; gross proceeds
  Expenses:Crypto:Fees:Trading      5.00 USD
  Assets:Crypto:Binance:USD        -5.00 USD
  Expenses:CapitalLoss:Crypto     150.00 USD  ; 600.00 basis - 450.00 proceeds
 
; Repurchase after wash sale period (31 days)
2025-01-16 * "Repurchase ADA after wash sale period"
  Assets:Crypto:Binance:ADA      1000 ADA {0.45 USD}
  Assets:Crypto:Binance:USD     -450.00 USD
  Expenses:Crypto:Fees:Trading     5.00 USD
  Assets:Crypto:Binance:USD       -5.00 USD

Gains à Long Terme vs Court Terme

Suivez les périodes de détention pour l'optimisation fiscale :

; Use metadata to track purchase dates
2024-01-01 * "BTC Purchase - Long-term hold" ^long-term-btc
  Assets:Crypto:Coinbase:BTC  1.0 BTC {40000.00 USD}
  Assets:Crypto:Coinbase:USD -40000.00 USD
 
; Sell after one year for long-term capital gains treatment
2025-01-02 * "BTC Sale - Long-term capital gains" ^long-term-btc
  Assets:Crypto:Coinbase:BTC    -1.0 BTC {40000.00 USD} @ 55000.00 USD
  Assets:Crypto:Coinbase:USD   55000.00 USD
  Income:CapitalGains:LongTerm -15000.00 USD  ; 55,000.00 proceeds - 40,000.00 basis

Le lien ^long-term-btc sur les deux écritures est ce qui vous permet de remonter l'achat et la vente ensemble plus tard ; Beancount ne suit pas les périodes de détention lui-même.

Rapports et Analyses

Rapports Résumés de Portefeuille

Générez des rapports complets sur le portefeuille :

-- Portfolio allocation by cryptocurrency
SELECT
  commodity,
  sum(position) as total_units,
  value(sum(position)) as market_value,
  value(sum(position)) / (
    SELECT value(sum(position))
    FROM positions
    WHERE account ~ "Assets:Crypto"
  ) * 100 as allocation_percentage
WHERE account ~ "Assets:Crypto"
GROUP BY commodity
ORDER BY market_value DESC;

Analyse de Performance

Suivez la performance du portefeuille dans le temps :

-- Monthly portfolio performance
SELECT
  year(date) as year,
  month(date) as month,
  value(sum(position)) as portfolio_value
WHERE account ~ "Assets:Crypto"
GROUP BY year, month
ORDER BY year, month;

Analyse des Revenus

Analysez les sources de revenus :

-- Income breakdown by source
SELECT
  account,
  sum(position) as total_income
WHERE account ~ "Income:Crypto"
GROUP BY account
ORDER BY total_income DESC;

Bonnes Pratiques et Conseils

1. Enregistrement Cohérent

  • Enregistrez les transactions immédiatement après leur exécution
  • Utilisez des descriptions de transaction normalisées
  • Incluez les hachages de transaction dans les métadonnées

2. Rapprochement Régulier

  • Vérifiez les soldes chaque semaine sur toutes les plateformes
  • Utilisez les assertions de solde pour détecter les écarts
  • Surveillez les transactions manquantes

3. Sauvegarde et sécurité

  • Sauvegardez régulièrement vos fichiers Beancount
  • Utilisez le contrôle de version (Git) pour le suivi des modifications
  • Chiffrez les données sensibles

4. Documentation

  • Documentez vos décisions de structure de comptes
  • Tenez des notes sur les transactions complexes
  • Conservez des enregistrements des configurations d'API

5. Préparation fiscale

  • Générez des rapports trimestriels pour la planification fiscale
  • Tenez des registres détaillés à des fins d'audit
  • Consultez des professionnels de la fiscalité pour les situations complexes

Conclusion

Un suivi efficace d'un portefeuille de cryptomonnaies exige précision, cohérence et les bons outils. Beancount.io offre la flexibilité et la puissance nécessaires pour gérer des portefeuilles crypto complexes répartis sur plusieurs plateformes d'échange, portefeuilles et protocoles DeFi.

Principaux avantages de l'utilisation de Beancount.io pour le suivi d'un portefeuille crypto :

  • Propriété complète des données : Vos données au format texte brut
  • Base de coût précise : Suivi par lots avec identification spécifique
  • Flexibilité illimitée : Structures de comptes et reporting personnalisés
  • Optimisation fiscale : Stratégies avancées pour minimiser la charge fiscale
  • Pérenne : Un format ouvert garantit l'accessibilité à long terme

Commencez par une configuration de base et développez progressivement votre suivi à mesure que votre portefeuille gagne en complexité. L'investissement dans une configuration appropriée portera ses fruits en matière de reporting précis, d'optimisation fiscale et d'aperçus sur le portefeuille.

Prêt à prendre le contrôle de votre portefeuille de cryptomonnaies ? Commencez avec Beancount.io dès aujourd'hui.

Source : https://beancount.io/fr/docs/Solutions/cryptocurrency-portfolio-tracking