Axiomatic

Treasury

Track cash and liquid assets across bank accounts, crypto wallets, and custodians.

Overview

The Treasury module provides a unified view of your cash and liquid assets across bank accounts, crypto wallets, exchanges, and custodians. It tracks balances in each account's native currency and converts to your entity's functional currency for aggregation and reporting.

Account Types

Treasury supports several types of linked financial accounts:

TypeExamples
DepositoryChecking accounts, savings accounts (SVB, Chase, Mercury)
WalletMetaMask, Ledger, Safe multisig
CustodianFireblocks, Anchorage, BitGo
InvestmentBrokerage accounts, retirement accounts

Credit cards and loans are also linked through the same connection flow but appear on the Finance > Liabilities page instead of Treasury.

Connecting Accounts

Link your external financial accounts via Plaid or add them manually:

  1. Navigate to Settings > Linked Accounts
  2. Click Connect Account and authorize via Plaid, or create a manual account
  3. Accounts are automatically categorized by type and routed to the appropriate view
  4. Balances sync automatically after linking

Each account stores a native currency and can optionally link to a ledger account in your chart of accounts for reconciliation.

Cash Position

The cash position is a point-in-time snapshot that aggregates the latest balance for each active treasury account. Balances are grouped by currency type:

  • Fiat — USD, EUR, GBP, etc.
  • Stablecoin — USDC, USDT, DAI, etc. (treated at 1:1 peg to their base fiat currency)
  • Crypto — BTC, ETH, SOL, etc. (volatile assets)

All totals are expressed in your entity's functional currency.

Currency Handling

Currency TypeDescription
NativeThe denomination of the account itself (e.g. EUR, BTC, USDC)
FunctionalYour entity's primary operating currency (e.g. USD)

Each balance is stored in the native currency and automatically translated to the functional currency using exchange rates. Stablecoins pegged to the functional currency (e.g. USDC when functional currency is USD) are treated at 1:1.

Recording Balances

Balances can be updated through several methods:

  • Automatic sync — Plaid-connected accounts sync balances automatically
  • Manual entry — record a balance snapshot for any account with an as-of date
  • On-chain — blockchain wallet balances can be synced from on-chain data

Each balance record captures the native balance, available balance (if different), and the translated functional-currency amount.

Movements

The Movements tab shows fund transfers between accounts. These represent real-world movements — wire transfers, on-chain sends, exchange withdrawals — that were ingested via bank import, on-chain data, or manual event creation. Transfers are read-only in Treasury; they occur externally and are recorded through the event pipeline.

API Reference

Reading Data

ViewEndpointDescription
AccountsGET /api/treasury?entityId=...&view=accountsAll treasury accounts with latest balance
Cash positionGET /api/treasury?entityId=...&view=cash_position&asOfDate=...Aggregated position in functional currency
LiquidityGET /api/treasury?entityId=...&view=liquidityComposition breakdown (fiat / stablecoin / crypto)
MovementsGET /api/treasury?entityId=...&view=movementsRecent transfer events
Balance historyGET /api/treasury?entityId=...&view=balances&accountId=...Historical balances for one account

Writing Data

ActionDescription
create_accountCreate a new treasury account
update_accountUpdate account details
record_balanceRecord a balance snapshot with as-of date
delete_accountRemove an account (preserves accounting history)

All write operations use POST /api/treasury with an action field.

On this page