Táto príručka poskytuje praktické šablóny Beancount a reálne príklady pre bežné scenáre s kryptomenami. Skopírujte a upravte tieto šablóny pre svoje vlastné potreby účtovníctva kryptomien.
Ako čítať tieto bloky
Každý oddelený blok nižšie je jednou z troch vecí, ktoré nie sú vzájomne zameniteľné:
- Šablóny obsahujú zástupné symboly
[V HRANATÝCH ZÁTVORKÁCH]a dátumyRRRR-MM-DD. Nenačítajú sa, kým nenahradíte skutočné hodnoty – hranaté zátvorky nie sú syntaxou Beancount. - Príklady sa nachádzajú priamo pod svojou šablónou, obsahujú skutočné dátumy a sumy a sú napísané tak, aby sa načítali. Každý z nich stále vyžaduje, aby boli účty, ktorých sa dotýka, otvorené, na čo slúži Šablóna štruktúry účtov nižšie. Jedinou výnimkou je blok reconciliácie, ktorý tvrdí zostatky, ktoré môže uspokojiť len vaša vlastná kniha.
- Blok Flash Loan Arbitráž je pseudokód a je ako taký označený tam, kde sa vyskytuje.
Celým obsahom sa tiahnu dve konvencie:
- Výnosové účty držia kredity, preto sú záporné. Realizovaný zisk je záporný zápis na
Income:CapitalGains:…; realizovaná strata je kladný zápis naExpenses:CapitalLoss:…. Obrátenie tohto pravidla je najčastejším spôsobom, ako zápis o kryptomene nesedí. - Poplatok sa zaznamená raz ako výdavok a raz ako zníženie hotovosti. Hrubé príjmy idú na hotovostný účet, poplatok sa z neho odpočíta a rozdiel je to, čo skutočne pristane na vašom účte.
Preskúmajte živý príklad účtovnej knihy s kryptomenami:
Šablóna základného nastavenia
Šablóna štruktúry účtov
; =============================================================================
; CRYPTOCURRENCY ACCOUNT SETUP TEMPLATE
; =============================================================================
; Bank Accounts
1970-01-01 open Assets:Checking
; Exchange Accounts
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: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:Binance:ADA
; On-Chain and Mining Accounts
1970-01-01 open Assets:Crypto:Ethereum:ETH
1970-01-01 open Assets:Crypto:Polygon:ETH
1970-01-01 open Assets:Crypto:Mining:BTC
; Wallet Accounts
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
; 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
; Income Accounts
1970-01-01 open Income:Crypto:Staking:ETH
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:CapitalGains:Crypto
1970-01-01 open Income:CapitalGains:LongTerm
; Expense Accounts
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:Crypto:Bridge:Fees
1970-01-01 open Expenses:Crypto:Mining:Electricity
1970-01-01 open Expenses:CapitalLoss:Crypto
; Commodity Definitions
1970-01-01 commodity BTC
name: "Bitcoin"
asset-class: "cryptocurrency"
1970-01-01 commodity ETH
name: "Ethereum"
asset-class: "cryptocurrency"
1970-01-01 commodity USDC
name: "USD Coin"
asset-class: "stablecoin"
; Compound writes this receipt token "cUSDC", but a Beancount commodity
; and every account component must start with a capital letter or a digit,
; so the ledger spells it CUSDC and keeps the display name in metadata.
1970-01-01 commodity CUSDC
name: "cUSDC (Compound USD Coin)"
asset-class: "defi-receipt"Šablóny obchodovania
Základný nákup kryptomeny
; Template: Buy cryptocurrency on exchange
YYYY-MM-DD * "Buy [AMOUNT] [CRYPTO] on [EXCHANGE]"
Assets:Crypto:[EXCHANGE]:[CRYPTO] [AMOUNT] [CRYPTO] {[PRICE] USD}
Assets:Crypto:[EXCHANGE]:USD -[TOTAL_COST] USD
Expenses:Crypto:Fees:Trading [FEE] USD
Assets:Crypto:[EXCHANGE]:USD -[FEE] USD
; Example: Buy 1 BTC on Coinbase
2024-01-15 * "Buy 1 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 USDPredaj kryptomeny
; Template: Sell cryptocurrency on exchange
YYYY-MM-DD * "Sell [AMOUNT] [CRYPTO] on [EXCHANGE]"
Assets:Crypto:[EXCHANGE]:[CRYPTO] -[AMOUNT] [CRYPTO] {[COST_BASIS] USD} @ [SALE_PRICE] USD
Assets:Crypto:[EXCHANGE]:USD [GROSS_PROCEEDS] USD
Expenses:Crypto:Fees:Trading [FEE] USD
Assets:Crypto:[EXCHANGE]:USD -[FEE] USD
Income:CapitalGains:Crypto -[GAIN] USD ; a loss is a positive Expenses:CapitalLoss:Crypto instead
; Example: Sell 0.5 BTC with a gain
2024-03-20 * "Sell 0.5 BTC on Coinbase"
Assets:Crypto:Coinbase:BTC -0.5 BTC {45000.00 USD} @ 48000.00 USD
Assets:Crypto:Coinbase:USD 24000.00 USD ; gross proceeds, 0.5 * 48,000.00
Expenses:Crypto:Fees:Trading 30.00 USD
Assets:Crypto:Coinbase:USD -30.00 USD ; the fee leaves the same cash account
Income:CapitalGains:Crypto -1500.00 USD ; 24,000.00 proceeds - 22,500.00 basisVyradená dávka má hodnotu 22 500,00 USD v nákladoch, predaj prináša 24 000,00 USD v hrubom a 30,00 USD z toho ide burze – takže príde 23 970,00 USD v hotovosti a realizuje sa zisk 1 500,00 USD. Nezapočítavajte poplatok do zisku: poplatok je už výdavkom a jeho druhé odpočítanie spôsobí, že transakcia nebude sedieť.
Obchod krypto za krypto
; Template: Trade one crypto for another
YYYY-MM-DD * "Trade [AMOUNT1] [CRYPTO1] for [AMOUNT2] [CRYPTO2]"
Assets:Crypto:[EXCHANGE]:[CRYPTO1] -[AMOUNT1] [CRYPTO1] {[COST_BASIS] USD}
Assets:Crypto:[EXCHANGE]:[CRYPTO2] [AMOUNT2] [CRYPTO2] {[NEW_PRICE] USD}
Income:CapitalGains:Crypto -[GAIN] USD ; taxable event; a loss is a positive Expenses:CapitalLoss:Crypto
Expenses:Crypto:Fees:Trading [FEE] USD
Assets:Crypto:[EXCHANGE]:USD -[FEE] USD
; Example: Trade BTC for ETH
2024-02-10 * "Trade 1 BTC for 20 ETH on Binance"
Assets:Crypto:Binance:BTC -1.0 BTC {46000.00 USD}
Assets:Crypto:Binance:ETH 20 ETH {2400.00 USD}
Income:CapitalGains:Crypto -2000.00 USD ; 48,000.00 received - 46,000.00 basis
Expenses:Crypto:Fees:Trading 40.00 USD
Assets:Crypto:Binance:USD -40.00 USDObchod krypto za krypto vyraďuje prvý komoditný nástroj, takže realizuje zisk presne ako predaj za hotovosť: 20 ETH získaných za 2 400,00 USD predstavuje hodnotu 48 000,00 USD prijatú proti základu BTC 46 000,00 USD. Poplatok 40,00 USD sa platí v hotovosti a nemení zisk.
Šablóny prevodov
Prevod z burzy do peňaženky
; Template: Transfer crypto from exchange to wallet
YYYY-MM-DD * "Transfer [AMOUNT] [CRYPTO] from [EXCHANGE] to [WALLET]"
Assets:Crypto:[EXCHANGE]:[CRYPTO] -[AMOUNT] [CRYPTO] {[COST_BASIS] USD}
Assets:Crypto:Wallet:[WALLET]:[CRYPTO] [AMOUNT] [CRYPTO] {[COST_BASIS] USD}
Expenses:Crypto:Fees:Withdrawal [FEE] [CRYPTO] {[COST_BASIS] USD}
Assets:Crypto:[EXCHANGE]:[CRYPTO] -[FEE] [CRYPTO] {[COST_BASIS] USD}
; Example: Transfer BTC to Ledger
2024-01-20 * "Transfer 1 BTC from Coinbase to Ledger"
Assets:Crypto:Coinbase:BTC -1.0 BTC {45000.00 USD}
Assets:Crypto:Wallet:Ledger:BTC 1.0 BTC {45000.00 USD}
Expenses:Crypto:Fees:Withdrawal 0.0005 BTC {45000.00 USD}
Assets:Crypto:Coinbase:BTC -0.0005 BTC {45000.00 USD}Prevod nie je vyradením, takže nič nerealizuje: rovnaký náklad {45000.00 USD} cestuje s mincami a prijímajúci účet preberá základ. Z toho vyplývajú dva dôsledky. Výberový poplatok sa platí v BTC a je nákladom pri rovnakých nákladoch, takže tiež nerealizuje žiadny zisk – ak váš postup hovorí inak, ocenite poplatok pomocou @ a pridajte zápis o zisku. A odosielajúci účet musí už držať 1,0005 BTC pri presne týchto nákladoch, nie 1,0, pretože poplatok pochádza z tej istej dávky. Zníženie bez zodpovedajúcej dávky sa nezúčtuje, nech sa súčty akokoľvek zhodujú.
Prevod medzi burzami
; Template: Transfer between exchanges
YYYY-MM-DD * "Transfer [AMOUNT] [CRYPTO] from [EXCHANGE1] to [EXCHANGE2]"
Assets:Crypto:[EXCHANGE1]:[CRYPTO] -[AMOUNT] [CRYPTO] {[COST_BASIS] USD}
Assets:Crypto:[EXCHANGE2]:[CRYPTO] [AMOUNT] [CRYPTO] {[COST_BASIS] USD}
Expenses:Crypto:Fees:Network [FEE] [CRYPTO] {[COST_BASIS] USD}
Assets:Crypto:[EXCHANGE1]:[CRYPTO] -[FEE] [CRYPTO] {[COST_BASIS] USD}
; Example: Transfer ETH from Coinbase to Binance
2024-02-05 * "Transfer 10 ETH from Coinbase to Binance"
Assets:Crypto:Coinbase:ETH -10 ETH {2500.00 USD}
Assets:Crypto:Binance:ETH 10 ETH {2500.00 USD}
Expenses:Crypto:Fees:Network 0.01 ETH {2500.00 USD}
Assets:Crypto:Coinbase:ETH -0.01 ETH {2500.00 USD}Šablóny stakovania
Stakovanie Etherea
; Template: Stake ETH
YYYY-MM-DD * "Stake [AMOUNT] ETH"
Assets:Crypto:Wallet:MetaMask:ETH -[AMOUNT] ETH {[PRICE] USD}
Assets:Staking:Ethereum:ETH [AMOUNT] ETH {[PRICE] USD}
Expenses:Crypto:Fees:Network [FEE] ETH {[PRICE] USD}
Assets:Crypto:Wallet:MetaMask:ETH -[FEE] ETH {[PRICE] USD}
; Example: Stake 32 ETH
2024-01-10 * "Stake 32 ETH on Ethereum 2.0"
Assets:Crypto:Wallet:MetaMask:ETH -32 ETH {2500.00 USD}
Assets:Staking:Ethereum:ETH 32 ETH {2500.00 USD}
Expenses:Crypto:Fees:Network 0.01 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.01 ETH {2500.00 USD}Odmeny za stakovanie
; Template: Receive staking rewards
YYYY-MM-DD * "[CRYPTO] Staking Rewards - [PERIOD]"
Assets:Staking:[PROTOCOL]:[CRYPTO] [AMOUNT] [CRYPTO] {[PRICE] USD}
Income:Crypto:Staking:[CRYPTO] -[VALUE] USD ; [VALUE] = [AMOUNT] * [PRICE]
; Example: ETH staking rewards
2024-02-01 * "ETH Staking Rewards - January"
Assets:Staking:Ethereum:ETH 0.08 ETH {2600.00 USD}
Income:Crypto:Staking:ETH -208.00 USD ; 0.08 * 2,600.00Odmena je príjem prijatý v naturáliách, takže dva zápisy opisujú tú istú udalosť z oboch strán: prichádza 0,08 ETH so základom 2 600,00 USD za jednotku a zodpovedajúci príjem 208,00 USD je kredit – záporný. {2,600.00 USD} je externá cena, ktorú musíte získať sami; Beancount ju zaznamenáva, nezískava ju. Zaznamenajte ju z burzy alebo indexu, ktorý skutočne používate, a dodržiavajte rovnaký zdroj počas celého roka.
Tých 208,00 USD je odteraz aj daňovým základom odmeny. Keď nakoniec predáte 0,08 ETH, ziskom je iba pohyb od tohto dátumu – 208,00 USD už bolo zdanených ako príjem a nesmie byť uznaných dvakrát. Či je príjem zdaniteľný pri prijatí alebo pri vyradení, závisí od jurisdikcie; kniha v oboch prípadoch zaznamenáva fakty.
Šablóny DeFi
Poskytovanie likvidity na Uniswape
; Template: Add liquidity to Uniswap pool
YYYY-MM-DD * "Add liquidity to [TOKEN1]-[TOKEN2] pool"
Assets:Crypto:Wallet:MetaMask:[TOKEN1] -[AMOUNT1] [TOKEN1] {[PRICE1] USD}
Assets:Crypto:Wallet:MetaMask:[TOKEN2] -[AMOUNT2] [TOKEN2] {[PRICE2] USD}
Assets:DeFi:Uniswap:[TOKEN1]-[TOKEN2]-LP [LP_AMOUNT] [LP_TOKEN] {[LP_PRICE] USD}
Expenses:Crypto:Fees:Network [FEE] ETH {[ETH_PRICE] USD}
Assets:Crypto:Wallet:MetaMask:ETH -[FEE] ETH {[ETH_PRICE] USD}
; Example: Add ETH-USDC liquidity
2024-01-15 * "Add liquidity to ETH-USDC pool"
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-V3-ETH-USDC {500.00 USD}
Expenses:Crypto:Fees:Network 0.02 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.02 ETH {2500.00 USD}Odhadnite tento komoditný nástroj po jednom: odchádza 25 000,00 USD v ETH plus 25 000,00 USD v USDC, prichádza 50 000,00 USD v LP tokenoch a plynový poplatok presúva 50,00 USD v ETH z peňaženky do výdavkov. Časť so stablecoinom nesie @ 1.00 USD, pretože je držaná bez nákladového základu – bez cenovej anotácie by jej váha bola 25 000 USDC, čo nemôže vykryť doláre. V mnohých jurisdikciách je vklad do poolu sám o sebe vyradením oboch tokenov; tento zápis zámerne prenáša základ ďalej, takže pridajte zápisy o zisku, ak to váš postup vyžaduje.
Pôžičky na Compounde
; Template: Supply assets to Compound
YYYY-MM-DD * "Supply [AMOUNT] [TOKEN] to Compound"
Assets:Crypto:Wallet:MetaMask:[TOKEN] -[AMOUNT] [TOKEN] @ [TOKEN_PRICE] USD
Assets:DeFi:Compound:C[TOKEN] [C_AMOUNT] C[TOKEN] {[C_PRICE] USD}
Expenses:Crypto:Fees:Network [FEE] ETH {[ETH_PRICE] USD}
Assets:Crypto:Wallet:MetaMask:ETH -[FEE] ETH {[ETH_PRICE] USD}
; Example: Supply USDC to Compound
2024-01-20 * "Supply 10000 USDC to Compound"
Assets:Crypto:Wallet:MetaMask:USDC -10000 USDC @ 1.00 USD
Assets:DeFi:Compound:CUSDC 500 CUSDC {20.00 USD}
Expenses:Crypto:Fees:Network 0.008 ETH {2500.00 USD}
Assets:Crypto:Wallet:MetaMask:ETH -0.008 ETH {2500.00 USD}Tento zápis sa načíta vďaka dvom veciam. Časť s USDC nesie @ 1.00 USD, takže obe strany swapu majú váhu v rovnakej mene – bez toho Beancount vidí vznik 10 000,00 USD v CUSDC proti zániku 10 000 jednotiek USDC, čo sú rôzne komoditné nástroje a navzájom sa nevykryjú. A prijatý token je CUSDC, nie cUSDC: malé začiatočné písmeno je lexikálnou chybou v komponente účtu aj v symbole komoditného nástroja, nech ho protokol vo svojom vlastnom rozhraní píše akokoľvek.
Šablóny ťažby
Odmeny za ťažbu
; Template: Receive mining rewards
YYYY-MM-DD * "[CRYPTO] Mining Reward - [POOL/SOLO]"
Assets:Crypto:Mining:[CRYPTO] [AMOUNT] [CRYPTO] {[PRICE] USD}
Income:Crypto:Mining:[CRYPTO] -[VALUE] USD ; [VALUE] = [AMOUNT] * [PRICE]
; Example: Bitcoin mining reward
2024-01-15 * "BTC Mining Reward - Slush Pool"
Assets:Crypto:Mining:BTC 0.01 BTC {45000.00 USD}
Income:Crypto:Mining:BTC -450.00 USD ; 0.01 * 45,000.00Výdavky na ťažbu
; Template: Mining operational expenses
YYYY-MM-DD * "Mining [EXPENSE_TYPE] - [PERIOD]"
Expenses:Crypto:Mining:[EXPENSE_TYPE] [AMOUNT] USD
Assets:Checking -[AMOUNT] USD
; Example: Mining electricity costs
2024-01-31 * "Mining Electricity - January"
Expenses:Crypto:Mining:Electricity 800.00 USD
Assets:Checking -800.00 USDŠablóny airdropov
Tokenové airdropy
; Template: Receive token airdrop
YYYY-MM-DD * "[TOKEN] Airdrop from [PROJECT]"
Assets:Crypto:Wallet:[WALLET]:[TOKEN] [AMOUNT] [TOKEN] {[PRICE] USD}
Income:Crypto:Airdrops -[VALUE] USD ; [VALUE] = [AMOUNT] * [PRICE]
; Example: UNI token airdrop
2024-03-01 * "UNI Airdrop from Uniswap"
Assets:Crypto:Wallet:MetaMask:UNI 400 UNI {8.00 USD}
Income:Crypto:Airdrops -3200.00 USD ; 400 * 8.00Rovnako ako pri odmene za stakovanie sa uznaná hodnota airdropu stáva jeho nákladovým základom. Zaznamenajte cenu, ktorú viete obhájiť – prvú likvidnú kotáciu tokenu, zo zdroja, ktorý uvediete – a nie zaokrúhlené číslo.
Pokročilé šablóny
Flash Loan Arbitráž
Tento blok je pseudokód, nie šablóna. Načrtáva postupnosť pohybov hodnôt v rámci flash loanu. Nenačíta sa ani po nahradení hodnôt, pretože prázdne riadky medzi skupinami ukončujú transakciu – Beancount hlási syntaktickú chybu na zápisoch, ktoré nasledujú. Zaznamenajte skutočný flash loan ako jedinú transakciu bez prázdnych riadkov (označte časti odsadenými komentármi ;) a vypustite medziľahlé časti, ktoré sa v rámci toho istého bloku vynulujú.
Pseudocode: flash loan arbitrage
borrow Assets:Crypto:Temp:FlashLoan +[LOAN_AMOUNT] [TOKEN]
Liabilities:DeFi:[PROTOCOL]:Flash -[LOAN_AMOUNT] [TOKEN]
execute Assets:Crypto:Temp:FlashLoan -[LOAN_AMOUNT] [TOKEN]
Assets:Crypto:Temp:Arbitrage +[RETURN_AMOUNT] [TOKEN]
repay Liabilities:DeFi:[PROTOCOL]:Flash +[LOAN_AMOUNT] [TOKEN]
Assets:Crypto:Temp:Arbitrage -[LOAN_PLUS_FEE] [TOKEN]
keep Assets:Crypto:Wallet:[WALLET]:[TOKEN] +[PROFIT] [TOKEN]
Income:Crypto:Arbitrage -[PROFIT_USD] USDVšetko, čoho sa pôžička dotkla, je na konci bloku preč, takže kniha v skutočnosti potrebuje zaznamenať len zisk a poplatok protokolu. Príklad arbitráže v príručke o sledovaní portfólia ukazuje tvar jedinej transakcie.
Cross-Chain Bridge
; Template: Bridge assets across chains
YYYY-MM-DD * "Bridge [AMOUNT] [TOKEN] from [CHAIN1] to [CHAIN2]"
Assets:Crypto:[CHAIN1]:[TOKEN] -[AMOUNT] [TOKEN] {[PRICE] USD}
Assets:Crypto:[CHAIN2]:[TOKEN] [AMOUNT] [TOKEN] {[PRICE] USD}
Expenses:Crypto:Bridge:Fees [FEE] [TOKEN] {[PRICE] USD}
Assets:Crypto:[CHAIN1]:[TOKEN] -[FEE] [TOKEN] {[PRICE] USD}
; Example: Bridge ETH to Polygon
2024-02-05 * "Bridge 5 ETH from Ethereum to Polygon"
Assets:Crypto:Ethereum:ETH -5 ETH {2600.00 USD}
Assets:Crypto:Polygon:ETH 5 ETH {2600.00 USD}
Expenses:Crypto:Bridge:Fees 0.01 ETH {2600.00 USD}
Assets:Crypto:Ethereum:ETH -0.01 ETH {2600.00 USD}Šablóny optimalizované na dane
Zber daňových strát
; Template: Tax loss harvesting
YYYY-MM-DD * "Tax loss harvesting - Sell [CRYPTO] at loss"
Assets:Crypto:[EXCHANGE]:[CRYPTO] -[AMOUNT] [CRYPTO] {[HIGH_COST_BASIS] USD}
Assets:Crypto:[EXCHANGE]:USD [PROCEEDS] USD
Expenses:Crypto:Fees:Trading [FEE] USD
Assets:Crypto:[EXCHANGE]:USD -[FEE] USD
Expenses:CapitalLoss:Crypto [LOSS] USD
; Example: Harvest ADA loss
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, 1,000 * 0.45
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 proceedsStrata je zrkadlovým obrazom zisku: odchádza základ 600,00 USD, prichádzajú hrubé príjmy 450,00 USD a rozdiel 150,00 USD je kladný zápis na výdavkový účet. 445,00 USD v hotovosti je to, čo skutočne pristane, po odpočítaní poplatku 5,00 USD.
Dlhodobé kapitálové zisky
; Template: Long-term capital gains sale
YYYY-MM-DD * "Long-term sale - [CRYPTO] held > 1 year"
date-acquired: "[PURCHASE_DATE]"
holding-period: "[DAYS] days"
Assets:Crypto:[EXCHANGE]:[CRYPTO] -[AMOUNT] [CRYPTO] {[COST_BASIS] USD} @ [SALE_PRICE] USD
Assets:Crypto:[EXCHANGE]:USD [GROSS_PROCEEDS] USD
Expenses:Crypto:Fees:Trading [FEE] USD
Assets:Crypto:[EXCHANGE]:USD -[FEE] USD
Income:CapitalGains:LongTerm -[GAIN] USD
; Example: Long-term BTC sale
2025-02-01 * "Long-term sale - BTC held 382 days"
date-acquired: "2024-01-15"
holding-period: "382 days"
Assets:Crypto:Coinbase:BTC -1.0 BTC {45000.00 USD} @ 55000.00 USD
Assets:Crypto:Coinbase:USD 55000.00 USD
Expenses:Crypto:Fees:Trading 50.00 USD
Assets:Crypto:Coinbase:USD -50.00 USD
Income:CapitalGains:LongTerm -10000.00 USD ; 55,000.00 proceeds - 45,000.00 basisZisk je 10 000,00 USD, nie 9 950,00 USD: poplatok 50,00 USD je už zaznamenaný ako výdavok, takže jeho započítanie do zisku by ho odpočítalo dvakrát. Income:CapitalGains:LongTerm je samostatným účtom od Income:CapitalGains:Crypto len preto, aby bola doba držby viditeľná v prehľade – Beancount dobu držby za vás nevypočítava, a preto sa oplatí viesť metadáta date-acquired a holding-period.
Šablóny reconciliácie
Mesačné overenie zostatkov
; Template: Monthly balance assertions
YYYY-MM-DD balance Assets:Crypto:[EXCHANGE]:[CRYPTO] [EXPECTED_BALANCE] [CRYPTO]
YYYY-MM-DD balance Assets:Crypto:Wallet:[WALLET]:[CRYPTO] [EXPECTED_BALANCE] [CRYPTO]
; Example: January balance 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:Wallet:Ledger:BTC 1.0 BTCNa rozdiel od ostatných príkladov tu tento nie je zámerne sebestačný: sumy sú také, aké ukazujú obrazovky vašej vlastnej burzy, a tvrdenie zlyháva, kým vaše transakcie nie sú v knihe – čo je celý jeho zmysel. Všimnite si, že balance kontroluje zostatok na začiatku menovaného dňa, takže tvrdenie datujte deň po období, ktoré uzatvárate.
Aktualizácie cien
; Template: Daily price updates
YYYY-MM-DD price [CRYPTO] [PRICE] USD
; Example: Daily prices
2024-01-15 price BTC 45000.00 USD
2024-01-15 price ETH 2500.00 USD
2024-01-15 price ADA 0.50 USDPokyny na použitie
-
Skopírujte príslušnú šablónu pre váš typ transakcie
-
Nahraďte každý zástupný symbol. Šablóna nie je platným Beancountom, kým nezmizne
RRRR-MM-DDa každý token[V HRANATÝCH ZÁTVORKÁCH]– hranaté zátvorky nie sú syntaxou Beancount a zvyšná zátvorka je chybou pri parsovaní, nie ticho ignorovanou hodnotou. Nahradenie je mechanické:Zástupný symbol Nahradenie Príklad RRRR-MM-DDdátum transakcie 2024-03-20[MNOŽSTVO]jednotky komoditného nástroja, bez úvodzoviek 0.5[KRYPTO]symbol komoditného nástroja, veľkými písmenami BTC[BURZA]komponent účtu pre miesto obchodu Coinbase[NÁKLADOVÝ_ZÁKLAD]jednotkové náklady dávky, ktorú vyraďujete 45000.00[PREDAJNÁ_CENA]jednotková cena, za ktorú ste predali 48000.00[HRUBÉ_PRÍJMY][MNOŽSTVO]×[PREDAJNÁ_CENA], pred poplatkami24000.00[POPLATOK]poplatok burzy, v mene, v ktorej bol účtovaný 30.00[ZISK][HRUBÉ_PRÍJMY]−[MNOŽSTVO]×[NÁKLADOVÝ_ZÁKLAD]1500.00Nahradenie tohto stĺpca do šablóny Predaj kryptomeny reprodukuje vypracovaný príklad vytlačený pod ňou, čo je najrýchlejší spôsob, ako skontrolovať, že ste šablónu prečítali správne.
-
Upravte názvy účtov, aby zodpovedali vašej štruktúre účtov, a uistite sa, že každý z nich je otvorený pomocou Šablóny štruktúry účtov – účet, ktorý nikdy nebol otvorený, je chybou pri načítaní, nie varovaním
-
Pridajte metadáta podľa potreby pre daňové vykazovanie alebo sledovanie
-
Overte výpočty pomocou
bea --file vas-subor.bean checkpred finalizáciou zápisov. Zápis, ktorý nevyrovnáva, alebo ktorý znižuje dávku, ktorú nedržíte, zlyhá tam, a nie potichu vyprodukuje nesprávny prehľad
Najlepšie postupy
- Používajte konzistentné konvencie pomenovania
- Zahrňte ID transakcií do metadát
- Dôkladne dokumentujte zložité transakcie
- Overujte výmenné kurzy a ceny
- Pravidelne si robte zálohy svojich súborov
Tieto šablóny poskytujú pevný základ pre účtovníctvo kryptomien v Beancount.io. Prispôsobte ich svojim špecifickým potrebám a vzorcom obchodovania.