Protected ReadonlycacheProtected ReadonlydbProtected ReadonlywithoutBalance-free pages: their own key space, reached by the same namespace tags.
StaticinstanceThe process default: built from each dependency's own instance().
Get the given ledger account (admin, cross-customer)
Total MOVEUSD balance across the banks' ledger accounts. Honors the same
bankIds + q filters as search so a filtered view's total matches
the rows it shows.
OptionalbankIds?: string[]Optionalq?: stringCase-insensitive substring match on account name or entity name.
Clear each customer's membership tag and each record tag wherever cached,
and always this namespace's collection tag. keys are exact deletes in this
instance's key space: the only bust a null client honours.
ProtectedinvalidateThe bust every ledger account write makes, whatever it changed: its record
tag in every namespace copying its columns, its customer's pages on both
surfaces, and the folded get keys, the one bust a null client honours.
A balance change is no account write and clears none of it.
Search ledger accounts across customers (cross-customer admin search). Read-through cached in the shared LedgerAccountCache namespace.
Optionaladdresses?: Address[]OptionalbankIds?: string[]Accounts tied to any of these banks by an active deposit bank memo, an active virtual account or a transaction at the bank; any one is enough. Omitted spans every bank; an empty list matches nothing.
OptionalblockTime?: DateValue each account's balance as of this instant — the most recent
on-chain post-balance at or before it — instead of the current balance. A
balance-valuation modifier, not a row filter; omit for the latest balance.
OptionalcreatedAt?: DbTimestampCriteriaOptionalcustomerIds?: string[]OptionalentityIds?: string[]Optionalids?: string[]OptionalorderBy?: (Optionalpage?: numberDefaults to 1
OptionalpageSize?: numberDefaults to 100
Optionalq?: stringCase-insensitive substring match on account name or entity name. Whitespace-only values are a no-op.
OptionalwalletAddresses?: string[]Accounts whose wallet holds any of these addresses, on any chain.
OptionalwalletIds?: string[]Accounts on any of these wallets (wal_…).
Rows carry no balance, and none is computed for them. A balance sort or filter still runs it.
Optionaloptions: StatementOptionsSearch ledger accounts across customers (cross-customer admin search). Read-through cached in the shared LedgerAccountCache namespace.
Optionaladdresses?: Address[]OptionalbankIds?: string[]Accounts tied to any of these banks by an active deposit bank memo, an active virtual account or a transaction at the bank; any one is enough. Omitted spans every bank; an empty list matches nothing.
OptionalblockTime?: DateValue each account's balance as of this instant — the most recent
on-chain post-balance at or before it — instead of the current balance. A
balance-valuation modifier, not a row filter; omit for the latest balance.
OptionalcreatedAt?: DbTimestampCriteriaOptionalcustomerIds?: string[]OptionalentityIds?: string[]Optionalids?: string[]OptionalorderBy?: (Optionalpage?: numberDefaults to 1
OptionalpageSize?: numberDefaults to 100
Optionalq?: stringCase-insensitive substring match on account name or entity name. Whitespace-only values are a no-op.
OptionalwalletAddresses?: string[]Accounts whose wallet holds any of these addresses, on any chain.
OptionalwalletIds?: string[]Accounts on any of these wallets (wal_…).
OptionalwithoutBalance?: undefinedOptionaloptions: StatementOptionsOptionaladdresses?: Address[]OptionalbankIds?: string[]Accounts tied to any of these banks by an active deposit bank memo, an active virtual account or a transaction at the bank; any one is enough. Omitted spans every bank; an empty list matches nothing.
OptionalblockTime?: DateValue each account's balance as of this instant — the most recent
on-chain post-balance at or before it — instead of the current balance. A
balance-valuation modifier, not a row filter; omit for the latest balance.
OptionalcreatedAt?: DbTimestampCriteriaOptionalcustomerIds?: string[]OptionalentityIds?: string[]Optionalids?: string[]OptionalorderBy?: (Optionalpage?: numberDefaults to 1
OptionalpageSize?: numberDefaults to 100
Optionalq?: stringCase-insensitive substring match on account name or entity name. Whitespace-only values are a no-op.
OptionalwalletAddresses?: string[]Accounts whose wallet holds any of these addresses, on any chain.
OptionalwalletIds?: string[]Accounts on any of these wallets (wal_…).
OptionalwithoutBalance?: undefinedEach account's signer, uncached: a signing path must not read a stale wallet.
ProtectedsearchTags for a page: the scope its query searched (each customer's membership
tag, else the collection tag), so an empty page is bustable too, plus the
records it projects and the fields that chose or ordered its rows.
StaticadminAs getCacheKey, for LedgerAccountAdminQueryService.get.
StaticgetThe search args LedgerAccountQueryService.get reads through, and so its cache key.
Cross-customer admin access to ledger accounts.
Extends LedgerAccountCache, so this read shares the
ledger-account-searchnamespace — and therefore the membership-tag vocabulary — with the customer surface. That replaces the mutual cross-construction the two services used to do, in which each built a detachedServiceCacheover the other's namespace purely to bust it.The inherited
invalidateCache({ customerIds })is the seam the Helius on-chain balance webhook calls, so admin pickers invalidate whenever the consumer dashboard does — including on balance changes.