Cryptocurrencies Best Practices
Overview
This document applies to all releases of Eagle software. Version-dependent functionality is noted with the initial release(s) it became available.
A Cryptocurrency (Crypto) is a digital currency that use cryptography to prevent counterfeiting and other exploits. They are most commonly based on blockchain technology, which provides a distributed (and in many cases public) ledger for participants and market observers to monitor transactions. Some of the most popular altcoins are Bitcoin (BTC/XBT), Bitcoin Cash (BCH/XBC), Ethereum (ETH/XET), Ripple (XRP), and Litecoin (LTC/XLC). The most popular stablecoins are USD Coin (USDC/XUC) and Tether (USDT/XDT).
Staking Tokens are Cryptocurrencies dedicated to supporting a blockchain network’s security and operations. For more information, see Staking Tokens Processing Notes.
The market for Cryptocurrencies has matured to the point where institutional and other more traditional investors are now involved. The Eagle software suite has flexibility to model Cryptocurrencies in Accounting, Data Management, and Performance, regardless of your preferred coin(s). There are two methods available to accommodate the conventions of trading different coins.
Securitization: for coins traded like other investment vehicles such as equities or commodities
Track tax lots, calculate unrealized gain/loss, use different lot relief methods, and generate richer performance returns
Typically used for altcoins
Cash: for coins used for settlements and traded like fiat currencies
Typically used for stablecoins
Please consult with your internal accounting and tax experts to determine the appropriate treatment based on your organization's regulatory responsibilities and reporting requirements. The information provided in this document is intended to explain the functionality available in Eagle Accounting. It should not be interpreted as guidance about the regulatory responsibilities and reporting requirements for your specific organization.
Entity Setup
Entities trading Cryptocurrencies do not require any special setup, but pricing and exchange rate sources must be considered.
Ensure your Long Price Source (1282) and Short Price Source (5422) reflect your desired pricing sources for Cryptocurrencies using the Securitization Method (altcoins), and FX Source (1344) and Valuation FX Source (11652) for the Cash Method (stablecoins).
Reference Data
Storage & Configuration
Each Cryptocurrency security master file (SMF) is modeled as its own equity security (Securitization Method, altcoins) or cash security (Cash Method, stablecoins). The Cash Method involves adding a new currency to Eagle Accounting, after which the engines be restarted by an administrator as described in this knowledge base article.
Some Cryptocurrencies, such as Ethereum, require greater precision than is currently supported in Eagle. In these cases, rounded values must be used in Eagle. If you need to maintain a record of the full precision for reference and reporting purposes, you can enter the unrounded value in one of the Settle Instructions fields (1897-1900) at trade time because these are character fields. This does not drive any Accounting processing.
Market Data
Prices/exchange rates are readily available for most major Cryptocurrencies.
Securitization Method (altcoins)
Prices are used for valuation
Precision is controlled by the underlying physical currency, in which case trades must be loaded with the appropriate rounding already applied
Cash Method (stablecoins)
FX rates are used for valuation
Each Cryptocurrency's precision is defined when creating the cash security
Cryptocurrency market data is available from a number of vendors:
Security Data
Cryptocurrency SMFs can be set up and maintained in Issue Viewer or Reference Data Center (RDC). The lists below capture all required fields. In V26 R1.2 and above, there are dedicated panels and data strategies for Digital Asset and Cryptocurrency. The former is used for the Securitization Method, while the latter is used for the Cash Method.
Securitization Method (Altcoins)
Use the Digital Asset panel or data strategy in V26 R1.2 and above. Use the Equity/Mutual Fund panel or Common Stock data strategy in earlier releases.
Issue Name (961): enter the name of the Cryptocurrency with the ticker of the physical currency appended (or similar), such as
Bitcoin USD,Ethereum USD, etc.Primary Asset ID (14) & Type (1432)
Investment Type (11) =
DA (Digital Assets)in V26 R1.2 and above,EQ (Equities)in earlier releasesProcessing Security Type (3931) =
EQCSCS (Common stock)Security Type (82) & Sub Security Type (1464): use these fields to identify and group your Cryptocurrency securities to meet your reporting requirements
These fields are driven by the SECURITY TYPE and SUB SEC TYPE Code Categories respectively
Price Multiplier (18) =
1.00Quantity Scale (19) =
1.00Issue Country (1418): optional in V26 R1.2 and above
In earlier releases, we recommend adding a new value to the COUNTRY CODE Code Category that is consistent with existing values, such as short code =
XXand long code =For Cryptocurrencies (non-Country)
Asset Currency (85): set to the appropriate reference currency, such as
USDorGBPIssue Tax Type (668): you can add a new value to the ISSUE TAX TYPE Code Category if your Cryptocurrency trades are subject are subject to tax withholdings and/or reclaims
Primary Exchange (17): defaults it
XMULTI (Multiple Exchanges)in V26 R1.2 and above because Cryptocurrencies can be traded on many exchangesIn earlier releases, we recommend adding a new value to the IEXCHANGE CODE Code Category with short code =
XMULTIand long code =Multiple ExchangesThe exchange on which trades are executed, if applicable, can be entered in the trade-level Exchange (17) field
You can add the individual exchanges if you need to tie the Cryptocurrency to a particular exchange, but this also requires a separate SMF for each exchange
Cryptocurrency (18277): available in V17 R2.28 and above
Cash Method (Stablecoins)
Use the Cryptocurrency panel or data strategy in V26 R1.2 and above. Use the Currency panel or data strategy in earlier releases.
Issue Name (961): enter the name of the Cryptocurrency and base currency, such
USD Coin,Tether, etc.Ticker (13): enter three-digit Cryptocurrency symbol, such as
XUCfor USD Coin,XUTfor Tether, etc.Primary Asset ID (14): locked and concatenated to
CASH+ Ticker, such asCASHXUCorCASHXUTPrimary Asset ID Type (1432) =
CASHProcessing Security Type (3931) =
CRCRCR (Currency)Price Multiplier (18) =
1.00Quantity Scale (19) =
1.00Security Type (82) & Sub Security Type (1464): use these fields to identify and group your Cryptocurrency securities to meet your reporting requirements
These fields are driven by the SECURITY TYPE and SUB SEC TYPE Code Categories respectively
Sub Security Type is available in V26 R1.2 and above
Issue Country (1418): optional in V26 R1.2 and above
ISO Currency Number (1442): optional in V26 R1.2 and above
In earlier releases, enter a large unique value such as
9999because Cryptocurrencies are not official ISO currenciesYou will receive an error on submission if the value is already in use, in which case you step it up or down one digit
Currency Precision (1451): an unofficial list of Cryptocurrency precisions is available on Wikipedia
Cryptocurrency (18277) =
YesAvailable starting in V26 R1.2 and above
After creating the SMF, follow steps 2 and 3 from Add a New Currency for Eagle Accounting Processing Notes.
Trade Processing
Trades are entered using the Book Trade module once the entity and reference data have been configured. Enter the appropriate entity, security identifier, and trade (35)/settle dates (37) and click Submit to query for the security.
Securitization Method (Altcoins)
Open
Right-click the Cryptocurrency security and select Open > Buy or ShortSell. The lists below captures all required fields to book a trade.
Units (40): transaction quantity
Shares in releases prior to V26 R1.2
Price Per Unit (45): transaction price/FX rate
Price Per Share in releases prior to V26 R1.2
The following fields are available to capture trade fees and taxes:
Commission (47)
SEC Fee (48)
Tax Amount (46)
Stamp Duty Tax (51)
Other Fee (3752)
Settlement Currency (63): set this to the appropriate physical currency or Cryptocurrency for settlement
Settlement Net Amount (64): calculated automatically based on the prevailing FX rate when Settlement Currency = Base Currency (86) of the entity, but can also be entered directly
Must be entered directly when Settlement Currency differs from both Asset Currency (85) and Base Currency
Exchange (17): if applicable
Broker (88): optional in V26 R1.2 and above
Close
Right-click the Cryptocurrency security and select Close > Sell or BuytoCover. The lists below captures all required fields to book a trade.
All fields on the close are the same as the open, except Lot Selection Method (27). This defaults to the entity-level election, but can be overridden.
Cash Method (Stablecoins)
Open & Close
Right-click the Cryptocurrency cash and select Book Foreign Exchange > Buy Currency - Forward/Spot Contract or Sell Currency - Forward/Spot Contract. The table below capture all required fields to book both a buy and sell of Cryptocurrency.
Field | Buy Cryptocurrency | Sell Cryptocurrency |
|---|---|---|
Sell Currency Symbol (363) | Sale currency symbol | Cryptocurrency symbol |
Sell Quantity (366) | Sale currency amount | Cryptocurrency amount |
Buy Currency Symbol (313) | Cryptocurrency symbol | Purchase currency symbol |
Buy Quantity (316) | Cryptocurrency amount | Purchase currency amount |
Broker (88) |
|
|
Cancel & Rebook
Faulty Cryptocurrency transactions can be cancelled and rebooked using the Cancel & Rebook Trade module. Alternatively, trades can be cancelled using Cancel Trade, with the transaction rebooked using the Book Trade module.
Accounting
Once a Cryptocurrency trade is booked it will be picked up in Eagle’s global workflow. Accounting valuation is calculated when posting unrealized gain/loss, and Data Management valuation is calculated in the STAR to PACE push. These can be scheduled or triggered manually.
Global Processes (V17)
Accounting Valuation: Unrealized Gain Loss Entries > Post Daily Fund Unrealized Gain Loss-Position
Data Management Valuation: Eagle STAR to Eagle PACE Direct Processing > Transfer Data - Batch
Global Process Center (prior to V17)
Accounting Valuation: Unrealized Gain Loss Entries > Post Daily Fund Unrealized Gain Loss-Position
Data Management Valuation: STAR to PACE Direct Processing > Transfer Data - Batch
Valuation
Cryptocurrencies can be valued using their prevailing prices/FX rates. However, some organizations may not be allowed to report gains on Cryptocurrencies due to their regulatory responsibilities and reporting requirements. Please consult with your internal accounting and tax experts to confirm.
If you cannot recognize gains and Cryptocurrencies are the only securities held in the fund, you may want to set the STAR 2 PACE entity flag Value At Cost - No Price Found (11454) = Yes. This ensures holdings will always be valued in Data Management, even if no market price is available. Please consider the implications carefully if there are other types of securities in the fund, as the flag affects all of an entity's holdings.
Note: when running the STAR to PACE process using Transfer Data - Batch or Transfer Data - Delta, Price Date Switch (9981) controls what happens in the case of a missing price, before falling back to Value At Cost - No Price Found
The table below shows what happens on dates when there is a missing price in the various combinations of these elections
Value At Cost - No Price Found = No | Value At Cost - No Price Found = Yes | |
|---|---|---|
Price Date Switch = Actual | Market Value = 0.00 | Market Value = Cost |
Price Date Switch = Recent | Market Value = Stale if a price exists for any prior date, else 0.00 | Market Value = Stale if a price exists for any prior date, else Cost |
Valuation is calculated using this formula: Market Value = # of Units of Cryptocurrency * Quantity Scale * Price * Price Multiplier
Quantity Scale and Price Multiplier should both be set to 1.00
Base market value is used to calculate currency gain/loss
Corporate Actions
Cryptocurrencies are subject to several events that are not considered traditional corporate actions, but have very similar end results. These include Staking Rewards, Hard Forks, Soft Forks, and Airdrops, among others. All of these events can be modeled using traditional buy/sell or receive/deliver transactions.
Under the Securitization Method, these events can also be processed as corporate actions in Eagle Accounting. This may be helpful if you need a more structured process that can be applied across funds. Share offers, stock dividends, spinoffs, and exchange offers are all available depending on the exact details of the event. In the example below, we model Staking Rewards using the Share Offer corporate action announcement.
From Security: enter an identifier to return the Cryptocurrency SMF
Effective Date (1109): enter the date the reward is received
Ex Date (65): set equal to Effective Date
Treatment of Fractional Shares (3965) =
Post Fractional SharesMandatory/Voluntary Indicator (1734): select
Mandatoryif all positions are fully staked, orVoluntaryif positions are partially stakedRefer to Add Voluntary Corporate Action Elections for details about applying corporate actions to a partially staked position
To Security: enter an identifier to return the same Cryptocurrency SMF as above
Subscription Price (1705): enter zero
To Ratio (Shares) (1001): enter reward percentage
For example, if this is set to
0.03and your position of 100 coins is fully staked, you will receive 3 additional coins
When the corporate action is processed, an additional lot based on the To Ratio (Shares) is added to your Cryptocurrency position with a cost basis of zero.
Reporting
STAR to PACE (S2P)
Almost all reports in Eagle leverage data from the Warehouse, which is populated by the S2P process. This will be scheduled as part of the daily workflow, but can also be triggered manually as described in the Accounting section.
The S2P process creates a single row for each Cryptocurrency in the POSITION, POSITION_DETAIL, TRADE, and CASH_ACTIVITY tables. The MARKET_VALUE_INCOME column captures the total market value, inclusive of price fluctuations and period-to-date accruals payable or receivable. Spot transactions used for the Cash Method are not posted to the TRADE table.
Accounting Reports
Eagle has a core set of accounting reports that can be used to review Cryptocurrency information. These are designed to support the daily operational workflow for business users, allowing Grid Reports to be easily exported to Excel and customized to provide additional details as needed. Advanced Reports are intended to be client-facing and do not provide the same level of customization.
Data Management Reporting
Performance
The performance toolkit has full functionality to calculate market value-based performance for Cryptocurrencies using data supplied by the S2P process. Risk and performance attribution features are available to analyze Cryptocurrency performance.
Automation
Cryptocurrency security master files (SMFs) and trades can be loaded through the standard Message Center streams. The SMF must be loaded prior to the trade (trades do not spawn SMFs).
Sample messages for the standard interfaces are listed below. The second row of each CSV message contains the tag names; this is for informational purposes only and should be deleted before the message is loaded.
Transaction Type | CSV Stream | CSV Sample Files | EagleML Stream | EagleML Sample Files |
|---|---|---|---|---|
SMF Setup | eagle_default_in_csv_smf OR | eagle_ml-2-0_default_in_xml_smf_generic | ||
Trades | eagle_default_in_csv_trades OR | eagle_ml-2-0_default_in_xml_acct_trades |