Управлението на портфолио с криптовалути в множество борси, портфейли и 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 записва своя receipt token 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, описани в Управление на инвентар.
Анализ на представянето на портфейла
Настройка на проследяване на цените
Настройте автоматични ценови потоци за точна оценка:
; 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"Интеграция на залагания и 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 се появява в секцията Basic Account Hierarchy по-горе.
Поддържане на цените актуални
Цените се съхраняват в журнала като директиви 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Дългосрочни срещу краткосрочни печалби
Проследявайте периодите на задържане за оптимизация на данъците:
; 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 още днес.