Use the lookup_accounts operation with a list of account IDs to retrieve current balance state; each account response includes debits_pending, debits_posted, credits_pending, and credits_posted
Derive the posted balance as credits_posted - debits_posted for a normal-credit account (liabilities, equity, revenue) or debits_posted - credits_posted for a normal-debit account (assets, expenses)
To audit transfer history, use the get_account_transfers operation with an account ID and pagination cursors (timestamp_min, timestamp_max, limit, flags.debits, flags.credits) to retrieve all transfers in a time window
For double-entry validation, retrieve all transfers in the ledger period and confirm that the sum of all debit amounts equals the sum of all credit amounts across all accounts in that ledger
Cross-reference each transfer's user_data fields against your external system records to verify that every transfer has a corresponding business event (payment, refund, fee, etc.)
For period-close, snapshot account balances at the close timestamp by querying with timestamp_max = close_time; store this snapshot externally as TigerBeetle does not have a native snapshot/statement concept
Known gotchas
TigerBeetle uses microsecond timestamps as transfer IDs and for ordering; ensure your clock synchronization is reliable if you generate IDs outside TigerBeetle, as out-of-order timestamps can cause correctness issues
get_account_transfers is a query operation that returns up to the configured batch size per call; implement pagination using the last returned transfer's timestamp as timestamp_min for the next page
TigerBeetle does not support ad-hoc SQL queries; all business logic for aggregation and reporting must be implemented in your application layer on top of the raw transfer data
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp