{#if !w.walletOpen || w.walletName !== walletName}

Opening wallet...

{:else}
{#if w.loading}
{:else}

Balance

{w.balance} XMR

{#if moneroPrice}

≈ ${(parseFloat(w.balance) * parseFloat(moneroPrice.usd)).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2, })}

{/if} {#if w.unlockedAtomic !== w.balAtomic}

Unlocked: {w.unlocked} XMR

{/if}
{w.connected ? 'Connected' : 'Disconnected'} {#if w.height < w.daemonHeight} · Scanning {w.height.toLocaleString()} / {w.daemonHeight.toLocaleString()} {/if}
{/if}

Address

{chunkAddress(w.address).start} {chunkAddress(w.address).mid} ... {chunkAddress(w.address).end}

{w.address}

{#if feeEstimate}

Fee: ~{atomicToXmr(((BigInt(feeEstimate.fees[2]) * 2500n) / 1000n).toString())} XMR (Normal)

{/if}
{#if balanceHistory.length > 1}
Balance History
{#each ['1D', '1W', '1M', '1Y', 'ALL'] as const as range} {/each}
{#if chartData.length > 1} (a.balance < b.balance ? a : b)).balance, chartData.reduce((a, b) => (a.balance > b.balance ? a : b)).balance, ]} props={{ spline: { curve: curveLinear, motion: 'tween', strokeWidth: 2 }, yAxis: {}, xAxis: { format: (v: Date) => v.toLocaleDateString('en-US', { month: 'short', day: 'numeric' }) }, highlight: { points: { r: 4 } }, }}> {#snippet tooltip()} value.toLocaleDateString()} valueFormatter={(value: Number) => value.toString().slice(0, 8)} /> {/snippet} {:else}

No data in this range

{/if}
{/if}
Transactions {#if w.accounts.length > 0}
{#each w.accounts as acct} {/each}
{/if}
{#if w.loading}
{:else if w.txs.length === 0}

No transactions yet

{:else}
{#each w.txs as tx} {/each}
{/if}
Accounts & Addresses
Create Account New account with its own balance and addresses

Optional — shown next to the account in your wallet

{#if accountError}

{accountError}

{/if}
Create Subaddress Receiving address tied to an account

Where the subaddress belongs

Optional — helps you track who sent you funds

{#if subaddressError}

{subaddressError}

{/if}
{#each w.accounts as account} {@const a = chunkAddress(account.primaryAddress)}

Account {account.index}{account.label ? ` — ${account.label}` : ''}

{atomicToXmr(account.balance)} XMR

{a.start}{a.mid}...{a.end}

{ subQrDialogOpen = v ? account.primaryAddress : null }}>

{account.primaryAddress}

{#if account.subaddresses.length > 1}
{#each account.subaddresses as sub} {@const sa = chunkAddress(sub.address)}

#{sub.index}{sub.label ? ` - ${sub.label}` : ''}

{atomicToXmr(sub.balance)} XMR

{sa.start}{sa.mid}...{sa.end}

{ subQrDialogOpen = v ? sub.address : null }}>

{sub.address}

{/each}
{/if}
{/each}
{/if}