Files
T
2026-10-30 12:28:48 +01:00

406 lines
32 KiB
JavaScript

// Generated, do not edit. sha256:33299173b137f702925900408d288146bebcc5895b1c84a7d6e2f52c4663aa64
export const en = {
places: {
HOME: 'The dashboard. You build the layout yourself from widgets (add, drag, adjust width, restore the default layout) and see balances, prices and signals at a glance.',
ACTIONS: 'To do. Everything waiting for you is collected here: reconcile proposals from a wallet scan, interest that can be credited, and differences between a balance and your records. You handle them here or set them aside.',
CHARTS: 'Signals & Charts for Bitcoin. You read the three traffic lights (Power Law, 200-week average, Mayer Multiple) and view the four charts below them; per chart you can zoom, switch the scale and go full screen.',
CHART_PRICE: 'The Bitcoin price chart. You switch between linear and logarithmic scale and zoom in on a period.',
CHART_POWERLAW: 'The Power Law corridor. You adjust the lower and upper band to see where the price stands relative to the long-term trend.',
CHART_WMA: 'The 200-week average with its signal threshold. Meant to assess the historical bottom zone; you switch the scale and zoom.',
CHART_MAYER: 'The Mayer Multiple: the price divided by the 200-day average, with the zones for overvaluation and undervaluation.',
TAXES: 'Taxes. Per account and asset you see the value on each reference date and the gain/loss per year, and you can point out which valuations are still missing. Nothing is recorded here: the figures follow from your records.',
WEALTH: 'Wealth. Per asset your position, the current value, the average purchase price and the gain/loss. An overview to read; you record entries under Events.',
TRACKING: 'On-chain tracking. Per tracking source the balance and the transactions, grouped by date, with a filter per account. You start a scan here and label transactions.',
PRICE_HISTORY: 'Price history. The full price history per source and asset in one management table: search, filter, add or delete a point, and compare sources side by side.',
GUIDE: 'Help. You read how the app is put together and where its figures come from; nothing changes here.',
CONVERSION: 'Bitcoin conversions. You convert live between euro, dollar and BTC, mBTC, bit, sat and msat; each field updates the others. Nothing is recorded.',
EVENT_ACCOUNTS: 'Accounts under Events. Per account you see the current balance per asset and the date of the last balance, and you open an account to view and edit its balances, buys and sells, transfers and interest together.',
VALUATIONS: 'Balances. You record what an account actually held on a date, so that a difference with your records becomes visible. You can add, edit and delete them here.',
TRADES: 'Buy & Sell. You record a purchase or sale with quantity, price and fees, and edit or delete an existing entry.',
TRANSFERS: 'Transfers. You record a transfer between two of your own accounts or to an external address, with any fees in the asset itself.',
INTEREST: 'Interest & Rewards. You maintain interest schedules per account (rate, frequency, term) and record the credits that follow from them.',
RESERVATIONS: 'Reservations. Per account you set aside an amount that may later be debited or credited; it counts nowhere until you record it or settle it without an entry.',
ACCOUNTS: 'Accounts. You create an account, close or reopen it, turn on automatic scanning, and link tracking sources to it (an xpub or a single address). Merging is also possible here.',
ASSETS: 'Assets. You add or edit an asset (symbol, unit, subunit, precision, display), and manage the metal products under it.',
PORTFOLIOS: 'Portfolios. Each portfolio is a separate set of records, with its own database and its own secrets; exactly one is always open. You create one (empty or as a copy of an existing one), switch to another (the app restarts for this), rename or delete one, and set who may access this portfolio. Deleting moves it to the archive; from there it can be removed permanently. This is also where you handle your records as a file: make a backup, export or restore the database, and start empty.',
SETTINGS: 'Settings. Theme and accent color, currency, language, the privacy blur, which name an asset gets in tables, and the intervals of the background tasks.',
LICENSE: 'License. Which version this installation runs, who the license is for and for which major versions, and where you put a license file. Every lock elsewhere in the app points here.',
IMPORT: 'Import. You read in events from a CSV file, map the columns to the fields and see before saving what would be added.',
DATA: 'Data. A read-only look at the raw contents of the tables. Meant for checking, not for editing; the backup is under Portfolios.',
HEALTH: 'Health. Ten checks on your records themselves, with for each finding what is going on: duplicate entries, balances that are not reconciled, lag and gaps in the price history, transfers without a counterpart. You read here; you handle things on To do.',
AI_ACTIVITY: 'AI activity. You turn the AI connection and the navigation permission on or off, review per call what happened and which fields left the app, and preview what an action would share.',
INTEGRATIONS: 'Integrations. Managing everything outside the app: price sources, their API keys, the connections to an explorer or node, and proposals for new sources.',
PROVIDER_KEYS: 'Integrations, Providers tab. Per price source the endpoints, the mapping, the API key, a test and the measurements; add, enable or delete a source.',
SOURCE_PROPOSALS: 'Integrations, Source choice tab. Per asset and use the ranking of price sources, with fallback; confirm or adjust an open proposal.',
CONNECTIONS: 'Integrations, Connections tab. Add, test and activate a Bitcoin explorer, LND node or NWC wallet.',
},
guide: {
groups: {
concepts: 'Concepts',
pages: 'Pages',
setup: 'Setup',
},
sections: {
overview: {
title: 'What the app consists of',
body: [
'Two groups. The first describes what you own, the second where the app gets its data.',
{ heading: 'Your records' },
{ list: [
['Asset', 'What you own: bitcoin, euro, gold. The asset determines the unit used in calculations.'],
['Account', 'Where it is held: a wallet, an exchange, a vault.'],
['Entry', 'One event on an account: a purchase, a sale, a transfer or interest.'],
['Balance', 'A recorded position on a date. From that position the app continues with the entries after it.'],
['Label', 'A short name for an on-chain transaction, reusable.'],
['Metal product', 'A coin or bar under a metal asset, with its fine weight in grams.'],
] },
{ heading: 'The three sources' },
'All three are called a source. They answer different questions.',
{ list: [
['Tracking source', 'Which wallet. An xpub, an address or a Lightning connection the app uses to read the balance of one account. An exchange or vault has none; that balance comes from the entries.'],
['Price source', 'Which price. The service that supplies the price of an asset, with a ranking and fallback per asset and use.'],
['Connection', 'Which address. Where the app requests its data: your own node or a public service. One connection serves multiple sources.'],
] },
],
},
bookings: {
title: 'Four types of entries',
body: [
'Every entry belongs to an account and an asset. There are four types, each with its own tab.',
{ list: [
['Buy and sell', 'Money in exchange for an asset or the other way around, with quantity, price and fees. On {TRADES}.'],
['Transfer', 'The same asset from one account to another, or to an address outside the app. The fees are deducted in the asset itself. On {TRANSFERS}.'],
['Interest and rewards', 'What is added because something is held: interest, staking, cashback. A single credit is possible, or a schedule from which the app proposes the credits. On {INTEREST}.'],
['Balance', 'Not a movement but a recorded position on a date. On {VALUATIONS}.'],
] },
'On {EVENT_ACCOUNTS} each account shows its current balance. Clicking an account opens all four together, to view and edit.',
],
},
anchors: {
title: 'A balance is an anchor',
body: [
'The position of an account is the latest balance plus the entries after it. Entries from before that balance no longer count toward the current position.',
'This way you can keep an account up to date without recording every movement, for example a savings account or a vault tracked by balance.',
{ heading: 'A difference' },
'If there are also entries before the balance, the app checks whether they arrive at the same position. If not, the difference appears on {ACTIONS}, with two choices:',
{ list: [
['Record', 'The difference becomes one purchase or sale at the price of that moment.'],
['Accept', 'The difference counts as money that entered or left your records, not as return. Can be undone.'],
] },
'A balance without entries before it is an opening balance: there is nothing to compare it with.',
{ term: 'Record balance', text: 'in the window of an account records a balance at this moment, not at the start of the day. By default the button is only shown for money; per asset you can turn it on at {ASSETS}.' },
],
},
'free-value': {
title: 'Received for free: income or gift',
body: [
'Value that came in without payment is recorded by its reason, not by the way it arrived.',
{ list: [
['Income', 'Received because you were a customer or held something: interest, staking, cashback, a welcome bonus. Record it on {INTEREST}; it counts as gain/loss.'],
['Gift', 'Someone else gave it: an inheritance, a present. Record it as a purchase or transfer, with the Origin set to Gift. The app deducts the value at the daily price from the gain/loss.'],
] },
{ note: 'A wrong choice cannot be seen in the figures afterward.' },
'A transfer between two of your own accounts is neither: the total does not change.',
],
},
returns: {
title: 'What is return, what is gain/loss?',
body: [
'The figures on {WEALTH} look alike but measure different things. Unrealized and Invested are a current position; Return, Gain/loss and Realized cover the selected period.',
{ figure: 'stand-period', caption: 'Unrealized and Invested count since the purchase; Return, Gain/loss and Realized only over the selected period.' },
{ heading: 'What is return?' },
'A percentage that measures only the price. It is time-weighted: how much was bought and when does not count. It follows the year selection. The money-weighted return, which does include deposits, is on {TAXES}.',
{ heading: 'What is gain/loss?' },
'What the holdings yielded, as an amount over the selected period: the change in value minus the net amount invested (purchases in, sales out). Price gains, the outcome of sales and interest count. A gift counts as a contribution, not as gain/loss.',
{ heading: 'What is unrealized?' },
'The gain or loss on what you hold now, if it were sold now: the current value minus what those units cost, at the average cost basis including fees and premium. A current position: always since the purchase, regardless of the year selection. What has already been sold does not count.',
{ heading: 'What is realized?' },
'The gain or loss on what was sold in the selected period: the proceeds minus fees and the cost basis of the units sold.',
{ heading: 'What is invested?' },
'Per asset all purchases plus fees, including what has already been sold. After a sale, value minus invested is therefore no longer the same as unrealized. The annual overview shows Invested (net): per year the purchases plus fees, minus what sales brought in.',
{ heading: 'What is contributed (net)?' },
'The same for an account: money in plus every other flow, including a transfer from another of your own accounts at the daily price of that day. Interest does not count as a contribution. The value minus this amount is the gain/loss of the account.',
{ heading: 'How they relate' },
{ figure: 'result-sum', caption: 'The gain/loss over all years, split into its three parts. The proportions are an example.' },
'Over all years together, the gain/loss is roughly unrealized plus realized plus interest. A gift is the exception: it has a cost basis of zero, so Unrealized includes its full value, while the gain/loss deducts it as a contribution at the daily price.',
{ note: 'Unrealized and Gain/loss can have a different sign and both still be correct: the first measures against the purchase, the second over the selected period. This is common per account; see By account: contributed and gain/loss.' },
],
},
'account-returns': {
title: 'By account: contributed and gain/loss',
body: [
'On an account card, Unrealized can be negative while Gain/loss is positive. That is not an error: the two measure from a different moment.',
{ list: [
['Unrealized', 'For your own account, in proportion to the units, at the average cost basis of the asset: within own wealth a coin costs the same everywhere. A third-party account has its own cost basis, see below.'],
['Contributed (net)', 'Money in plus every other flow, including a transfer from another of your own accounts at the daily price of that day. Interest does not count as a contribution.'],
['Gain/loss', 'The change in value minus what was contributed. Over all years, that is the space between the two lines on the card: the value and what was contributed.'],
['Return', 'A transfer between your own accounts counts as a withdrawal from one account and a deposit to the other, at the daily price. Only the price and the fees count.'],
] },
{ heading: 'An example' },
{ figure: 'account-example', caption: 'The current value is 4.77 below the cost basis of the asset, but 31.51 above what came in with the transfer. The green area is the gain/loss.' },
'Coins bought on an exchange for 191.20 in total, transferred to a cold wallet when they were worth 154.92, and now worth 186.43. Unrealized is -4.77: below what was paid for them. Contributed (net) is 154.92 and the gain/loss 31.51: the rise since the coins have been on the cold wallet.',
'Invested, the average purchase price and realized cannot be split per account. Those are shown with the asset.',
{ heading: 'Third-party wealth' },
'An account of someone else, for example a child\'s savings account, does not share the cost basis with own wealth. A transfer to it is a withdrawal at the daily price, and that value is the cost basis of that account. If the cold wallet above belonged to someone else, Unrealized there would be 31.51: measured from 154.92.',
'What the price did before the transfer stays in the gain/loss of own wealth. Even with Show all, the two stay separate: in the window of an asset, third-party wealth is on its own tab, with its own key figures.',
],
},
'two-balances': {
title: 'Two sources for one balance',
body: [
'The app has two answers to the question of how much there is. For holdings with an on-chain address they are equal.',
{ list: [
['Scanned balance', 'Shown on {TRACKING}. The app reads the addresses of the wallet and adds up what the chain reports there.'],
['Ledger', 'Shown on {WEALTH} and on {TAXES}. The sum of the entries: purchases, sales, transfers and interest.'],
] },
{ heading: 'Why they can differ' },
{ list: [
['No address', 'An account at an exchange or a custodian has no xpub, so there is nothing to read. Those holdings are only in the ledger.'],
['Fee not recorded', 'The chain deducts the transaction fee, the ledger does not.'],
['Entry without address', 'Counts on {WEALTH}, not on {TRACKING}.'],
] },
{ heading: 'What you can do about it' },
{ list: [
'On-chain transactions without an entry appear as a proposal on {ACTIONS}. After approval the two match.',
'If the cause cannot be found, record a balance. The app takes that position as the truth and adds the entries after it.',
] },
],
},
wealth: {
title: 'Position, gain/loss and return',
body: [
'Per asset or per account the current value, the gain/loss and the return. Nothing is recorded here; that happens on the entry pages.',
{ heading: 'What is where' },
{ list: [
['Asset card', 'Quantity, Value, Share of total, Unrealized, Gain/loss and Return, and Unexplained if a balance differs from the entries.'],
['Account card', 'The same without Quantity. The account cards add up to the total.'],
['Asset window', 'On the Own wealth tab, Avg. purchase price, Avg. premium and Invested, per account. With third-party wealth in view, the same key figures for third parties are on the Third-party wealth tab. On the Return tab, the return, the gain/loss and realized per year.'],
['Page column', 'Invested, Unrealized, Gain/loss and Return of the whole.'],
] },
{ term: 'Plus and minus', text: 'a green or red number has no plus sign; the minus sign is always shown. Without color, as on the dashboard\'s return widget, both plus and minus are shown.' },
{ list: [
['Avg. purchase price', 'What was paid per unit, without fees.'],
['Avg. premium', 'The fees per purchase, including the premium for metal.'],
] },
'What Unrealized, Gain/loss, Return and Invested measure exactly is explained under the concepts in See also.',
{ heading: 'Own wealth and third-party wealth' },
'An account of someone else or an account that does not count is marked as such in the Wealth column on {ACCOUNTS}. Wealth and the dashboard then show only own wealth; the Show all switch at the total shows everything.',
],
},
taxes: {
title: 'Taxes: key figures, but no tax return',
body: [
'The page provides the figures for a tax return. The app does not calculate the tax itself; that is up to the country of the tax return.',
{ list: [
['Value per reference date', 'Per account and asset on January 1 of each year, with a copy button per amount.'],
['Category', 'Bank balances and other assets separately, for a tax return that asks for this. Appears only if a category has been chosen on an account or asset.'],
['Gain/loss', 'Per year the start, end, deposits, withdrawals and return. This return is money-weighted: it takes into account when money went in or out.'],
] },
'What counts is set in the Taxes column on {ACCOUNTS} and {ASSETS}. A choice on the account takes precedence over the one on the asset.',
'If the oldest entry goes back further than needed, set the start year on {PORTFOLIOS}. That removes columns, not entries: the balance in the first column stays complete.',
],
},
actions: {
title: 'What awaits a decision',
body: [
'Everything that awaits a decision is in one place. The column on the left shows per block how many items are open.',
{ list: [
['AI proposals', 'What the AI wants to record. It only happens after approval.'],
['Transactions', 'A transaction on the chain without an entry, as a proposal: purchase, transfer or ignore.'],
['Interest to record', 'Credits that follow from an interest schedule.'],
['Differences', 'A balance that does not match the entries before it.'],
] },
],
},
'price-sources': {
title: 'Price sources and the source choice',
body: [
'A price source is the service that provides the price of an asset. Which source that is, is set per asset and per use on {SOURCE_PROPOSALS}: a ranking, and if the first one drops out, the next one takes over.',
'Use means what the price is for. The price on a reference date for {TAXES} can come from a different source than the current price.',
{ list: [
['New asset', 'Gets its default source right away, if there is one. You make a different choice on {SOURCE_PROPOSALS}.'],
['API keys', 'A source that requires an API key gets it on {PROVIDER_KEYS}. The key stays on the server; the browser does not see it.'],
['Coverage', 'A source only provides the assets it knows. For an asset outside its coverage, the app skips it.'],
['Manual', 'A price you entered yourself, for something without a market or a day a source is missing.'],
] },
'On {PRICE_HISTORY} you see per asset which prices exist and which source they come from.',
],
},
tracking: {
title: 'Tracking wallets on-chain',
body: [
'A tracking source is an xpub or a single address under an account. With it, the app reads what happens on the chain. You link it on {ACCOUNTS}.',
{ list: [
['Update', 'On {TRACKING} the app reads the addresses again. Each transaction is listed per wallet, as received or sent, with the fee.'],
['Proposal', 'A transaction without an entry becomes a proposal on {ACTIONS}. After approval it shows that it has also been registered as an event, and it counts toward Linked.'],
['Label', 'A short name for a transaction, reusable.'],
] },
'An account at an exchange or in a vault has no tracking source. Its balance comes from the entries.',
],
},
connections: {
title: 'Connections: where the app requests data',
body: [
'A connection is an address where the app requests data. One is active per type; Test checks whether the address responds.',
{ list: [
['Bitcoin explorer', 'Reads addresses and transactions for {TRACKING} and provides the price from mempool. A public service by default. With your own node, the addresses do not go to a third party, and an xpub scan does not run into a limit.'],
['Lightning node', 'LND. Reads the Lightning side of your own node. The app talks to the node through its own server; macaroon and certificate stay on that server.'],
] },
'Your own explorer and Lightning are part of the full version. The default explorer always works.',
],
},
lnd: {
title: 'Connecting an LND node',
body: [
'Use a read-only macaroon. You create it on the node with:',
{ code: 'lncli bakemacaroon info:read offchain:read invoices:read onchain:read peers:read' },
'Paste the output under Macaroon. Hex is fine, base64 too.',
{ note: 'Not the macaroon from an lndconnect URL: that is usually the admin macaroon, which can make payments from the node.' },
{ list: [
['tls.cert', 'With the certificate, the app verifies that it is talking to your own node. Without it, the connection is encrypted but not verified; acceptable over a tunnel or your own network.'],
['Address', 'A bare IP address with port is fine; the app turns it into an https address.'],
['Timeout', 'The node cannot be reached. First check whether the tunnel is on.'],
] },
],
},
ai: {
title: 'The AI connection',
body: [
'An AI program on this computer can read the app and make proposals. The program starts the connection itself; no web address or password is needed. The connection is part of the full version.',
{ heading: 'What the AI may do' },
{ list: [
['Active', 'The connection itself. When off, every call is rejected and a running AI program stops.'],
['Read', 'View your records.'],
['Write', 'Add or change something, always as a proposal on {ACTIONS} that must be approved first.'],
['Navigation', 'Move the screen to another page, after a countdown with a stop button.'],
['Share raw', 'When off, the AI sees references and ranges instead of names and amounts.'],
] },
{ note: 'Only turn on Share raw in a portfolio without real data.' },
'Below that, four sliders set how precisely the AI sees the figures: percentages, totals, amounts and quantities, as a range or exact.',
'Every call is listed on {AI_ACTIVITY}, with the data that left the app. The settings apply per portfolio and immediately, without a restart.',
],
},
interest: {
title: 'Interest schedules',
body: [
'An interest schedule records what an account earns: rate, frequency and term. From that, the app calculates the credits and prepares them on {ACTIONS}.',
{ list: [
['Principal', 'When empty, it follows the account balance; that suits a savings account. For a term deposit, enter the starting amount here.'],
['Compound interest', 'Only with a fixed principal: each period then also calculates over the earlier credits. A principal that follows the balance already does this by itself.'],
['Rate periods', 'If the rate changes, record a period with the start date.'],
['Order', 'Credits are recorded in order: each credit increases the balance the next one is calculated on.'],
] },
'A single credit without a schedule is also possible, on {INTEREST}.',
],
},
health: {
title: 'Health: checks on your records',
body: [
'Run check goes through ten checks on the records themselves. This only happens on request, because it can take a while.',
{ list: [
'Duplicate entries, and transfers without a counterpart.',
'Balances that are not reconciled.',
'Gaps, stale data and suspicious prices in the price history.',
] },
'A finding is marked as probably unintended or for information. If it is intended, This is correct removes it; it comes back as soon as something changes.',
'Fixing happens elsewhere: in the entries, on {ACTIONS} or on {PRICE_HISTORY}.',
],
},
dashboard: {
title: 'Setting up the dashboard',
body: [
'The dashboard consists of widgets you put together yourself, in one or more layouts.',
{ list: [
['Edit', 'Long-press a widget, or use the {icon:adjust} button next to Dashboard in the menu; it appears when the mouse is over it. Escape, a click outside the grid or the same button turns edit mode off again.'],
['Add', 'In edit mode, the empty slot opens the menu with widgets.'],
['Arrange', 'Drag a widget, or adjust its width in the menu in its header.'],
['Layouts', 'Several saved dashboards to switch between. In edit mode they are shown as a list, with buttons for a new layout, renaming and deleting.'],
] },
'Deleting Default starts it over, with the layout the app started with.',
],
},
'price-history': {
title: 'Price history: where each price comes from',
body: [
'Per asset, a card with the origin of each daily price over the past year. A click opens the window with, among other things, the origin, the gaps and the prices themselves.',
{ heading: 'What the app knows about a daily price, from strong to weak' },
{ list: [
['Closing price', 'The price from the source at the end of that day.'],
['Manual', 'A price you entered yourself.'],
['Today', 'The current price, which is still moving.'],
['Derived', 'From a spot price of the source, not a closing price.'],
['Carried forward', 'An earlier price, with how many days old it is.'],
['No price', 'Counts as zero. An amount affected by this gets a yellow i.'],
] },
{ heading: 'Gaps' },
'A gap is a series of days without a price. Update requests the missing prices from the source. A day that no source has can be ignored or filled in manually.',
{ note: 'With a source that has a monthly limit, updating costs one request per day.' },
],
},
charts: {
title: 'Signals and charts',
body: [
'Three signals for bitcoin, each as a light in the column. Green, yellow and red are a judgment here; a click on a light opens that chart.',
{ list: [
['Power Law', 'The price against the long-term trend, in log-log. The line is a fit on the history, not a prediction; the bands around it are a fixed factor.'],
['Weekly averages', 'The 200-week average is the slow bottom zone of the cycle. The 50-week average is the dividing line between a rising and a falling market.'],
['Mayer Multiple', 'The price divided by the 200-day average. Below 1.0 is historically a rare low zone, above 2.4 overheated.'],
] },
'Each chart can be linear or logarithmic, zoomed in and shown full screen.',
],
},
conversion: {
title: 'Conversions',
body: [
'A calculator between money and the units of bitcoin: BTC, mBTC, bit, sat and msat. Each field updates the others live. Nothing is recorded.',
],
},
assets: {
title: 'Assets and metals',
body: [
'An asset is something you own whose price the app tracks, with symbol, name, type, main unit, subunit and decimals.',
{ list: [
['Type', 'Crypto, metal or currency. The type determines the default category on {TAXES} and whether Record balance is on; this can be set differently per asset.'],
['Metal', 'Calculates in grams. The app converts a price per troy ounce to grams.'],
['Coins and bars', 'Products under a metal asset, with their fine weight. A purchase of a product records the number of pieces; the app calculates the weight.'],
['Delete', 'Only possible once no entry refers to the asset anymore.'],
] },
],
},
accounts: {
title: 'Accounts',
body: [
'An account is where something is held: a wallet, an exchange, a card, a bank, a vault or a Lightning wallet.',
{ list: [
['Tracking source', 'An xpub or address under the account lets the app read the balance on the chain.'],
['Wealth', 'Whether it is own wealth, managed for someone else, or does not count.'],
['Taxes', 'Whether it counts in the tax return. Separate from Wealth.'],
['Close', 'A closed account disappears from the dropdowns, but still counts in balances, positions and taxes.'],
['Merge', 'Two accounts that are the same become one.'],
] },
],
},
license: {
title: 'Free and full version',
body: [
'The free version has no time limit, with small records: one asset, one fiat account and one portfolio.',
'Integrations, the source choice, your own API keys and the tax page are part of the full version. Reading and exporting always keep working; nothing is ever taken away.',
'The license file goes on {LICENSE} and takes effect immediately. Every lock elsewhere in the app points here.',
],
},
portfolios: {
title: 'Portfolios',
body: [
'Each portfolio is a separate set of records, with its own database and its own secrets. One is always open.',
{ list: [
['Base currency', 'Chosen at creation and fixed after that. All amounts are in that currency.'],
['Switch', 'The app restarts to do so.'],
['Delete', 'Moves the portfolio to the archive. Only from there can it be removed permanently.'],
] },
{ note: 'A backup contains the database and secrets together: they only match together.' },
],
},
},
},
};