Управление портфелем криптовалют на нескольких биржах, кошельках и DeFi протоколах может быть сложной задачей. Это всеобъемлющее руководство покажет вам, как настроить и поддерживать точное отслеживание портфеля криптовалют с использованием мощной системы учета в текстовом формате Beancount.io.
Изучите пример живого реестра криптовалют:
Почему традиционные трекеры портфеля не справляются
Распространённые проблемы с инструментами для портфелей криптовалют
- Ограниченная поддержка бирж: Многие инструменты не поддерживают все биржи или DeFi протоколы
- Неточные калькуляции себестоимости: Упрощённые расчёты FIFO/LIFO не учитывают сложные сценарии
- Отсутствие транзакций: Ограничения API и пропуски при ручном вводе
- Отсутствие настройки: Жёсткие категории и отчётные структуры
- Проблемы с конфиденциальностью: Передача API-ключей сторонним сервисам
- Зависимость от поставщика: Проприетарные форматы данных и ограниченные варианты экспорта
Преимущества Beancount.io
- Полный контроль: Владейте своими данными в текстовом формате
- Неограниченная настройка: Создавайте любую структуру счетов, которая вам нужна
- Точная себестоимость: Учет по партиям с конкретной идентификацией
- Поддержка множества протоколов: Обработка любых бирж, кошельков и DeFi протоколов
- Прозрачные расчеты: Видите, как именно вычисляются цифры
- Защита на будущее: Текстовый формат обеспечивает долгосрочную доступность
Настройка структуры вашего криптопортфеля
Базовая иерархия счетов
Начните с всесторонней структуры счетов, отражающей вашу криптоэкосистему:
; 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Здесь действует одно правило именования, и парсер строго его применяет, а не просто конвенция: каждый компонент счета и каждый символ товара должны начинаться с заглавной буквы или цифры. Compound использует свой токен квитанции cUSDC по всему интерфейсу, но Assets:DeFi:Compound:cUSDC и товар cUSDC считаются ошибками лексера. Пишите их как CUSDC и сохраняйте оригинальное написание протокола в метаданных товара name:.
Определения товаров с метаданными
Определяйте свои криптовалюты с подробными метаданными для лучшего учета:
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"Отслеживание портфеля на нескольких биржах
Запись покупок на различных биржах
Отслеживайте одну и ту же криптовалюту на разных биржах с точным определением себестоимости:
; 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Перевод средств между биржами
Отслеживайте переводы между биржами, сохраняя базу стоимости:
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}Возможности арбитража
Арбитраж — это одно экономическое событие на двух площадках, поэтому записывайте его как одну транзакцию. Эта запись продаёт 10 ETH, которые у вас уже есть на Coinbase по цене $2,580.00, и сразу же восстанавливает позицию на 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Три вещи, которые нужно скопировать:
- Никогда не оставляйте пустую строку между записями. Пустая строка завершает транзакцию, и Beancount выдаст ошибку синтаксиса для последующих записей. Используйте отступленные комментарии
;, чтобы маркировать отдельные части сделки — именно это делают две строки комментариев выше. - Прибыль — это прибыль от выбытия, $800.00, и она отрицательна, потому что
Incomeсчета учитывают кредиты. Комиссия в $55.00 — отдельная: именно она превращает $800.00 валовой прибыли в $745.00 чистой, и она уже записана в отдельные две проводки. - Продажа снижает количество лота, который вы должны уже иметь. Эта запись предполагает 10 ETH, купленных ранее на Coinbase по цене $2,500.00; без этого лота снижение не с чем сопоставлять.
Расширенное управление себестоимостью
Отслеживание по лотам
Система Beancount.io на основе лотов обеспечивает точное отслеживание себестоимости:
; 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Правила знака для прибылей и убытков
Счета Income учитывают кредиты, поэтому Beancount хранит значения как отрицательные числа. Каждая прибыль ниже — это, следовательно, отрицательная запись в счёт доходов, а каждый убыток — положительная запись в счёт расходов. Комиссия отделена от обоих: она является расходом сама по себе, поэтому вычитать её из прибыли тоже означало бы учесть её дважды и нарушить баланс транзакции.
Для одного выбытия арифметика всегда такова:
gain (or loss) = gross proceeds - cost basis of the lots removed
net cash = gross proceeds - feesМетод конкретного определения
Продавайте конкретные лоты для оптимального налогового управления. Указание себестоимости лота в записи снижения — это то, что в Beancount называется "конкретным определением", и этот метод работает с настройками STRICT по умолчанию:
; 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Продажа самого старого или самого нового лота
Указание другой себестоимости — это выбор другого лота. В этих двух продажах берутся лоты по $40,000.00, а затем по $45,000.00 — два оставшихся после лота по $50,000.00, использованного в примере выше — что совпадает с автоматическим выбором FIFO и LIFO, но здесь всё расписано вручную:
; 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Та же цена продажи, разный лот, разница в реализованной прибыли $2,500.00. Если вы хотите, чтобы Beancount сам выбирал лот, установите метод бронирования для счета вместо указания стоимости — "FIFO", "LIFO" или "HIFO" в директиве open, описанной в Inventory Management.
Анализ производительности портфеля
Настройка отслеживания цен
Настройте автоматические потоки цен для точной оценки:
; 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Отслеживание распределения портфеля
Используйте функции отчетности Beancount.io для анализа распределения:
-- 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Метрики производительности
Отслеживайте ключевые показатели эффективности:
-- 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"Интеграция Staking и DeFi
Отслеживание вознаграждений за стейкинг
Записывайте вознаграждения за стейкинг с правильным признанием дохода. Приход единиц и признанный доход — это одно и то же событие, рассмотренное с двух сторон, поэтому их веса должны компенсироваться: [units] × [price] активов приходит, такое же количество долларов дохода уходит — и доход является кредитом, поэтому он отрицательный.
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{2,500.00 USD} и {0.50 USD} — это внешние оценки. Beancount сохраняет то, что вы указываете; он не запрашивает цену и не решает, какая котировка правильная. Выберите источник — биржу, на которой вы фактически продаете, или опубликованный индекс — и используйте его последовательно, поскольку это число является и вашим доходом, и вашей будущей базой стоимости.
Основная стоимость вознаграждения признается один раз
Признанные $200.00 становятся базой стоимости 0.08 ETH. Продажа позже реализует только изменение с даты вознаграждения:
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 прироста капитала, а не $240.00 — первые $200.00 уже были доходом в январе. Запись всей суммы $240.00 как прироста — самый распространенный способ двойного учета дохода от вознаграждений. Момент и ставка налогообложения вознаграждения зависят от юрисдикции; журнал учитывает получение и выбытие отдельно, поэтому возможно указать любой вариант отчетности.
Отслеживание доходности DeFi
Отслеживайте сложные позиции DeFi:
Предоставление ликвидности меняет две товарные позиции на третью, поэтому каждая часть должна быть выражена в одной и той же валюте, чтобы транзакция была сбалансированной. Позиции в ETH и LP уже таковы, поскольку имеют стоимость; позиция в стейблкоинах нуждается в явном @ 1.00 USD, иначе Beancount увидит уход 25,000 единиц USDC и приход $25,000.00 стоимости, что являются разными товарами и не компенсируется.
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Автоматизированное управление портфелем
Импорт данных с бирж
Beancount не поставляется с клиентом API биржи, и нет файла конфигурации, который заставил бы его взаимодействовать с Coinbase или Binance. Поддерживаемый путь — это импортер: вы скачиваете CSV-экспорт биржи (или получаете его своим собственным скриптом) и конвертируете в транзакции Beancount с помощью beangulp, фреймворка импорта, который заменил встроенный beancount.ingest из Beancount 2. beancount.ingest в Beancount 3 не существует.
Если вы пишете скрипт для получения данных, файл с учетными данными принадлежит только вам — ни одна часть инструментария Beancount его не читает:
# 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"Автоматическое согласование
Настройте автоматическую проверку баланса:
; 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Эти три числа берутся с ваших экранов биржи, а не с этой страницы, поэтому блок выше не будет ничего проверять, пока ваши собственные транзакции не появятся в книге учета. Два правила определяют, будет ли проверка происходить вообще. Директива balance утверждает баланс на начало указанного дня, так что утверждение с датой 2024-01-31 не видит ничего, зарегистрированного в 2024-01-31 — дайте дате следующий день после периода, который вы закрываете. И каждый утверждаемый счет должен быть открыт, поэтому Assets:Crypto:Kraken:ADA появляется в разделе Базовая иерархия счетов выше.
Поддержание актуальности цен
Цены хранятся в книге учета как директивы price, и в Beancount 3.2.3 для вас их никто не загружает. Директивы custom "price-source" не существует — одиночный символ товара даже не является допустимым значением custom, так что такая строка будет синтаксической ошибкой — и нет модуля beancount.plugins.forecast; загрузчик выдает ошибку импорта, если вы его указываете.
Включите beanprice внутри управляемого движка с помощью bea engine enable beanprice, затем получайте котировки через bea price main.beancount. Он читает мета-поле price: на каждой директиве commodity в форме "<quote currency>:<source module>/<ticker>" и записывает директивы price, которые вы добавляете в книгу учета:
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Любые другие метаданные, которые вы прикрепляете к товару — sector, website или поле price-source, использованное ранее в этом руководстве — свободная форма документации для вашего личного использования. Загрузчик сохраняет их, но никакие инструменты с ними не работают.
Стратегии оптимизации налогообложения
Налоговое усечения убытков
Реализуйте систематическое налоговое усечение убытков:
; 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Долгосрочная vs Краткосрочная прибыль
Отслеживайте сроки владения для оптимизации налогообложения:
; 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Ссылка ^long-term-btc в обеих записях позволяет связать покупку и продажу вместе позже; Beancount сам не отслеживает сроки владения.
Отчеты и аналитика
Отчеты по портфелю
Создавайте подробные отчеты по портфелю:
-- 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;Аналитика производительности
Отслеживайте производительность портфеля со временем:
-- 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;Анализ доходов
Анализируйте источники дохода:
-- Income breakdown by source
SELECT
account,
sum(position) as total_income
WHERE account ~ "Income:Crypto"
GROUP BY account
ORDER BY total_income DESC;Лучшие практики и советы
1. Последовательная запись
- Записывайте транзакции сразу после их выполнения
- Используйте стандартизированные описания транзакций
- Включайте хеши транзакций в метаданные
2. Регулярное согласование
- Проверяйте остатки еженедельно на всех платформах
- Используйте проверки балансов для выявления расхождений
- Мониторьте пропущенные транзакции
3. Резервное копирование и безопасность
- Регулярно создавайте резервные копии файлов Beancount
- Используйте системы контроля версий (Git) для отслеживания изменений
- Шифруйте чувствительные данные
4. Документирование
- Документируйте решения по структуре счетов
- Ведите заметки по сложным транзакциям
- Храните записи конфигураций API
5. Подготовка налоговой отчетности
- Формируйте отчеты ежеквартально для налогового планирования
- Ведите подробные записи для аудита
- Консультируйтесь с налоговыми специалистами по сложным случаям
Заключение
Эффективное отслеживание криптовалютного портфеля требует точности, последовательности и подходящих инструментов. Beancount.io предоставляет гибкость и мощь, необходимые для управления сложными крипто-портфелями на нескольких биржах, кошельках и протоколах DeFi.
Ключевые преимущества использования Beancount.io для отслеживания крипто-портфеля:
- Полная собственность данных: ваши данные в формате plain-text
- Точный себестоимость: учёт по лотам с конкретной идентификацией
- Неограниченная гибкость: настраиваемая структура счетов и отчётности
- Оптимизация налогов: продвинутые стратегии для минимизации налоговых обязательств
- Готовность к будущему: открытый формат обеспечивает долгосрочную доступность
Начинайте с базовой настройки и постепенно расширяйте отслеживание по мере усложнения портфеля. Инвестиции в правильную настройку окупятся точными отчетами, оптимизацией налогов и глубокими аналитическими возможностями.
Готовы взять под контроль свой криптовалютный портфель? Начните с Beancount.io уже сегодня.