Interpret the rates
Therates object uses {asset}-USD keys — each representing the price of 1 unit of the asset in USD. When the denomination is not USD, a USD-{denomination} key is also included:
"BTC-USD": "68106.26" means 1 BTC = 68106.26 USD. Multiply by USD-GBP to get the GBP value.
Portfolio rates reflect the end of the requested period. Transaction rates are captured at the time the transaction settled.
Assets already held in the denomination currency (e.g. GBP when denomination is GBP) have no rate entry — their value is their amount directly.
For a detailed explanation of how denomination works in this API, see Denomination in the Core API concepts.
Calculate portfolio values
For each holding, convert the asset’s USD rate by theUSD-{denomination} rate:
Calculate transaction values
Each transaction entry has adenomination field — the amount and currency the transaction was quoted in, used as the authoritative reference value for compliance purposes — and a rates object scoped to that transaction.
To get the GBP value of a transaction, convert the denomination amount using the per-transaction rate:
denomination.asset is already GBP, so the GBP value is 100.00 directly — no rate lookup required.
Build the payload
Use the helpers above to transform the raw API response into a flat object ready for the report renderer:Next steps
Generating report
Build a PDF from the processed data and run the generation pipeline in a background worker.