Balances (Dashboard)
Access prerequisites
- Permission (module):
manageCorporateAccount - License/Feature: None for the main panel; the Crowdfunding tab only loads if the
CROWDFUNDINGfeature is enabled in the tenant's license. - Menu container: GENERAL → Dashboard group
What it is / when to use
Analytical panel (read-only, route /dashboard-balances) that consolidates the custodied balances on the platform, split into five tabs: General, Crypto, Tokenization, Investments and Crowdfunding. This is the "how much the house holds" view per asset class — number of holders, total in assets and monthly movement. Use it for executive reconciliation and asset tracking.
Prerequisites
- Permission:
manageCorporateAccounton the role (dual permission — CPM enum + module in the DB). - License/Feature: the Crowdfunding tab depends on the
CROWDFUNDINGfeature (checked at runtime viaFeaturesStatusService). If disabled, crowdfunding data is not fetched. - Dependencies on other screens: data comes from three different services (
TokensService.getGeneralCryptoBalances,OrderService.getAllQuotations,StoreService.getCrowdfundingBalances) — i.e., BSM/OBS + Crowdfunding.
How the panel is assembled
A single screen with local tabs (categoryList = ['general','crypto','tokenization','investment','crowdfunding']). On open, the panel loads the general crypto/token/investment balances and quotations in parallel; then, if CROWDFUNDING is on, it fetches crowdfunding balances and recomputes the statistics. Switching tabs (setCurrentCategory) only toggles the displayed component — it does not re-fetch data.
| Tab | Content | Detail |
|---|---|---|
| General | Consolidated view of all asset classes | Crypto/Tokenization/Investments/Crowdfunding cards and comparative charts |
| Crypto | Crypto asset balances | Holders, total in token, total in fiat, monthly movement |
| Tokenization | Issued token balances | Holders, total, fiat, movement |
| Investments | Investment shares (staking) | Holders, total, fiat, movement |
| Crowdfunding | Crowdfunding shares | Holders (public/private/foreign), total, movement per investment |
Business rules / considerations
Attention
- Fiat conversion uses the USD quotation. The panel multiplies the token balance by the corresponding quotation (
amountUsd) obtained fromgetAllQuotations. If no quotation exists for an asset, the multiplier falls back to 1 — the "total in fiat" for that asset equals the total in units, which may distort the consolidated figure. Always cross-check with current quotations. - Balance must never be read as zero by default. The panel shows a spinner while loading and an error page on failure; a missing value is a loading/error state, not an actual zero balance.
- Crowdfunding only appears with the feature enabled. On tenants without
CROWDFUNDING, the tab exists but returns no data.
- Financial values: all summations are performed with
BigNumber(multiplication by quotation and sum of movements) — no intermediate rounding. Check decimal places per asset. - Monthly movement considers the
monthlyMovement/balanceByMonthreturned by the backend; for crowdfunding, only the current month's total is counted.