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 :
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:CryptoUne 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 USDTransferts 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 basisTrois 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
Incomecontiennent 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 USDLa 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 - feesMé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 proceedsVendre 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 basisMê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 USDSuivi 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 DESCIndicateurs 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.50Les {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 basis40,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.00Gestion 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 ADACes 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 USDToute 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 USDGains à 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 basisLe 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.